// Copyright 2026 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 searchads360 provides access to the Search Ads 360 Reporting API.
//
// For product documentation, see: https://developers.google.com/search-ads/reporting
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
//	import "google.golang.org/api/searchads360/v23"
//	...
//	ctx := context.Background()
//	searchads360Service, err := searchads360.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 [google.golang.org/api/option.WithAPIKey]:
//
//	searchads360Service, err := searchads360.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
//	config := &oauth2.Config{...}
//	// ...
//	token, err := config.Exchange(ctx, ...)
//	searchads360Service, err := searchads360.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package searchads360 // import "google.golang.org/api/searchads360/v23"

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"log/slog"
	"net/http"
	"net/url"
	"strconv"
	"strings"

	"github.com/googleapis/gax-go/v2/internallog"
	googleapi "google.golang.org/api/googleapi"
	internal "google.golang.org/api/internal"
	gensupport "google.golang.org/api/internal/gensupport"
	option "google.golang.org/api/option"
	internaloption "google.golang.org/api/option/internaloption"
	htransport "google.golang.org/api/transport/http"
)

// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version
var _ = internallog.New

const apiId = "searchads360:v23"
const apiName = "searchads360"
const apiVersion = "v23"
const basePath = "https://searchads360.googleapis.com/"
const basePathTemplate = "https://searchads360.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://searchads360.mtls.googleapis.com/"

// OAuth2 scopes used by this API.
const (
	// View and manage your advertising data in DoubleClick Search
	DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/doubleclicksearch",
	)
	// NOTE: prepend, so we don't override user-specified scopes.
	opts = append([]option.ClientOption{scopesOption}, opts...)
	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
	opts = append(opts, internaloption.EnableNewAuthLibrary())
	client, endpoint, err := htransport.NewClient(ctx, opts...)
	if err != nil {
		return nil, err
	}
	s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
	s.AudienceInsights = NewAudienceInsightsService(s)
	s.Customers = NewCustomersService(s)
	s.GeoTargetConstants = NewGeoTargetConstantsService(s)
	s.Incentives = NewIncentivesService(s)
	s.KeywordThemeConstants = NewKeywordThemeConstantsService(s)
	s.SearchAds360Fields = NewSearchAds360FieldsService(s)
	s.V23 = NewV23Service(s)
	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")
	}
	return NewService(context.TODO(), option.WithHTTPClient(client))
}

type Service struct {
	client    *http.Client
	logger    *slog.Logger
	BasePath  string // API endpoint base URL
	UserAgent string // optional additional User-Agent fragment

	AudienceInsights *AudienceInsightsService

	Customers *CustomersService

	GeoTargetConstants *GeoTargetConstantsService

	Incentives *IncentivesService

	KeywordThemeConstants *KeywordThemeConstantsService

	SearchAds360Fields *SearchAds360FieldsService

	V23 *V23Service
}

func (s *Service) userAgent() string {
	if s.UserAgent == "" {
		return googleapi.UserAgent
	}
	return googleapi.UserAgent + " " + s.UserAgent
}

func NewAudienceInsightsService(s *Service) *AudienceInsightsService {
	rs := &AudienceInsightsService{s: s}
	return rs
}

type AudienceInsightsService struct {
	s *Service
}

func NewCustomersService(s *Service) *CustomersService {
	rs := &CustomersService{s: s}
	rs.AdGroupCriterionCustomizers = NewCustomersAdGroupCriterionCustomizersService(s)
	rs.CampaignGoalConfigs = NewCustomersCampaignGoalConfigsService(s)
	rs.CustomerCustomizers = NewCustomersCustomerCustomizersService(s)
	rs.Goals = NewCustomersGoalsService(s)
	rs.AccountBudgetProposals = NewCustomersAccountBudgetProposalsService(s)
	rs.AccountLinks = NewCustomersAccountLinksService(s)
	rs.AdGroupAdLabels = NewCustomersAdGroupAdLabelsService(s)
	rs.AdGroupAds = NewCustomersAdGroupAdsService(s)
	rs.AdGroupAssetSets = NewCustomersAdGroupAssetSetsService(s)
	rs.AdGroupAssets = NewCustomersAdGroupAssetsService(s)
	rs.AdGroupBidModifiers = NewCustomersAdGroupBidModifiersService(s)
	rs.AdGroupCriteria = NewCustomersAdGroupCriteriaService(s)
	rs.AdGroupCriterionLabels = NewCustomersAdGroupCriterionLabelsService(s)
	rs.AdGroupCustomizers = NewCustomersAdGroupCustomizersService(s)
	rs.AdGroupLabels = NewCustomersAdGroupLabelsService(s)
	rs.AdGroups = NewCustomersAdGroupsService(s)
	rs.AdParameters = NewCustomersAdParametersService(s)
	rs.Ads = NewCustomersAdsService(s)
	rs.AssetGroupAssets = NewCustomersAssetGroupAssetsService(s)
	rs.AssetGroupListingGroupFilters = NewCustomersAssetGroupListingGroupFiltersService(s)
	rs.AssetGroupSignals = NewCustomersAssetGroupSignalsService(s)
	rs.AssetGroups = NewCustomersAssetGroupsService(s)
	rs.AssetSetAssets = NewCustomersAssetSetAssetsService(s)
	rs.AssetSets = NewCustomersAssetSetsService(s)
	rs.Assets = NewCustomersAssetsService(s)
	rs.Audiences = NewCustomersAudiencesService(s)
	rs.BatchJobs = NewCustomersBatchJobsService(s)
	rs.BiddingDataExclusions = NewCustomersBiddingDataExclusionsService(s)
	rs.BiddingSeasonalityAdjustments = NewCustomersBiddingSeasonalityAdjustmentsService(s)
	rs.BiddingStrategies = NewCustomersBiddingStrategiesService(s)
	rs.BillingSetups = NewCustomersBillingSetupsService(s)
	rs.CampaignAssetSets = NewCustomersCampaignAssetSetsService(s)
	rs.CampaignAssets = NewCustomersCampaignAssetsService(s)
	rs.CampaignBidModifiers = NewCustomersCampaignBidModifiersService(s)
	rs.CampaignBudgets = NewCustomersCampaignBudgetsService(s)
	rs.CampaignConversionGoals = NewCustomersCampaignConversionGoalsService(s)
	rs.CampaignCriteria = NewCustomersCampaignCriteriaService(s)
	rs.CampaignCustomizers = NewCustomersCampaignCustomizersService(s)
	rs.CampaignDrafts = NewCustomersCampaignDraftsService(s)
	rs.CampaignGroups = NewCustomersCampaignGroupsService(s)
	rs.CampaignLabels = NewCustomersCampaignLabelsService(s)
	rs.CampaignLifecycleGoal = NewCustomersCampaignLifecycleGoalService(s)
	rs.CampaignSharedSets = NewCustomersCampaignSharedSetsService(s)
	rs.Campaigns = NewCustomersCampaignsService(s)
	rs.ConversionActions = NewCustomersConversionActionsService(s)
	rs.ConversionCustomVariables = NewCustomersConversionCustomVariablesService(s)
	rs.ConversionGoalCampaignConfigs = NewCustomersConversionGoalCampaignConfigsService(s)
	rs.ConversionValueRuleSets = NewCustomersConversionValueRuleSetsService(s)
	rs.ConversionValueRules = NewCustomersConversionValueRulesService(s)
	rs.CustomAudiences = NewCustomersCustomAudiencesService(s)
	rs.CustomColumns = NewCustomersCustomColumnsService(s)
	rs.CustomConversionGoals = NewCustomersCustomConversionGoalsService(s)
	rs.CustomInterests = NewCustomersCustomInterestsService(s)
	rs.CustomerAssetSets = NewCustomersCustomerAssetSetsService(s)
	rs.CustomerAssets = NewCustomersCustomerAssetsService(s)
	rs.CustomerClientLinks = NewCustomersCustomerClientLinksService(s)
	rs.CustomerConversionGoals = NewCustomersCustomerConversionGoalsService(s)
	rs.CustomerLabels = NewCustomersCustomerLabelsService(s)
	rs.CustomerLifecycleGoal = NewCustomersCustomerLifecycleGoalService(s)
	rs.CustomerManagerLinks = NewCustomersCustomerManagerLinksService(s)
	rs.CustomerNegativeCriteria = NewCustomersCustomerNegativeCriteriaService(s)
	rs.CustomerSkAdNetworkConversionValueSchemas = NewCustomersCustomerSkAdNetworkConversionValueSchemasService(s)
	rs.CustomerUserAccessInvitations = NewCustomersCustomerUserAccessInvitationsService(s)
	rs.CustomerUserAccesses = NewCustomersCustomerUserAccessesService(s)
	rs.CustomizerAttributes = NewCustomersCustomizerAttributesService(s)
	rs.DataLinks = NewCustomersDataLinksService(s)
	rs.ExperimentArms = NewCustomersExperimentArmsService(s)
	rs.Experiments = NewCustomersExperimentsService(s)
	rs.Incentives = NewCustomersIncentivesService(s)
	rs.Invoices = NewCustomersInvoicesService(s)
	rs.KeywordPlanAdGroupKeywords = NewCustomersKeywordPlanAdGroupKeywordsService(s)
	rs.KeywordPlanAdGroups = NewCustomersKeywordPlanAdGroupsService(s)
	rs.KeywordPlanCampaignKeywords = NewCustomersKeywordPlanCampaignKeywordsService(s)
	rs.KeywordPlanCampaigns = NewCustomersKeywordPlanCampaignsService(s)
	rs.KeywordPlans = NewCustomersKeywordPlansService(s)
	rs.Labels = NewCustomersLabelsService(s)
	rs.LocalServices = NewCustomersLocalServicesService(s)
	rs.LocalServicesLeads = NewCustomersLocalServicesLeadsService(s)
	rs.OfflineUserDataJobs = NewCustomersOfflineUserDataJobsService(s)
	rs.PaymentsAccounts = NewCustomersPaymentsAccountsService(s)
	rs.ProductLinkInvitations = NewCustomersProductLinkInvitationsService(s)
	rs.ProductLinks = NewCustomersProductLinksService(s)
	rs.RecommendationSubscriptions = NewCustomersRecommendationSubscriptionsService(s)
	rs.Recommendations = NewCustomersRecommendationsService(s)
	rs.RemarketingActions = NewCustomersRemarketingActionsService(s)
	rs.SearchAds360 = NewCustomersSearchAds360Service(s)
	rs.SharedCriteria = NewCustomersSharedCriteriaService(s)
	rs.SharedSets = NewCustomersSharedSetsService(s)
	rs.SmartCampaignSettings = NewCustomersSmartCampaignSettingsService(s)
	rs.ThirdPartyAppAnalyticsLinks = NewCustomersThirdPartyAppAnalyticsLinksService(s)
	rs.UserListCustomerTypes = NewCustomersUserListCustomerTypesService(s)
	rs.UserLists = NewCustomersUserListsService(s)
	return rs
}

type CustomersService struct {
	s *Service

	AdGroupCriterionCustomizers *CustomersAdGroupCriterionCustomizersService

	CampaignGoalConfigs *CustomersCampaignGoalConfigsService

	CustomerCustomizers *CustomersCustomerCustomizersService

	Goals *CustomersGoalsService

	AccountBudgetProposals *CustomersAccountBudgetProposalsService

	AccountLinks *CustomersAccountLinksService

	AdGroupAdLabels *CustomersAdGroupAdLabelsService

	AdGroupAds *CustomersAdGroupAdsService

	AdGroupAssetSets *CustomersAdGroupAssetSetsService

	AdGroupAssets *CustomersAdGroupAssetsService

	AdGroupBidModifiers *CustomersAdGroupBidModifiersService

	AdGroupCriteria *CustomersAdGroupCriteriaService

	AdGroupCriterionLabels *CustomersAdGroupCriterionLabelsService

	AdGroupCustomizers *CustomersAdGroupCustomizersService

	AdGroupLabels *CustomersAdGroupLabelsService

	AdGroups *CustomersAdGroupsService

	AdParameters *CustomersAdParametersService

	Ads *CustomersAdsService

	AssetGroupAssets *CustomersAssetGroupAssetsService

	AssetGroupListingGroupFilters *CustomersAssetGroupListingGroupFiltersService

	AssetGroupSignals *CustomersAssetGroupSignalsService

	AssetGroups *CustomersAssetGroupsService

	AssetSetAssets *CustomersAssetSetAssetsService

	AssetSets *CustomersAssetSetsService

	Assets *CustomersAssetsService

	Audiences *CustomersAudiencesService

	BatchJobs *CustomersBatchJobsService

	BiddingDataExclusions *CustomersBiddingDataExclusionsService

	BiddingSeasonalityAdjustments *CustomersBiddingSeasonalityAdjustmentsService

	BiddingStrategies *CustomersBiddingStrategiesService

	BillingSetups *CustomersBillingSetupsService

	CampaignAssetSets *CustomersCampaignAssetSetsService

	CampaignAssets *CustomersCampaignAssetsService

	CampaignBidModifiers *CustomersCampaignBidModifiersService

	CampaignBudgets *CustomersCampaignBudgetsService

	CampaignConversionGoals *CustomersCampaignConversionGoalsService

	CampaignCriteria *CustomersCampaignCriteriaService

	CampaignCustomizers *CustomersCampaignCustomizersService

	CampaignDrafts *CustomersCampaignDraftsService

	CampaignGroups *CustomersCampaignGroupsService

	CampaignLabels *CustomersCampaignLabelsService

	CampaignLifecycleGoal *CustomersCampaignLifecycleGoalService

	CampaignSharedSets *CustomersCampaignSharedSetsService

	Campaigns *CustomersCampaignsService

	ConversionActions *CustomersConversionActionsService

	ConversionCustomVariables *CustomersConversionCustomVariablesService

	ConversionGoalCampaignConfigs *CustomersConversionGoalCampaignConfigsService

	ConversionValueRuleSets *CustomersConversionValueRuleSetsService

	ConversionValueRules *CustomersConversionValueRulesService

	CustomAudiences *CustomersCustomAudiencesService

	CustomColumns *CustomersCustomColumnsService

	CustomConversionGoals *CustomersCustomConversionGoalsService

	CustomInterests *CustomersCustomInterestsService

	CustomerAssetSets *CustomersCustomerAssetSetsService

	CustomerAssets *CustomersCustomerAssetsService

	CustomerClientLinks *CustomersCustomerClientLinksService

	CustomerConversionGoals *CustomersCustomerConversionGoalsService

	CustomerLabels *CustomersCustomerLabelsService

	CustomerLifecycleGoal *CustomersCustomerLifecycleGoalService

	CustomerManagerLinks *CustomersCustomerManagerLinksService

	CustomerNegativeCriteria *CustomersCustomerNegativeCriteriaService

	CustomerSkAdNetworkConversionValueSchemas *CustomersCustomerSkAdNetworkConversionValueSchemasService

	CustomerUserAccessInvitations *CustomersCustomerUserAccessInvitationsService

	CustomerUserAccesses *CustomersCustomerUserAccessesService

	CustomizerAttributes *CustomersCustomizerAttributesService

	DataLinks *CustomersDataLinksService

	ExperimentArms *CustomersExperimentArmsService

	Experiments *CustomersExperimentsService

	Incentives *CustomersIncentivesService

	Invoices *CustomersInvoicesService

	KeywordPlanAdGroupKeywords *CustomersKeywordPlanAdGroupKeywordsService

	KeywordPlanAdGroups *CustomersKeywordPlanAdGroupsService

	KeywordPlanCampaignKeywords *CustomersKeywordPlanCampaignKeywordsService

	KeywordPlanCampaigns *CustomersKeywordPlanCampaignsService

	KeywordPlans *CustomersKeywordPlansService

	Labels *CustomersLabelsService

	LocalServices *CustomersLocalServicesService

	LocalServicesLeads *CustomersLocalServicesLeadsService

	OfflineUserDataJobs *CustomersOfflineUserDataJobsService

	PaymentsAccounts *CustomersPaymentsAccountsService

	ProductLinkInvitations *CustomersProductLinkInvitationsService

	ProductLinks *CustomersProductLinksService

	RecommendationSubscriptions *CustomersRecommendationSubscriptionsService

	Recommendations *CustomersRecommendationsService

	RemarketingActions *CustomersRemarketingActionsService

	SearchAds360 *CustomersSearchAds360Service

	SharedCriteria *CustomersSharedCriteriaService

	SharedSets *CustomersSharedSetsService

	SmartCampaignSettings *CustomersSmartCampaignSettingsService

	ThirdPartyAppAnalyticsLinks *CustomersThirdPartyAppAnalyticsLinksService

	UserListCustomerTypes *CustomersUserListCustomerTypesService

	UserLists *CustomersUserListsService
}

func NewCustomersAdGroupCriterionCustomizersService(s *Service) *CustomersAdGroupCriterionCustomizersService {
	rs := &CustomersAdGroupCriterionCustomizersService{s: s}
	return rs
}

type CustomersAdGroupCriterionCustomizersService struct {
	s *Service
}

func NewCustomersCampaignGoalConfigsService(s *Service) *CustomersCampaignGoalConfigsService {
	rs := &CustomersCampaignGoalConfigsService{s: s}
	return rs
}

type CustomersCampaignGoalConfigsService struct {
	s *Service
}

func NewCustomersCustomerCustomizersService(s *Service) *CustomersCustomerCustomizersService {
	rs := &CustomersCustomerCustomizersService{s: s}
	return rs
}

type CustomersCustomerCustomizersService struct {
	s *Service
}

func NewCustomersGoalsService(s *Service) *CustomersGoalsService {
	rs := &CustomersGoalsService{s: s}
	return rs
}

type CustomersGoalsService struct {
	s *Service
}

func NewCustomersAccountBudgetProposalsService(s *Service) *CustomersAccountBudgetProposalsService {
	rs := &CustomersAccountBudgetProposalsService{s: s}
	return rs
}

type CustomersAccountBudgetProposalsService struct {
	s *Service
}

func NewCustomersAccountLinksService(s *Service) *CustomersAccountLinksService {
	rs := &CustomersAccountLinksService{s: s}
	return rs
}

type CustomersAccountLinksService struct {
	s *Service
}

func NewCustomersAdGroupAdLabelsService(s *Service) *CustomersAdGroupAdLabelsService {
	rs := &CustomersAdGroupAdLabelsService{s: s}
	return rs
}

type CustomersAdGroupAdLabelsService struct {
	s *Service
}

func NewCustomersAdGroupAdsService(s *Service) *CustomersAdGroupAdsService {
	rs := &CustomersAdGroupAdsService{s: s}
	return rs
}

type CustomersAdGroupAdsService struct {
	s *Service
}

func NewCustomersAdGroupAssetSetsService(s *Service) *CustomersAdGroupAssetSetsService {
	rs := &CustomersAdGroupAssetSetsService{s: s}
	return rs
}

type CustomersAdGroupAssetSetsService struct {
	s *Service
}

func NewCustomersAdGroupAssetsService(s *Service) *CustomersAdGroupAssetsService {
	rs := &CustomersAdGroupAssetsService{s: s}
	return rs
}

type CustomersAdGroupAssetsService struct {
	s *Service
}

func NewCustomersAdGroupBidModifiersService(s *Service) *CustomersAdGroupBidModifiersService {
	rs := &CustomersAdGroupBidModifiersService{s: s}
	return rs
}

type CustomersAdGroupBidModifiersService struct {
	s *Service
}

func NewCustomersAdGroupCriteriaService(s *Service) *CustomersAdGroupCriteriaService {
	rs := &CustomersAdGroupCriteriaService{s: s}
	return rs
}

type CustomersAdGroupCriteriaService struct {
	s *Service
}

func NewCustomersAdGroupCriterionLabelsService(s *Service) *CustomersAdGroupCriterionLabelsService {
	rs := &CustomersAdGroupCriterionLabelsService{s: s}
	return rs
}

type CustomersAdGroupCriterionLabelsService struct {
	s *Service
}

func NewCustomersAdGroupCustomizersService(s *Service) *CustomersAdGroupCustomizersService {
	rs := &CustomersAdGroupCustomizersService{s: s}
	return rs
}

type CustomersAdGroupCustomizersService struct {
	s *Service
}

func NewCustomersAdGroupLabelsService(s *Service) *CustomersAdGroupLabelsService {
	rs := &CustomersAdGroupLabelsService{s: s}
	return rs
}

type CustomersAdGroupLabelsService struct {
	s *Service
}

func NewCustomersAdGroupsService(s *Service) *CustomersAdGroupsService {
	rs := &CustomersAdGroupsService{s: s}
	return rs
}

type CustomersAdGroupsService struct {
	s *Service
}

func NewCustomersAdParametersService(s *Service) *CustomersAdParametersService {
	rs := &CustomersAdParametersService{s: s}
	return rs
}

type CustomersAdParametersService struct {
	s *Service
}

func NewCustomersAdsService(s *Service) *CustomersAdsService {
	rs := &CustomersAdsService{s: s}
	return rs
}

type CustomersAdsService struct {
	s *Service
}

func NewCustomersAssetGroupAssetsService(s *Service) *CustomersAssetGroupAssetsService {
	rs := &CustomersAssetGroupAssetsService{s: s}
	return rs
}

type CustomersAssetGroupAssetsService struct {
	s *Service
}

func NewCustomersAssetGroupListingGroupFiltersService(s *Service) *CustomersAssetGroupListingGroupFiltersService {
	rs := &CustomersAssetGroupListingGroupFiltersService{s: s}
	return rs
}

type CustomersAssetGroupListingGroupFiltersService struct {
	s *Service
}

func NewCustomersAssetGroupSignalsService(s *Service) *CustomersAssetGroupSignalsService {
	rs := &CustomersAssetGroupSignalsService{s: s}
	return rs
}

type CustomersAssetGroupSignalsService struct {
	s *Service
}

func NewCustomersAssetGroupsService(s *Service) *CustomersAssetGroupsService {
	rs := &CustomersAssetGroupsService{s: s}
	return rs
}

type CustomersAssetGroupsService struct {
	s *Service
}

func NewCustomersAssetSetAssetsService(s *Service) *CustomersAssetSetAssetsService {
	rs := &CustomersAssetSetAssetsService{s: s}
	return rs
}

type CustomersAssetSetAssetsService struct {
	s *Service
}

func NewCustomersAssetSetsService(s *Service) *CustomersAssetSetsService {
	rs := &CustomersAssetSetsService{s: s}
	return rs
}

type CustomersAssetSetsService struct {
	s *Service
}

func NewCustomersAssetsService(s *Service) *CustomersAssetsService {
	rs := &CustomersAssetsService{s: s}
	return rs
}

type CustomersAssetsService struct {
	s *Service
}

func NewCustomersAudiencesService(s *Service) *CustomersAudiencesService {
	rs := &CustomersAudiencesService{s: s}
	return rs
}

type CustomersAudiencesService struct {
	s *Service
}

func NewCustomersBatchJobsService(s *Service) *CustomersBatchJobsService {
	rs := &CustomersBatchJobsService{s: s}
	return rs
}

type CustomersBatchJobsService struct {
	s *Service
}

func NewCustomersBiddingDataExclusionsService(s *Service) *CustomersBiddingDataExclusionsService {
	rs := &CustomersBiddingDataExclusionsService{s: s}
	return rs
}

type CustomersBiddingDataExclusionsService struct {
	s *Service
}

func NewCustomersBiddingSeasonalityAdjustmentsService(s *Service) *CustomersBiddingSeasonalityAdjustmentsService {
	rs := &CustomersBiddingSeasonalityAdjustmentsService{s: s}
	return rs
}

type CustomersBiddingSeasonalityAdjustmentsService struct {
	s *Service
}

func NewCustomersBiddingStrategiesService(s *Service) *CustomersBiddingStrategiesService {
	rs := &CustomersBiddingStrategiesService{s: s}
	return rs
}

type CustomersBiddingStrategiesService struct {
	s *Service
}

func NewCustomersBillingSetupsService(s *Service) *CustomersBillingSetupsService {
	rs := &CustomersBillingSetupsService{s: s}
	return rs
}

type CustomersBillingSetupsService struct {
	s *Service
}

func NewCustomersCampaignAssetSetsService(s *Service) *CustomersCampaignAssetSetsService {
	rs := &CustomersCampaignAssetSetsService{s: s}
	return rs
}

type CustomersCampaignAssetSetsService struct {
	s *Service
}

func NewCustomersCampaignAssetsService(s *Service) *CustomersCampaignAssetsService {
	rs := &CustomersCampaignAssetsService{s: s}
	return rs
}

type CustomersCampaignAssetsService struct {
	s *Service
}

func NewCustomersCampaignBidModifiersService(s *Service) *CustomersCampaignBidModifiersService {
	rs := &CustomersCampaignBidModifiersService{s: s}
	return rs
}

type CustomersCampaignBidModifiersService struct {
	s *Service
}

func NewCustomersCampaignBudgetsService(s *Service) *CustomersCampaignBudgetsService {
	rs := &CustomersCampaignBudgetsService{s: s}
	return rs
}

type CustomersCampaignBudgetsService struct {
	s *Service
}

func NewCustomersCampaignConversionGoalsService(s *Service) *CustomersCampaignConversionGoalsService {
	rs := &CustomersCampaignConversionGoalsService{s: s}
	return rs
}

type CustomersCampaignConversionGoalsService struct {
	s *Service
}

func NewCustomersCampaignCriteriaService(s *Service) *CustomersCampaignCriteriaService {
	rs := &CustomersCampaignCriteriaService{s: s}
	return rs
}

type CustomersCampaignCriteriaService struct {
	s *Service
}

func NewCustomersCampaignCustomizersService(s *Service) *CustomersCampaignCustomizersService {
	rs := &CustomersCampaignCustomizersService{s: s}
	return rs
}

type CustomersCampaignCustomizersService struct {
	s *Service
}

func NewCustomersCampaignDraftsService(s *Service) *CustomersCampaignDraftsService {
	rs := &CustomersCampaignDraftsService{s: s}
	return rs
}

type CustomersCampaignDraftsService struct {
	s *Service
}

func NewCustomersCampaignGroupsService(s *Service) *CustomersCampaignGroupsService {
	rs := &CustomersCampaignGroupsService{s: s}
	return rs
}

type CustomersCampaignGroupsService struct {
	s *Service
}

func NewCustomersCampaignLabelsService(s *Service) *CustomersCampaignLabelsService {
	rs := &CustomersCampaignLabelsService{s: s}
	return rs
}

type CustomersCampaignLabelsService struct {
	s *Service
}

func NewCustomersCampaignLifecycleGoalService(s *Service) *CustomersCampaignLifecycleGoalService {
	rs := &CustomersCampaignLifecycleGoalService{s: s}
	return rs
}

type CustomersCampaignLifecycleGoalService struct {
	s *Service
}

func NewCustomersCampaignSharedSetsService(s *Service) *CustomersCampaignSharedSetsService {
	rs := &CustomersCampaignSharedSetsService{s: s}
	return rs
}

type CustomersCampaignSharedSetsService struct {
	s *Service
}

func NewCustomersCampaignsService(s *Service) *CustomersCampaignsService {
	rs := &CustomersCampaignsService{s: s}
	return rs
}

type CustomersCampaignsService struct {
	s *Service
}

func NewCustomersConversionActionsService(s *Service) *CustomersConversionActionsService {
	rs := &CustomersConversionActionsService{s: s}
	return rs
}

type CustomersConversionActionsService struct {
	s *Service
}

func NewCustomersConversionCustomVariablesService(s *Service) *CustomersConversionCustomVariablesService {
	rs := &CustomersConversionCustomVariablesService{s: s}
	return rs
}

type CustomersConversionCustomVariablesService struct {
	s *Service
}

func NewCustomersConversionGoalCampaignConfigsService(s *Service) *CustomersConversionGoalCampaignConfigsService {
	rs := &CustomersConversionGoalCampaignConfigsService{s: s}
	return rs
}

type CustomersConversionGoalCampaignConfigsService struct {
	s *Service
}

func NewCustomersConversionValueRuleSetsService(s *Service) *CustomersConversionValueRuleSetsService {
	rs := &CustomersConversionValueRuleSetsService{s: s}
	return rs
}

type CustomersConversionValueRuleSetsService struct {
	s *Service
}

func NewCustomersConversionValueRulesService(s *Service) *CustomersConversionValueRulesService {
	rs := &CustomersConversionValueRulesService{s: s}
	return rs
}

type CustomersConversionValueRulesService struct {
	s *Service
}

func NewCustomersCustomAudiencesService(s *Service) *CustomersCustomAudiencesService {
	rs := &CustomersCustomAudiencesService{s: s}
	return rs
}

type CustomersCustomAudiencesService struct {
	s *Service
}

func NewCustomersCustomColumnsService(s *Service) *CustomersCustomColumnsService {
	rs := &CustomersCustomColumnsService{s: s}
	return rs
}

type CustomersCustomColumnsService struct {
	s *Service
}

func NewCustomersCustomConversionGoalsService(s *Service) *CustomersCustomConversionGoalsService {
	rs := &CustomersCustomConversionGoalsService{s: s}
	return rs
}

type CustomersCustomConversionGoalsService struct {
	s *Service
}

func NewCustomersCustomInterestsService(s *Service) *CustomersCustomInterestsService {
	rs := &CustomersCustomInterestsService{s: s}
	return rs
}

type CustomersCustomInterestsService struct {
	s *Service
}

func NewCustomersCustomerAssetSetsService(s *Service) *CustomersCustomerAssetSetsService {
	rs := &CustomersCustomerAssetSetsService{s: s}
	return rs
}

type CustomersCustomerAssetSetsService struct {
	s *Service
}

func NewCustomersCustomerAssetsService(s *Service) *CustomersCustomerAssetsService {
	rs := &CustomersCustomerAssetsService{s: s}
	return rs
}

type CustomersCustomerAssetsService struct {
	s *Service
}

func NewCustomersCustomerClientLinksService(s *Service) *CustomersCustomerClientLinksService {
	rs := &CustomersCustomerClientLinksService{s: s}
	return rs
}

type CustomersCustomerClientLinksService struct {
	s *Service
}

func NewCustomersCustomerConversionGoalsService(s *Service) *CustomersCustomerConversionGoalsService {
	rs := &CustomersCustomerConversionGoalsService{s: s}
	return rs
}

type CustomersCustomerConversionGoalsService struct {
	s *Service
}

func NewCustomersCustomerLabelsService(s *Service) *CustomersCustomerLabelsService {
	rs := &CustomersCustomerLabelsService{s: s}
	return rs
}

type CustomersCustomerLabelsService struct {
	s *Service
}

func NewCustomersCustomerLifecycleGoalService(s *Service) *CustomersCustomerLifecycleGoalService {
	rs := &CustomersCustomerLifecycleGoalService{s: s}
	return rs
}

type CustomersCustomerLifecycleGoalService struct {
	s *Service
}

func NewCustomersCustomerManagerLinksService(s *Service) *CustomersCustomerManagerLinksService {
	rs := &CustomersCustomerManagerLinksService{s: s}
	return rs
}

type CustomersCustomerManagerLinksService struct {
	s *Service
}

func NewCustomersCustomerNegativeCriteriaService(s *Service) *CustomersCustomerNegativeCriteriaService {
	rs := &CustomersCustomerNegativeCriteriaService{s: s}
	return rs
}

type CustomersCustomerNegativeCriteriaService struct {
	s *Service
}

func NewCustomersCustomerSkAdNetworkConversionValueSchemasService(s *Service) *CustomersCustomerSkAdNetworkConversionValueSchemasService {
	rs := &CustomersCustomerSkAdNetworkConversionValueSchemasService{s: s}
	return rs
}

type CustomersCustomerSkAdNetworkConversionValueSchemasService struct {
	s *Service
}

func NewCustomersCustomerUserAccessInvitationsService(s *Service) *CustomersCustomerUserAccessInvitationsService {
	rs := &CustomersCustomerUserAccessInvitationsService{s: s}
	return rs
}

type CustomersCustomerUserAccessInvitationsService struct {
	s *Service
}

func NewCustomersCustomerUserAccessesService(s *Service) *CustomersCustomerUserAccessesService {
	rs := &CustomersCustomerUserAccessesService{s: s}
	return rs
}

type CustomersCustomerUserAccessesService struct {
	s *Service
}

func NewCustomersCustomizerAttributesService(s *Service) *CustomersCustomizerAttributesService {
	rs := &CustomersCustomizerAttributesService{s: s}
	return rs
}

type CustomersCustomizerAttributesService struct {
	s *Service
}

func NewCustomersDataLinksService(s *Service) *CustomersDataLinksService {
	rs := &CustomersDataLinksService{s: s}
	return rs
}

type CustomersDataLinksService struct {
	s *Service
}

func NewCustomersExperimentArmsService(s *Service) *CustomersExperimentArmsService {
	rs := &CustomersExperimentArmsService{s: s}
	return rs
}

type CustomersExperimentArmsService struct {
	s *Service
}

func NewCustomersExperimentsService(s *Service) *CustomersExperimentsService {
	rs := &CustomersExperimentsService{s: s}
	return rs
}

type CustomersExperimentsService struct {
	s *Service
}

func NewCustomersIncentivesService(s *Service) *CustomersIncentivesService {
	rs := &CustomersIncentivesService{s: s}
	return rs
}

type CustomersIncentivesService struct {
	s *Service
}

func NewCustomersInvoicesService(s *Service) *CustomersInvoicesService {
	rs := &CustomersInvoicesService{s: s}
	return rs
}

type CustomersInvoicesService struct {
	s *Service
}

func NewCustomersKeywordPlanAdGroupKeywordsService(s *Service) *CustomersKeywordPlanAdGroupKeywordsService {
	rs := &CustomersKeywordPlanAdGroupKeywordsService{s: s}
	return rs
}

type CustomersKeywordPlanAdGroupKeywordsService struct {
	s *Service
}

func NewCustomersKeywordPlanAdGroupsService(s *Service) *CustomersKeywordPlanAdGroupsService {
	rs := &CustomersKeywordPlanAdGroupsService{s: s}
	return rs
}

type CustomersKeywordPlanAdGroupsService struct {
	s *Service
}

func NewCustomersKeywordPlanCampaignKeywordsService(s *Service) *CustomersKeywordPlanCampaignKeywordsService {
	rs := &CustomersKeywordPlanCampaignKeywordsService{s: s}
	return rs
}

type CustomersKeywordPlanCampaignKeywordsService struct {
	s *Service
}

func NewCustomersKeywordPlanCampaignsService(s *Service) *CustomersKeywordPlanCampaignsService {
	rs := &CustomersKeywordPlanCampaignsService{s: s}
	return rs
}

type CustomersKeywordPlanCampaignsService struct {
	s *Service
}

func NewCustomersKeywordPlansService(s *Service) *CustomersKeywordPlansService {
	rs := &CustomersKeywordPlansService{s: s}
	return rs
}

type CustomersKeywordPlansService struct {
	s *Service
}

func NewCustomersLabelsService(s *Service) *CustomersLabelsService {
	rs := &CustomersLabelsService{s: s}
	return rs
}

type CustomersLabelsService struct {
	s *Service
}

func NewCustomersLocalServicesService(s *Service) *CustomersLocalServicesService {
	rs := &CustomersLocalServicesService{s: s}
	return rs
}

type CustomersLocalServicesService struct {
	s *Service
}

func NewCustomersLocalServicesLeadsService(s *Service) *CustomersLocalServicesLeadsService {
	rs := &CustomersLocalServicesLeadsService{s: s}
	return rs
}

type CustomersLocalServicesLeadsService struct {
	s *Service
}

func NewCustomersOfflineUserDataJobsService(s *Service) *CustomersOfflineUserDataJobsService {
	rs := &CustomersOfflineUserDataJobsService{s: s}
	return rs
}

type CustomersOfflineUserDataJobsService struct {
	s *Service
}

func NewCustomersPaymentsAccountsService(s *Service) *CustomersPaymentsAccountsService {
	rs := &CustomersPaymentsAccountsService{s: s}
	return rs
}

type CustomersPaymentsAccountsService struct {
	s *Service
}

func NewCustomersProductLinkInvitationsService(s *Service) *CustomersProductLinkInvitationsService {
	rs := &CustomersProductLinkInvitationsService{s: s}
	return rs
}

type CustomersProductLinkInvitationsService struct {
	s *Service
}

func NewCustomersProductLinksService(s *Service) *CustomersProductLinksService {
	rs := &CustomersProductLinksService{s: s}
	return rs
}

type CustomersProductLinksService struct {
	s *Service
}

func NewCustomersRecommendationSubscriptionsService(s *Service) *CustomersRecommendationSubscriptionsService {
	rs := &CustomersRecommendationSubscriptionsService{s: s}
	return rs
}

type CustomersRecommendationSubscriptionsService struct {
	s *Service
}

func NewCustomersRecommendationsService(s *Service) *CustomersRecommendationsService {
	rs := &CustomersRecommendationsService{s: s}
	return rs
}

type CustomersRecommendationsService struct {
	s *Service
}

func NewCustomersRemarketingActionsService(s *Service) *CustomersRemarketingActionsService {
	rs := &CustomersRemarketingActionsService{s: s}
	return rs
}

type CustomersRemarketingActionsService struct {
	s *Service
}

func NewCustomersSearchAds360Service(s *Service) *CustomersSearchAds360Service {
	rs := &CustomersSearchAds360Service{s: s}
	return rs
}

type CustomersSearchAds360Service struct {
	s *Service
}

func NewCustomersSharedCriteriaService(s *Service) *CustomersSharedCriteriaService {
	rs := &CustomersSharedCriteriaService{s: s}
	return rs
}

type CustomersSharedCriteriaService struct {
	s *Service
}

func NewCustomersSharedSetsService(s *Service) *CustomersSharedSetsService {
	rs := &CustomersSharedSetsService{s: s}
	return rs
}

type CustomersSharedSetsService struct {
	s *Service
}

func NewCustomersSmartCampaignSettingsService(s *Service) *CustomersSmartCampaignSettingsService {
	rs := &CustomersSmartCampaignSettingsService{s: s}
	return rs
}

type CustomersSmartCampaignSettingsService struct {
	s *Service
}

func NewCustomersThirdPartyAppAnalyticsLinksService(s *Service) *CustomersThirdPartyAppAnalyticsLinksService {
	rs := &CustomersThirdPartyAppAnalyticsLinksService{s: s}
	return rs
}

type CustomersThirdPartyAppAnalyticsLinksService struct {
	s *Service
}

func NewCustomersUserListCustomerTypesService(s *Service) *CustomersUserListCustomerTypesService {
	rs := &CustomersUserListCustomerTypesService{s: s}
	return rs
}

type CustomersUserListCustomerTypesService struct {
	s *Service
}

func NewCustomersUserListsService(s *Service) *CustomersUserListsService {
	rs := &CustomersUserListsService{s: s}
	return rs
}

type CustomersUserListsService struct {
	s *Service
}

func NewGeoTargetConstantsService(s *Service) *GeoTargetConstantsService {
	rs := &GeoTargetConstantsService{s: s}
	return rs
}

type GeoTargetConstantsService struct {
	s *Service
}

func NewIncentivesService(s *Service) *IncentivesService {
	rs := &IncentivesService{s: s}
	return rs
}

type IncentivesService struct {
	s *Service
}

func NewKeywordThemeConstantsService(s *Service) *KeywordThemeConstantsService {
	rs := &KeywordThemeConstantsService{s: s}
	return rs
}

type KeywordThemeConstantsService struct {
	s *Service
}

func NewSearchAds360FieldsService(s *Service) *SearchAds360FieldsService {
	rs := &SearchAds360FieldsService{s: s}
	return rs
}

type SearchAds360FieldsService struct {
	s *Service
}

func NewV23Service(s *Service) *V23Service {
	rs := &V23Service{s: s}
	return rs
}

type V23Service struct {
	s *Service
}

// GoogleAdsSearchads360V0Common__Value: A generic data container.
type GoogleAdsSearchads360V0Common__Value struct {
	// BooleanValue: A boolean.
	BooleanValue bool `json:"booleanValue,omitempty"`
	// DoubleValue: A double.
	DoubleValue float64 `json:"doubleValue,omitempty"`
	// FloatValue: A float.
	FloatValue float64 `json:"floatValue,omitempty"`
	// Int64Value: An int64.
	Int64Value int64 `json:"int64Value,omitempty,string"`
	// StringValue: A string.
	StringValue string `json:"stringValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BooleanValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BooleanValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Common__Value) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Common__Value
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V0Common__Value) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V0Common__Value
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		FloatValue  gensupport.JSONFloat64 `json:"floatValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	s.FloatValue = float64(s1.FloatValue)
	return nil
}

// GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement: A part of a
// field path.
type GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement struct {
	// FieldName: The name of a field or a oneof
	FieldName string `json:"fieldName,omitempty"`
	// Index: If field_name is a repeated field, this is the element that failed
	Index int64 `json:"index,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorCode: The error reason represented by
// type and enum.
type GoogleAdsSearchads360V0Errors__ErrorCode struct {
	// AuthenticationError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AUTHENTICATION_ERROR" - Authentication of the request failed.
	//   "CLIENT_CUSTOMER_ID_INVALID" - Client customer ID is not a number.
	//   "CUSTOMER_NOT_FOUND" - No customer found for the provided customer ID.
	//   "GOOGLE_ACCOUNT_DELETED" - Client's Google account is deleted.
	//   "GOOGLE_ACCOUNT_COOKIE_INVALID" - Account login token in the cookie is
	// invalid.
	//   "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED" - A problem occurred during Google
	// account authentication.
	//   "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH" - The user in the Google
	// account login token does not match the user ID in the cookie.
	//   "LOGIN_COOKIE_REQUIRED" - Login cookie is required for authentication.
	//   "NOT_ADS_USER" - The Google account that generated the OAuth access token
	// is not associated with a Search Ads 360 account. Create a new account, or
	// add the Google account to an existing Search Ads 360 account.
	//   "OAUTH_TOKEN_INVALID" - OAuth token in the header is not valid.
	//   "OAUTH_TOKEN_EXPIRED" - OAuth token in the header has expired.
	//   "OAUTH_TOKEN_DISABLED" - OAuth token in the header has been disabled.
	//   "OAUTH_TOKEN_REVOKED" - OAuth token in the header has been revoked.
	//   "OAUTH_TOKEN_HEADER_INVALID" - OAuth token HTTP header is malformed.
	//   "LOGIN_COOKIE_INVALID" - Login cookie is not valid.
	//   "USER_ID_INVALID" - User ID in the header is not a valid ID.
	//   "TWO_STEP_VERIFICATION_NOT_ENROLLED" - An account administrator changed
	// this account's authentication settings. To access this account, enable
	// 2-Step Verification in your Google account at
	// https://www.google.com/landing/2step.
	//   "ADVANCED_PROTECTION_NOT_ENROLLED" - An account administrator changed this
	// account's authentication settings. To access this account, enable Advanced
	// Protection in your Google account at
	// https://landing.google.com/advancedprotection.
	AuthenticationError string `json:"authenticationError,omitempty"`
	// AuthorizationError: An error encountered when trying to authorize a user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "USER_PERMISSION_DENIED" - User doesn't have permission to access
	// customer. Note: If you're accessing a client customer, the manager's
	// customer ID must be set in the `login-customer-id` header. Learn more at
	// https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header
	//   "PROJECT_DISABLED" - The Google Cloud project sent in the request does not
	// have permission to access the api.
	//   "AUTHORIZATION_ERROR" - Authorization of the client failed.
	//   "ACTION_NOT_PERMITTED" - The user does not have permission to perform this
	// action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.
	//   "INCOMPLETE_SIGNUP" - Signup not complete.
	//   "CUSTOMER_NOT_ENABLED" - The customer account can't be accessed because it
	// is not yet enabled or has been deactivated.
	//   "MISSING_TOS" - The developer must sign the terms of service. They can be
	// found here: https://developers.google.com/terms
	//   "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION" - The login
	// customer specified does not have access to the account specified, so the
	// request is invalid.
	//   "SERVICE_ACCESS_DENIED" - The developer specified does not have access to
	// the service.
	//   "ACCESS_DENIED_FOR_ACCOUNT_TYPE" - The customer (or login customer) isn't
	// allowed in Search Ads 360 API. It belongs to another ads system.
	//   "METRIC_ACCESS_DENIED" - The developer does not have access to the metrics
	// queried.
	AuthorizationError string `json:"authorizationError,omitempty"`
	// ConversionCustomVariableError: The reasons for the conversion custom
	// variable error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - A conversion custom variable with the specified name
	// already exists.
	//   "DUPLICATE_TAG" - A conversion custom variable with the specified tag
	// already exists.
	//   "RESERVED_TAG" - A conversion custom variable with the specified tag is
	// reserved for other uses.
	//   "NOT_FOUND" - The conversion custom variable is not found.
	//   "NOT_AVAILABLE" - The conversion custom variable is not available for use.
	//   "INCOMPATIBLE_TYPE" - The conversion custom variable requested is
	// incompatible with the current request.
	//   "INVALID_METRIC" - The conversion custom variable requested is not of type
	// METRIC.
	//   "EXCEEDS_CARDINALITY_LIMIT" - The conversion custom variable's cardinality
	// exceeds the segmentation limit.
	//   "INVALID_DIMENSION" - The conversion custom variable requested is not of
	// type DIMENSION.
	//   "INCOMPATIBLE_WITH_SELECTED_RESOURCE" - The conversion custom variable
	// requested is incompatible with the selected resource.
	ConversionCustomVariableError string `json:"conversionCustomVariableError,omitempty"`
	// CustomColumnError: The reasons for the custom column error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOM_COLUMN_NOT_FOUND" - The custom column has not been found.
	//   "CUSTOM_COLUMN_NOT_AVAILABLE" - The custom column is not available.
	CustomColumnError string `json:"customColumnError,omitempty"`
	// DateError: The reasons for the date error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not correspond to a
	// valid date.
	//   "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not correspond
	// to a valid date time.
	//   "INVALID_STRING_DATE" - The string date's format should be yyyy-mm-dd.
	//   "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.ssssss.
	//   "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.
	//   "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date time's
	// format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
	//   "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum.
	//   "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum.
	//   "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range bounds are
	// not in order.
	//   "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in range are
	// null.
	DateError string `json:"dateError,omitempty"`
	// DateRangeError: The reasons for the date range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_DATE" - Invalid date.
	//   "START_DATE_AFTER_END_DATE" - The start date was after the end date.
	//   "CANNOT_SET_DATE_TO_PAST" - Cannot set date to past time
	//   "AFTER_MAXIMUM_ALLOWABLE_DATE" - A date was used that is past the system
	// "last" date.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a resource that has started.
	DateRangeError string `json:"dateRangeError,omitempty"`
	// DistinctError: The reasons for the distinct error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ELEMENT" - Duplicate element.
	//   "DUPLICATE_TYPE" - Duplicate type.
	DistinctError string `json:"distinctError,omitempty"`
	// HeaderError: The reasons for the header error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_SELECTED_CUSTOMER_ID" - The user selected customer ID could
	// not be validated.
	//   "INVALID_LOGIN_CUSTOMER_ID" - The login customer ID could not be
	// validated.
	HeaderError string `json:"headerError,omitempty"`
	// InternalError: An unexpected server-side error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INTERNAL_ERROR" - API encountered unexpected internal error.
	//   "ERROR_CODE_NOT_PUBLISHED" - The intended error code doesn't exist in
	// specified API version. It will be released in a future API version.
	//   "TRANSIENT_ERROR" - API encountered an unexpected transient error. The
	// user should retry their request in these cases.
	//   "DEADLINE_EXCEEDED" - The request took longer than a deadline.
	InternalError string `json:"internalError,omitempty"`
	// InvalidParameterError: The reasons for invalid parameter errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CURRENCY_CODE" - The specified currency code is invalid.
	InvalidParameterError string `json:"invalidParameterError,omitempty"`
	// QueryError: An error with the query
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "QUERY_ERROR" - Returned if all other query error reasons are not
	// applicable.
	//   "BAD_ENUM_CONSTANT" - A condition used in the query references an invalid
	// enum constant.
	//   "BAD_ESCAPE_SEQUENCE" - Query contains an invalid escape sequence.
	//   "BAD_FIELD_NAME" - Field name is invalid.
	//   "BAD_LIMIT_VALUE" - Limit value is invalid (for example, not a number)
	//   "BAD_NUMBER" - Encountered number can not be parsed.
	//   "BAD_OPERATOR" - Invalid operator encountered.
	//   "BAD_PARAMETER_NAME" - Parameter unknown or not supported.
	//   "BAD_PARAMETER_VALUE" - Parameter have invalid value.
	//   "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE" - Invalid resource type was specified
	// in the FROM clause.
	//   "BAD_SYMBOL" - Non-ASCII symbol encountered outside of strings.
	//   "BAD_VALUE" - Value is invalid.
	//   "DATE_RANGE_TOO_WIDE" - Date filters fail to restrict date to a range
	// smaller than 31 days. Applicable if the query is segmented by date.
	//   "DATE_RANGE_TOO_NARROW" - Filters on date/week/month/quarter have a start
	// date after end date.
	//   "EXPECTED_AND" - Expected AND between values with BETWEEN operator.
	//   "EXPECTED_BY" - Expecting ORDER BY to have BY.
	//   "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE" - There was no dimension field
	// selected.
	//   "EXPECTED_FILTERS_ON_DATE_RANGE" - Missing filters on date related fields.
	//   "EXPECTED_FROM" - Missing FROM clause.
	//   "EXPECTED_LIST" - The operator used in the conditions requires the value
	// to be a list.
	//   "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE" - Fields used in WHERE or
	// ORDER BY clauses are missing from the SELECT clause.
	//   "EXPECTED_SELECT" - SELECT is missing at the beginning of query.
	//   "EXPECTED_SINGLE_VALUE" - A list was passed as a value to a condition
	// whose operator expects a single value.
	//   "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR" - Missing one or both values with
	// BETWEEN operator.
	//   "INVALID_DATE_FORMAT" - Invalid date format. Expected 'YYYY-MM-DD'.
	//   "MISALIGNED_DATE_FOR_FILTER" - Misaligned date value for the filter. The
	// date should be the start of a week/month/quarter if the filtered field is
	// segments.week/segments.month/segments.quarter.
	//   "INVALID_STRING_VALUE" - Value passed was not a string when it should have
	// been. For example, it was a number or unquoted literal.
	//   "INVALID_VALUE_WITH_BETWEEN_OPERATOR" - A String value passed to the
	// BETWEEN operator does not parse as a date.
	//   "INVALID_VALUE_WITH_DURING_OPERATOR" - The value passed to the DURING
	// operator is not a Date range literal
	//   "INVALID_VALUE_WITH_LIKE_OPERATOR" - A value was passed to the LIKE
	// operator.
	//   "OPERATOR_FIELD_MISMATCH" - An operator was provided that is inapplicable
	// to the field being filtered.
	//   "PROHIBITED_EMPTY_LIST_IN_CONDITION" - A Condition was found with an empty
	// list.
	//   "PROHIBITED_ENUM_CONSTANT" - A condition used in the query references an
	// unsupported enum constant.
	//   "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE" - Fields that are not
	// allowed to be selected together were included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE" - A field that is not orderable was
	// included in the ORDER BY clause.
	//   "PROHIBITED_FIELD_IN_SELECT_CLAUSE" - A field that is not selectable was
	// included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_WHERE_CLAUSE" - A field that is not filterable was
	// included in the WHERE clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE" - Resource type specified in the
	// FROM clause is not supported by this service.
	//   "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE" - A field that comes from an
	// incompatible resource was included in the SELECT clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE" - A field that comes from an
	// incompatible resource was included in the WHERE clause.
	//   "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A metric incompatible with
	// the main resource or other selected segmenting resources was included in the
	// SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE" - A segment incompatible
	// with the main resource or other selected segmenting resources was included
	// in the SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A segment in
	// the SELECT clause is incompatible with a metric in the SELECT or WHERE
	// clause.
	//   "LIMIT_VALUE_TOO_LOW" - The value passed to the limit clause is too low.
	//   "PROHIBITED_NEWLINE_IN_STRING" - Query has a string containing a newline
	// character.
	//   "PROHIBITED_VALUE_COMBINATION_IN_LIST" - List contains values of different
	// types.
	//   "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR" - The values passed
	// to the BETWEEN operator are not of the same type.
	//   "STRING_NOT_TERMINATED" - Query contains unterminated string.
	//   "TOO_MANY_SEGMENTS" - Too many segments are specified in SELECT clause.
	//   "UNEXPECTED_END_OF_QUERY" - Query is incomplete and cannot be parsed.
	//   "UNEXPECTED_FROM_CLAUSE" - FROM clause cannot be specified in this query.
	//   "UNRECOGNIZED_FIELD" - Query contains one or more unrecognized fields.
	//   "UNEXPECTED_INPUT" - Query has an unexpected extra part.
	//   "REQUESTED_METRICS_FOR_MANAGER" - Metrics cannot be requested for a
	// manager account. To retrieve metrics, issue separate requests against each
	// client account under the manager account.
	//   "FILTER_HAS_TOO_MANY_VALUES" - The number of values (right-hand-side
	// operands) in a filter exceeds the limit.
	//   "REQUIRED_SEGMENT_FIELD_MISSING" - Required segment field is missing.
	QueryError string `json:"queryError,omitempty"`
	// QuotaError: An error with the amount of quota remaining.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_EXHAUSTED" - Too many requests.
	//   "RESOURCE_TEMPORARILY_EXHAUSTED" - Too many requests in a short amount of
	// time.
	QuotaError string `json:"quotaError,omitempty"`
	// RequestError: An error caused by the request
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NAME_MISSING" - Resource name is required for this request.
	//   "RESOURCE_NAME_MALFORMED" - Resource name provided is malformed.
	//   "BAD_RESOURCE_ID" - Resource name provided is malformed.
	//   "INVALID_PRODUCT_NAME" - Product name is invalid.
	//   "INVALID_CUSTOMER_ID" - Customer ID is invalid.
	//   "OPERATION_REQUIRED" - Mutate operation should have either create, update,
	// or remove specified.
	//   "RESOURCE_NOT_FOUND" - Requested resource not found.
	//   "INVALID_PAGE_TOKEN" - Next page token specified in user request is
	// invalid.
	//   "EXPIRED_PAGE_TOKEN" - Next page token specified in user request has
	// expired.
	//   "INVALID_PAGE_SIZE" - Page size specified in user request is invalid.
	//   "REQUIRED_FIELD_MISSING" - Required field is missing.
	//   "IMMUTABLE_FIELD" - The field cannot be modified because it's immutable.
	// It's also possible that the field can be modified using 'create' operation
	// but not 'update'.
	//   "TOO_MANY_MUTATE_OPERATIONS" - Received too many entries in request.
	//   "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT" - Request cannot be executed by a
	// manager account.
	//   "CANNOT_MODIFY_FOREIGN_FIELD" - Mutate request was attempting to modify a
	// readonly field. For instance, Budget fields can be requested for Ad Group,
	// but are read-only for adGroups:mutate.
	//   "INVALID_ENUM_VALUE" - Enum value is not permitted.
	//   "LOGIN_CUSTOMER_ID_PARAMETER_MISSING" - The login-customer-id parameter is
	// required for this request.
	//   "LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED" - Either
	// login-customer-id or linked-customer-id parameter is required for this
	// request.
	//   "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN" - page_token is set in the validate
	// only request
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS" -
	// return_summary_row cannot be enabled if request did not select any metrics
	// field.
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS" -
	// return_summary_row should not be enabled for validate only requests.
	//   "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE" - return_summary_row parameter
	// value should be the same between requests with page_token field set and
	// their original request.
	//   "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED" - The total results count
	// cannot be returned if it was not requested in the original request.
	//   "RPC_DEADLINE_TOO_SHORT" - Deadline specified by the client was too short.
	//   "PRODUCT_NOT_SUPPORTED" - The product associated with the request is not
	// supported for the current request.
	RequestError string `json:"requestError,omitempty"`
	// SizeLimitError: The reasons for the size limit error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUEST_SIZE_LIMIT_EXCEEDED" - The number of entries in the request
	// exceeds the system limit, or the contents of the operations exceed
	// transaction limits due to their size or complexity. Try reducing the number
	// of entries per request.
	//   "RESPONSE_SIZE_LIMIT_EXCEEDED" - The number of entries in the response
	// exceeds the system limit.
	SizeLimitError string `json:"sizeLimitError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuthenticationError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthenticationError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorCode) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorDetails: Additional error details.
type GoogleAdsSearchads360V0Errors__ErrorDetails struct {
	// QuotaErrorDetails: Details on the quota error, including the scope (account
	// or developer), the rate bucket name and the retry delay.
	QuotaErrorDetails *GoogleAdsSearchads360V0Errors__QuotaErrorDetails `json:"quotaErrorDetails,omitempty"`
	// UnpublishedErrorCode: The error code that should have been returned, but
	// wasn't. This is used when the error code is not published in the client
	// specified version.
	UnpublishedErrorCode string `json:"unpublishedErrorCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuotaErrorDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuotaErrorDetails") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__ErrorLocation: Describes the part of the
// request proto that caused the error.
type GoogleAdsSearchads360V0Errors__ErrorLocation struct {
	// FieldPathElements: A field path that indicates which field was invalid in
	// the request.
	FieldPathElements []*GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement `json:"fieldPathElements,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPathElements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPathElements") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__ErrorLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__ErrorLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__QuotaErrorDetails: Additional quota error
// details when there is QuotaError.
type GoogleAdsSearchads360V0Errors__QuotaErrorDetails struct {
	// RateName: The high level description of the quota bucket. Examples are "Get
	// requests for standard access" or "Requests per account".
	RateName string `json:"rateName,omitempty"`
	// RateScope: The rate scope of the quota limit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified enum
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCOUNT" - Per customer account quota
	//   "DEVELOPER" - Per project quota
	RateScope string `json:"rateScope,omitempty"`
	// RetryDelay: Backoff period that customers should wait before sending next
	// request.
	RetryDelay string `json:"retryDelay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RateName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RateName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__QuotaErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__QuotaErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__SearchAds360Error: Search Ads 360-specific
// error.
type GoogleAdsSearchads360V0Errors__SearchAds360Error struct {
	// Details: Additional error details, which are returned by certain error
	// codes. Most error codes do not include details.
	Details *GoogleAdsSearchads360V0Errors__ErrorDetails `json:"details,omitempty"`
	// ErrorCode: An enum value that indicates which error occurred.
	ErrorCode *GoogleAdsSearchads360V0Errors__ErrorCode `json:"errorCode,omitempty"`
	// Location: Describes the part of the request proto that caused the error.
	Location *GoogleAdsSearchads360V0Errors__ErrorLocation `json:"location,omitempty"`
	// Message: A human-readable description of the error.
	Message string `json:"message,omitempty"`
	// Trigger: The value that triggered the error.
	Trigger *GoogleAdsSearchads360V0Common__Value `json:"trigger,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__SearchAds360Error) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Error
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V0Errors__SearchAds360Failure: Describes how a Search
// Ads 360 API call failed. It's returned inside google.rpc.Status.details when
// a call fails.
type GoogleAdsSearchads360V0Errors__SearchAds360Failure struct {
	// Errors: The list of errors that occurred.
	Errors []*GoogleAdsSearchads360V0Errors__SearchAds360Error `json:"errors,omitempty"`
	// RequestId: The unique ID of the request that is used for debugging purposes.
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V0Errors__SearchAds360Failure) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V0Errors__SearchAds360Failure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonCampaignGoalSettingsCampaignRetentionGoalSettin
// gs: Retention campaign goal settings.
type GoogleAdsSearchads360V23CommonCampaignGoalSettingsCampaignRetentionGoalSettings struct {
	// TargetOption: Retention goal optimization mode for this campaign. Defaults
	// to TARGET_ALL. Only customers on the allowlist can set target_option.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TARGET_ALL" - The mode is used when the campaign optimizes for all
	// customers, which is the default value.
	//   "TARGET_SPECIFIC" - This mode configures the campaign to target only
	// customers who have previously interacted but are now lapsed or disengaged.
	TargetOption string `json:"targetOption,omitempty"`
	// ValueSettingsOverride: Retention goal campaign specific value settings.
	ValueSettingsOverride *GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings `json:"valueSettingsOverride,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetOption") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetOption") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonCampaignGoalSettingsCampaignRetentionGoalSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonCampaignGoalSettingsCampaignRetentionGoalSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonGoalSettingRetentionGoal: Retention goal
// settings.
type GoogleAdsSearchads360V23CommonGoalSettingRetentionGoal struct {
	// ValueSettings: Retention goal value settings.
	ValueSettings *GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings `json:"valueSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValueSettings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValueSettings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonGoalSettingRetentionGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonGoalSettingRetentionGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonLineupAttributeMetadataSampleChannel: A
// YouTube channel returned as an example of the content in a lineup.
type GoogleAdsSearchads360V23CommonLineupAttributeMetadataSampleChannel struct {
	// DisplayName: The name of the sample channel.
	DisplayName string `json:"displayName,omitempty"`
	// YoutubeChannel: A YouTube channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeChannelMetadata: Metadata for the sample channel.
	YoutubeChannelMetadata *GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata `json:"youtubeChannelMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonLineupAttributeMetadataSampleChannel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonLineupAttributeMetadataSampleChannel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint:
// Indicates that a resource's ability to serve in a particular country is
// constrained.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint struct {
	// CountryCriterion: Geo target constant resource name of the country in which
	// serving is constrained.
	CountryCriterion string `json:"countryCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A
// list of countries where a resource's serving is constrained.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList struct {
	// Countries: Countries in which serving is restricted.
	Countries []*GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraint `json:"countries,omitempty"`
	// TotalTargetedCountries: Total number of countries targeted by the resource.
	TotalTargetedCountries int64 `json:"totalTargetedCountries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Countries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Countries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint:
// Indicates that a policy topic was constrained due to disapproval of the
// website for reseller purposes.
type GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint struct {
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch:
// Evidence of mismatches between the URLs of a resource.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch struct {
	// UrlTypes: The set of URLs that did not match each other.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISPLAY_URL" - The display url.
	//   "FINAL_URL" - The final url.
	//   "FINAL_MOBILE_URL" - The final mobile url.
	//   "TRACKING_URL" - The tracking url template, with substituted desktop url.
	//   "MOBILE_TRACKING_URL" - The tracking url template, with substituted mobile
	// url.
	UrlTypes []string `json:"urlTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UrlTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UrlTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking:
// Evidence details when the destination is returning an HTTP error code or
// isn't functional in all locations for commonly used devices.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking struct {
	// Device: The type of device that failed to load the URL.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DESKTOP" - Landing page doesn't work on desktop device.
	//   "ANDROID" - Landing page doesn't work on Android device.
	//   "IOS" - Landing page doesn't work on iOS device.
	Device string `json:"device,omitempty"`
	// DnsErrorType: The type of DNS error.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HOSTNAME_NOT_FOUND" - Host name not found in DNS when fetching landing
	// page.
	//   "GOOGLE_CRAWLER_DNS_ISSUE" - Google internal crawler issue when
	// communicating with DNS. This error doesn't mean the landing page doesn't
	// work. Google will recrawl the landing page.
	DnsErrorType string `json:"dnsErrorType,omitempty"`
	// ExpandedUrl: The full URL that didn't work.
	ExpandedUrl string `json:"expandedUrl,omitempty"`
	// HttpErrorCode: The HTTP error code.
	HttpErrorCode int64 `json:"httpErrorCode,omitempty,string"`
	// LastCheckedDateTime: The time the URL was last checked. The format is
	// "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05 09:15:00" or "2018-02-01
	// 14:34:30"
	LastCheckedDateTime string `json:"lastCheckedDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Device") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Device") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList: A list
// of strings found in a destination page that caused a policy finding.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList struct {
	// DestinationTexts: List of text found in the resource's destination page.
	DestinationTexts []string `json:"destinationTexts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationTexts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationTexts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList: A list of
// fragments of text that violated a policy.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList struct {
	// Texts: The fragments of text from the resource that caused the policy
	// finding.
	Texts []string `json:"texts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Texts") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Texts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList: A list of
// websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP
// policy topic, for example. In case there are more than five websites, only
// the top five (those that appear in resources the most) will be listed here.
type GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList struct {
	// Websites: Websites that caused the policy finding.
	Websites []string `json:"websites,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Websites") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Websites") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ActivityCityInfo: The city where the travel
// activity is available.
type GoogleAdsSearchads360V23Common__ActivityCityInfo struct {
	// Value: String value of the activity city. The Geo Target Constant resource
	// name.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ActivityCityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ActivityCityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ActivityCountryInfo: The country where the
// travel activity is available.
type GoogleAdsSearchads360V23Common__ActivityCountryInfo struct {
	// Value: String value of the activity country. The Geo Target Constant
	// resource name.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ActivityCountryInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ActivityCountryInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ActivityIdInfo: Advertiser-specific activity
// ID.
type GoogleAdsSearchads360V23Common__ActivityIdInfo struct {
	// Value: String value of the activity ID.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ActivityIdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ActivityIdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ActivityRatingInfo: Rating of the activity
// as a number 1 to 5, where 5 is the best.
type GoogleAdsSearchads360V23Common__ActivityRatingInfo struct {
	// Value: Long value of the activity rating.
	Value int64 `json:"value,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ActivityRatingInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ActivityRatingInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ActivityStateInfo: The state where the
// travel activity is available.
type GoogleAdsSearchads360V23Common__ActivityStateInfo struct {
	// Value: String value of the activity state. The Geo Target Constant resource
	// name.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ActivityStateInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ActivityStateInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset: An app deep link used
// inside an ad.
type GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset struct {
	// Asset: The Asset resource name of this app deep link asset.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdAssetPolicySummary: Contains policy
// information for an asset inside an ad.
type GoogleAdsSearchads360V23Common__AdAssetPolicySummary struct {
	// ApprovalStatus: The overall approval status of this asset, which is
	// calculated based on the status of its individual policy topic entries.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISAPPROVED" - Will not serve.
	//   "APPROVED_LIMITED" - Serves with restrictions.
	//   "APPROVED" - Serves without restrictions.
	//   "AREA_OF_INTEREST_ONLY" - Will not serve in targeted countries, but may
	// serve for users who are searching for information about the targeted
	// countries.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// PolicyTopicEntries: The list of policy findings for this asset.
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ReviewStatus: Where in the review process this asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "REVIEW_IN_PROGRESS" - Currently under review.
	//   "REVIEWED" - Primary review complete. Other reviews may be continuing.
	//   "UNDER_APPEAL" - The resource has been resubmitted for approval or its
	// policy decision has been appealed.
	//   "ELIGIBLE_MAY_SERVE" - The resource is eligible and may be serving but
	// could still undergo further review.
	ReviewStatus string `json:"reviewStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdAssetPolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdAssetPolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdCallToActionAsset: A call to action asset
// used inside an ad.
type GoogleAdsSearchads360V23Common__AdCallToActionAsset struct {
	// Asset: The Asset resource name of this call to action asset.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdCallToActionAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdCallToActionAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset: A Demand Gen
// carousel card asset used inside an ad.
type GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset struct {
	// Asset: The Asset resource name of this discovery carousel card.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdImageAsset: An image asset used inside an
// ad.
type GoogleAdsSearchads360V23Common__AdImageAsset struct {
	// Asset: The Asset resource name of this image.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdImageAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdImageAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdMediaBundleAsset: A media bundle asset
// used inside an ad.
type GoogleAdsSearchads360V23Common__AdMediaBundleAsset struct {
	// Asset: The Asset resource name of this media bundle.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdMediaBundleAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdMediaBundleAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdScheduleInfo: Represents an AdSchedule
// criterion. AdSchedule is specified as the day of the week and a time
// interval within which ads will be shown. No more than six AdSchedules can be
// added for the same day.
type GoogleAdsSearchads360V23Common__AdScheduleInfo struct {
	// DayOfWeek: Day of the week the schedule applies to. This field is required
	// for CREATE operations and is prohibited on UPDATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MONDAY" - Monday.
	//   "TUESDAY" - Tuesday.
	//   "WEDNESDAY" - Wednesday.
	//   "THURSDAY" - Thursday.
	//   "FRIDAY" - Friday.
	//   "SATURDAY" - Saturday.
	//   "SUNDAY" - Sunday.
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// EndHour: Ending hour in 24 hour time; 24 signifies end of the day. This
	// field must be between 0 and 24, inclusive. This field is required for CREATE
	// operations and is prohibited on UPDATE operations.
	EndHour int64 `json:"endHour,omitempty"`
	// EndMinute: Minutes after the end hour at which this schedule ends. The
	// schedule is exclusive of the end minute. This field is required for CREATE
	// operations and is prohibited on UPDATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ZERO" - Zero minutes past the hour.
	//   "FIFTEEN" - Fifteen minutes past the hour.
	//   "THIRTY" - Thirty minutes past the hour.
	//   "FORTY_FIVE" - Forty-five minutes past the hour.
	EndMinute string `json:"endMinute,omitempty"`
	// StartHour: Starting hour in 24 hour time. This field must be between 0 and
	// 23, inclusive. This field is required for CREATE operations and is
	// prohibited on UPDATE operations.
	StartHour int64 `json:"startHour,omitempty"`
	// StartMinute: Minutes after the start hour at which this schedule starts.
	// This field is required for CREATE operations and is prohibited on UPDATE
	// operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ZERO" - Zero minutes past the hour.
	//   "FIFTEEN" - Fifteen minutes past the hour.
	//   "THIRTY" - Thirty minutes past the hour.
	//   "FORTY_FIVE" - Forty-five minutes past the hour.
	StartMinute string `json:"startMinute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DayOfWeek") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdScheduleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdScheduleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdTextAsset: A text asset used inside an ad.
type GoogleAdsSearchads360V23Common__AdTextAsset struct {
	// AssetPerformanceLabel: The performance label of this text asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - This asset does not yet have any performance informantion.
	// This may be because it is still under review.
	//   "LEARNING" - The asset has started getting impressions but the stats are
	// not statistically significant enough to get an asset performance label.
	//   "LOW" - Worst performing assets.
	//   "GOOD" - Good performing assets.
	//   "BEST" - Best performing assets.
	//   "NOT_APPLICABLE" - Performance label cannot be assigned to this asset.
	// This may be because it's not used by asset based creatives.
	AssetPerformanceLabel string `json:"assetPerformanceLabel,omitempty"`
	// PinnedField: The pinned field of the asset. This restricts the asset to only
	// serve within this field. Multiple assets can be pinned to the same field. An
	// asset that is unpinned or pinned to a different field will not serve in a
	// field where some other asset has been pinned.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HEADLINE_1" - The asset is used in headline 1.
	//   "HEADLINE_2" - The asset is used in headline 2.
	//   "HEADLINE_3" - The asset is used in headline 3.
	//   "DESCRIPTION_1" - The asset is used in description 1.
	//   "DESCRIPTION_2" - The asset is used in description 2.
	//   "HEADLINE" - The asset was used in a headline. Use this only if there is
	// only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or
	// HEADLINE_3 enums
	//   "HEADLINE_IN_PORTRAIT" - The asset was used as a headline in portrait
	// image.
	//   "LONG_HEADLINE" - The asset was used in a long headline (used in
	// MultiAssetResponsiveAd).
	//   "DESCRIPTION" - The asset was used in a description. Use this only if
	// there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or
	// DESCRIPTION_@ enums
	//   "DESCRIPTION_IN_PORTRAIT" - The asset was used as description in portrait
	// image.
	//   "BUSINESS_NAME_IN_PORTRAIT" - The asset was used as business name in
	// portrait image.
	//   "BUSINESS_NAME" - The asset was used as business name.
	//   "MARKETING_IMAGE" - The asset was used as a marketing image.
	//   "MARKETING_IMAGE_IN_PORTRAIT" - The asset was used as a marketing image in
	// portrait image.
	//   "SQUARE_MARKETING_IMAGE" - The asset was used as a square marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset was used as a portrait marketing
	// image.
	//   "LOGO" - The asset was used as a logo.
	//   "LANDSCAPE_LOGO" - The asset was used as a landscape logo.
	//   "CALL_TO_ACTION" - The asset was used as a call-to-action.
	//   "YOU_TUBE_VIDEO" - The asset was used as a YouTube video.
	//   "SITELINK" - This asset is used as a sitelink.
	//   "CALL" - This asset is used as a call.
	//   "MOBILE_APP" - This asset is used as a mobile app.
	//   "CALLOUT" - This asset is used as a callout.
	//   "STRUCTURED_SNIPPET" - This asset is used as a structured snippet.
	//   "PRICE" - This asset is used as a price.
	//   "PROMOTION" - This asset is used as a promotion.
	//   "AD_IMAGE" - This asset is used as an image.
	//   "LEAD_FORM" - The asset is used as a lead form.
	//   "BUSINESS_LOGO" - The asset is used as a business logo.
	//   "DESCRIPTION_PREFIX" - The asset is used as a description prefix.
	//   "HEADLINE_AS_SITELINK_POSITION_ONE" - A headline asset used as a sitelink
	// in position 1.
	//   "HEADLINE_AS_SITELINK_POSITION_TWO" - A headline asset used as a sitelink
	// in position 2.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE" - A description line
	// asset used as a sitelink in position 1.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO" - A description line
	// asset used as a sitelink in position 2.
	PinnedField string `json:"pinnedField,omitempty"`
	// PolicySummaryInfo: The policy summary of this text asset.
	PolicySummaryInfo *GoogleAdsSearchads360V23Common__AdAssetPolicySummary `json:"policySummaryInfo,omitempty"`
	// Text: Asset text.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetPerformanceLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetPerformanceLabel") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdTextAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdTextAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdVideoAsset: A video asset used inside an
// ad.
type GoogleAdsSearchads360V23Common__AdVideoAsset struct {
	// AdVideoAssetInfo: Contains info fields for this AdVideoAsset.
	AdVideoAssetInfo *GoogleAdsSearchads360V23Common__AdVideoAssetInfo `json:"adVideoAssetInfo,omitempty"`
	// Asset: The Asset resource name of this video.
	Asset string `json:"asset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdVideoAssetInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdVideoAssetInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdVideoAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdVideoAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdVideoAssetInfo: Contains info fields for
// AdVideoAssets.
type GoogleAdsSearchads360V23Common__AdVideoAssetInfo struct {
	// AdVideoAssetFeatureControl: Defines feature controls for this AdVideoAsset
	// during serving time. For example, whether YouTube comments should be enabled
	// for Partnership Ads served on YouTube Shorts.
	AdVideoAssetFeatureControl *GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl `json:"adVideoAssetFeatureControl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdVideoAssetFeatureControl")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdVideoAssetFeatureControl") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdVideoAssetInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdVideoAssetInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl: YouTube
// Video Asset feature controls.
type GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl struct {
	// AllowYoutubeComments: Defines if YouTube comments should be enabled for the
	// creative using this YouTube video asset served on YouTube Shorts.
	AllowYoutubeComments bool `json:"allowYoutubeComments,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowYoutubeComments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowYoutubeComments") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdVideoAssetLinkFeatureControl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AdditionalApplicationInfo: Additional
// information about the application/tool issuing the request. This field is
// only used by ContentCreatorInsightsService, AudienceInsightsService, and
// ReachPlanService APIs.
type GoogleAdsSearchads360V23Common__AdditionalApplicationInfo struct {
	// ApplicationId: The unique identifier of the agency proprietary application.
	// This identifier is generated by Google. Reach out to your Google
	// representative to request an application_id for each new application being
	// integrated.
	ApplicationId string `json:"applicationId,omitempty"`
	// ApplicationInstance: The instance type of the application sending the
	// request.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "DEVELOPMENT_AND_TESTING" - The instance is for development and testing
	// purposes.
	//   "PRODUCTION" - The instance is for production purposes.
	ApplicationInstance string `json:"applicationInstance,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AdditionalApplicationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AdditionalApplicationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AddressInfo: Address for proximity
// criterion.
type GoogleAdsSearchads360V23Common__AddressInfo struct {
	// CityName: Name of the city.
	CityName string `json:"cityName,omitempty"`
	// CountryCode: Country code.
	CountryCode string `json:"countryCode,omitempty"`
	// PostalCode: Postal code.
	PostalCode string `json:"postalCode,omitempty"`
	// ProvinceCode: Province or state code.
	ProvinceCode string `json:"provinceCode,omitempty"`
	// ProvinceName: Province or state name.
	ProvinceName string `json:"provinceName,omitempty"`
	// StreetAddress: Street address line 1.
	StreetAddress string `json:"streetAddress,omitempty"`
	// StreetAddress2: Street address line 2. This field is write-only. It is only
	// used for calculating the longitude and latitude of an address when geo_point
	// is empty.
	StreetAddress2 string `json:"streetAddress2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CityName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CityName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AddressInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AddressInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AgeDimension: Dimension specifying users by
// their age.
type GoogleAdsSearchads360V23Common__AgeDimension struct {
	// AgeRanges: Contiguous age range to be included in the dimension.
	AgeRanges []*GoogleAdsSearchads360V23Common__AgeSegment `json:"ageRanges,omitempty"`
	// IncludeUndetermined: Include users whose age is not determined.
	IncludeUndetermined bool `json:"includeUndetermined,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AgeDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AgeDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AgeRangeInfo: An age range criterion.
type GoogleAdsSearchads360V23Common__AgeRangeInfo struct {
	// Type: Type of the age range.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AGE_RANGE_18_24" - Between 18 and 24 years old.
	//   "AGE_RANGE_25_34" - Between 25 and 34 years old.
	//   "AGE_RANGE_35_44" - Between 35 and 44 years old.
	//   "AGE_RANGE_45_54" - Between 45 and 54 years old.
	//   "AGE_RANGE_55_64" - Between 55 and 64 years old.
	//   "AGE_RANGE_65_UP" - 65 years old and beyond.
	//   "AGE_RANGE_UNDETERMINED" - Undetermined age range.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AgeRangeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AgeRangeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AgeSegment: Contiguous age range.
type GoogleAdsSearchads360V23Common__AgeSegment struct {
	// MaxAge: Maximum age to include. A maximum age need not be specified. If
	// specified, max_age must be greater than min_age, and allowed values are 24,
	// 34, 44, 54, and 64.
	MaxAge int64 `json:"maxAge,omitempty"`
	// MinAge: Minimum age to include. A minimum age must be specified and must be
	// at least 18. Allowed values are 18, 25, 35, 45, 55, and 65.
	MinAge int64 `json:"minAge,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxAge") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxAge") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AgeSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AgeSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AppAdInfo: An app ad.
type GoogleAdsSearchads360V23Common__AppAdInfo struct {
	// AppDeepLink: An app deep link asset that may be used with the ad.
	AppDeepLink *GoogleAdsSearchads360V23Common__AdAppDeepLinkAsset `json:"appDeepLink,omitempty"`
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// Html5MediaBundles: List of media bundle assets that may be used with the ad.
	Html5MediaBundles []*GoogleAdsSearchads360V23Common__AdMediaBundleAsset `json:"html5MediaBundles,omitempty"`
	// Images: List of image assets that may be displayed with the ad.
	Images []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"images,omitempty"`
	// MandatoryAdText: Mandatory ad text.
	MandatoryAdText *GoogleAdsSearchads360V23Common__AdTextAsset `json:"mandatoryAdText,omitempty"`
	// YoutubeVideos: List of YouTube video assets that may be displayed with the
	// ad.
	YoutubeVideos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"youtubeVideos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppDeepLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppDeepLink") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AppAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AppAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AppDeepLinkAsset: An app deep link asset
type GoogleAdsSearchads360V23Common__AppDeepLinkAsset struct {
	// AppDeepLinkUri: The uri for the app deep link, The uri can be either a
	// custom scheme uri (e.g. mystore://shoes) or universal uri (e.g.
	// http://www.mystore.com/shoes).
	AppDeepLinkUri string `json:"appDeepLinkUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppDeepLinkUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppDeepLinkUri") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AppDeepLinkAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AppDeepLinkAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AppEngagementAdInfo: App engagement ads
// allow you to write text encouraging a specific action in the app, like
// checking in, making a purchase, or booking a flight. They allow you to send
// users to a specific part of your app where they can find what they're
// looking for easier and faster.
type GoogleAdsSearchads360V23Common__AppEngagementAdInfo struct {
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// Images: List of image assets that may be displayed with the ad.
	Images []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"images,omitempty"`
	// Videos: List of video assets that may be displayed with the ad.
	Videos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"videos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Descriptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Descriptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AppEngagementAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AppEngagementAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AppPaymentModelInfo: An app payment model
// criterion.
type GoogleAdsSearchads360V23Common__AppPaymentModelInfo struct {
	// Type: Type of the app payment model.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAID" - Represents paid-for apps.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AppPaymentModelInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AppPaymentModelInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo: App
// pre-registration ads link to your app or game listing on Google Play, and
// can run on Google Play, on YouTube (in-stream only), and within other apps
// and mobile websites on the Display Network. It will help capture people's
// interest in your app or game and generate an early install base for your app
// or game before a launch.
type GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo struct {
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// Images: List of image asset IDs whose images may be displayed with the ad.
	Images []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"images,omitempty"`
	// YoutubeVideos: List of YouTube video asset IDs whose videos may be displayed
	// with the ad.
	YoutubeVideos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"youtubeVideos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Descriptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Descriptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AssetDisapproved: Details related to
// AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED
type GoogleAdsSearchads360V23Common__AssetDisapproved struct {
	// OfflineEvaluationErrorReasons: Provides the quality evaluation disapproval
	// reason of an asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PRICE_ASSET_DESCRIPTION_REPEATS_ROW_HEADER" - One or more descriptions
	// repeats its corresponding row header.
	//   "PRICE_ASSET_REPETITIVE_HEADERS" - Price asset contains repetitive
	// headers.
	//   "PRICE_ASSET_HEADER_INCOMPATIBLE_WITH_PRICE_TYPE" - Price item header is
	// not relevant to the price type.
	//   "PRICE_ASSET_DESCRIPTION_INCOMPATIBLE_WITH_ITEM_HEADER" - Price item
	// description is not relevant to the item header.
	//   "PRICE_ASSET_DESCRIPTION_HAS_PRICE_QUALIFIER" - Price asset has a price
	// qualifier in a description.
	//   "PRICE_ASSET_UNSUPPORTED_LANGUAGE" - Unsupported language for price assets
	//   "PRICE_ASSET_OTHER_ERROR" - Human raters identified an issue with the
	// price asset that isn't captured by other error reasons. The primary purpose
	// of this value is to represent legacy FeedItem disapprovals that are no
	// longer produced.
	OfflineEvaluationErrorReasons []string `json:"offlineEvaluationErrorReasons,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "OfflineEvaluationErrorReasons") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OfflineEvaluationErrorReasons")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AssetDisapproved) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AssetDisapproved
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AssetInteractionTarget: An
// AssetInteractionTarget segment.
type GoogleAdsSearchads360V23Common__AssetInteractionTarget struct {
	// Asset: The asset resource name.
	Asset string `json:"asset,omitempty"`
	// InteractionOnThisAsset: Only used with CustomerAsset, CampaignAsset and
	// AdGroupAsset metrics. Indicates whether the interaction metrics occurred on
	// the asset itself or a different asset or ad unit.
	InteractionOnThisAsset bool `json:"interactionOnThisAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AssetInteractionTarget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AssetInteractionTarget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails: Provides the
// detail of a PrimaryStatus. Each asset link has a PrimaryStatus value (e.g.
// NOT_ELIGIBLE, meaning not serving), and list of corroborating
// PrimaryStatusReasons (e.g. [ASSET_DISAPPROVED]). Each reason may have some
// additional details annotated with it. For instance, when the reason is
// ASSET_DISAPPROVED, the details field will contain additional information
// about the offline evaluation errors which led to the asset being
// disapproved.
type GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails struct {
	// AssetDisapproved: Provides the details for
	// AssetLinkPrimaryStatusReason.ASSET_DISAPPROVED
	AssetDisapproved *GoogleAdsSearchads360V23Common__AssetDisapproved `json:"assetDisapproved,omitempty"`
	// Reason: Provides the reason of this PrimaryStatus.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_LINK_PAUSED" - The asset is paused for its linked rollup level.
	// Contributes to a PrimaryStatus of PAUSED.
	//   "ASSET_LINK_REMOVED" - The asset is removed for its linked rollup level.
	// Contributes to a PrimaryStatus of REMOVED.
	//   "ASSET_DISAPPROVED" - The asset has been marked as disapproved.
	// Contributes to a PrimaryStatus of NOT_ELIGIBLE
	//   "ASSET_UNDER_REVIEW" - The asset has not completed policy review.
	// Contributes to a PrimaryStatus of PENDING.
	//   "ASSET_APPROVED_LABELED" - The asset is approved with policies applied.
	// Contributes to a PrimaryStatus of LIMITED.
	Reason string `json:"reason,omitempty"`
	// Status: Provides the PrimaryStatus of this status detail.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset is eligible to serve.
	//   "PAUSED" - The user-specified asset link status is paused.
	//   "REMOVED" - The user-specified asset link status is removed.
	//   "PENDING" - The asset may serve in the future.
	//   "LIMITED" - The asset is serving in a partial capacity.
	//   "NOT_ELIGIBLE" - The asset is not eligible to serve.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetDisapproved") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetDisapproved") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AssetUsage: Contains the usage information
// of the asset.
type GoogleAdsSearchads360V23Common__AssetUsage struct {
	// Asset: Resource name of the asset.
	Asset string `json:"asset,omitempty"`
	// ServedAssetFieldType: The served field type of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HEADLINE_1" - The asset is used in headline 1.
	//   "HEADLINE_2" - The asset is used in headline 2.
	//   "HEADLINE_3" - The asset is used in headline 3.
	//   "DESCRIPTION_1" - The asset is used in description 1.
	//   "DESCRIPTION_2" - The asset is used in description 2.
	//   "HEADLINE" - The asset was used in a headline. Use this only if there is
	// only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or
	// HEADLINE_3 enums
	//   "HEADLINE_IN_PORTRAIT" - The asset was used as a headline in portrait
	// image.
	//   "LONG_HEADLINE" - The asset was used in a long headline (used in
	// MultiAssetResponsiveAd).
	//   "DESCRIPTION" - The asset was used in a description. Use this only if
	// there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or
	// DESCRIPTION_@ enums
	//   "DESCRIPTION_IN_PORTRAIT" - The asset was used as description in portrait
	// image.
	//   "BUSINESS_NAME_IN_PORTRAIT" - The asset was used as business name in
	// portrait image.
	//   "BUSINESS_NAME" - The asset was used as business name.
	//   "MARKETING_IMAGE" - The asset was used as a marketing image.
	//   "MARKETING_IMAGE_IN_PORTRAIT" - The asset was used as a marketing image in
	// portrait image.
	//   "SQUARE_MARKETING_IMAGE" - The asset was used as a square marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset was used as a portrait marketing
	// image.
	//   "LOGO" - The asset was used as a logo.
	//   "LANDSCAPE_LOGO" - The asset was used as a landscape logo.
	//   "CALL_TO_ACTION" - The asset was used as a call-to-action.
	//   "YOU_TUBE_VIDEO" - The asset was used as a YouTube video.
	//   "SITELINK" - This asset is used as a sitelink.
	//   "CALL" - This asset is used as a call.
	//   "MOBILE_APP" - This asset is used as a mobile app.
	//   "CALLOUT" - This asset is used as a callout.
	//   "STRUCTURED_SNIPPET" - This asset is used as a structured snippet.
	//   "PRICE" - This asset is used as a price.
	//   "PROMOTION" - This asset is used as a promotion.
	//   "AD_IMAGE" - This asset is used as an image.
	//   "LEAD_FORM" - The asset is used as a lead form.
	//   "BUSINESS_LOGO" - The asset is used as a business logo.
	//   "DESCRIPTION_PREFIX" - The asset is used as a description prefix.
	//   "HEADLINE_AS_SITELINK_POSITION_ONE" - A headline asset used as a sitelink
	// in position 1.
	//   "HEADLINE_AS_SITELINK_POSITION_TWO" - A headline asset used as a sitelink
	// in position 2.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE" - A description line
	// asset used as a sitelink in position 1.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO" - A description line
	// asset used as a sitelink in position 2.
	ServedAssetFieldType string `json:"servedAssetFieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AssetUsage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AssetUsage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceDimension: Positive dimension
// specifying user's audience.
type GoogleAdsSearchads360V23Common__AudienceDimension struct {
	// Age: Dimension specifying users by their age.
	Age *GoogleAdsSearchads360V23Common__AgeDimension `json:"age,omitempty"`
	// AudienceSegments: Dimension specifying users by their membership in other
	// audience segments.
	AudienceSegments *GoogleAdsSearchads360V23Common__AudienceSegmentDimension `json:"audienceSegments,omitempty"`
	// Gender: Dimension specifying users by their gender.
	Gender *GoogleAdsSearchads360V23Common__GenderDimension `json:"gender,omitempty"`
	// HouseholdIncome: Dimension specifying users by their household income.
	HouseholdIncome *GoogleAdsSearchads360V23Common__HouseholdIncomeDimension `json:"householdIncome,omitempty"`
	// ParentalStatus: Dimension specifying users by their parental status.
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusDimension `json:"parentalStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Age") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Age") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceExclusionDimension: Negative
// dimension specifying users to exclude from the audience.
type GoogleAdsSearchads360V23Common__AudienceExclusionDimension struct {
	// Exclusions: Audience segment to be excluded.
	Exclusions []*GoogleAdsSearchads360V23Common__ExclusionSegment `json:"exclusions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Exclusions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Exclusions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceExclusionDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceExclusionDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInfo: An audience criterion.
type GoogleAdsSearchads360V23Common__AudienceInfo struct {
	// Audience: The Audience resource name.
	Audience string `json:"audience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audience") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInsightsAttribute: An audience
// attribute that can be used to request insights about the audience.
type GoogleAdsSearchads360V23Common__AudienceInsightsAttribute struct {
	// AgeRange: An audience attribute defined by an age range.
	AgeRange *GoogleAdsSearchads360V23Common__AgeRangeInfo `json:"ageRange,omitempty"`
	// Category: An audience attribute defined by interest in a Product & Service
	// category.
	Category *GoogleAdsSearchads360V23Common__AudienceInsightsCategory `json:"category,omitempty"`
	// Device: A device type. (Mobile, Desktop, Tablet)
	Device *GoogleAdsSearchads360V23Common__DeviceInfo `json:"device,omitempty"`
	// Entity: An audience attribute defined by interest in a topic represented by
	// a Knowledge Graph entity.
	Entity *GoogleAdsSearchads360V23Common__AudienceInsightsEntity `json:"entity,omitempty"`
	// Gender: An audience attribute defined by a gender.
	Gender *GoogleAdsSearchads360V23Common__GenderInfo `json:"gender,omitempty"`
	// IncomeRange: A household income percentile range.
	IncomeRange *GoogleAdsSearchads360V23Common__IncomeRangeInfo `json:"incomeRange,omitempty"`
	// Lineup: A YouTube Lineup.
	Lineup *GoogleAdsSearchads360V23Common__AudienceInsightsLineup `json:"lineup,omitempty"`
	// Location: An audience attribute defined by a geographic location.
	Location *GoogleAdsSearchads360V23Common__LocationInfo `json:"location,omitempty"`
	// ParentalStatus: A Parental Status value (parent, or not a parent).
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusInfo `json:"parentalStatus,omitempty"`
	// UserInterest: An Affinity or In-Market audience.
	UserInterest *GoogleAdsSearchads360V23Common__UserInterestInfo `json:"userInterest,omitempty"`
	// UserList: A User List.
	UserList *GoogleAdsSearchads360V23Common__UserListInfo `json:"userList,omitempty"`
	// YoutubeChannel: A YouTube channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeVideo: A YouTube video.
	YoutubeVideo *GoogleAdsSearchads360V23Common__YouTubeVideoInfo `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata: An
// audience attribute, with metadata about it, returned in response to a
// search.
type GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata struct {
	// Attribute: The attribute itself.
	Attribute *GoogleAdsSearchads360V23Common__AudienceInsightsAttribute `json:"attribute,omitempty"`
	// Dimension: The type of the attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimension string `json:"dimension,omitempty"`
	// DisplayInfo: A string that supplements the display_name to identify the
	// attribute. If the dimension is TOPIC, this is a brief description of the
	// Knowledge Graph entity, such as "American singer-songwriter". If the
	// dimension is CATEGORY, this is the complete path to the category in The
	// Product & Service taxonomy, for example "/Apparel/Clothing/Outerwear".
	DisplayInfo string `json:"displayInfo,omitempty"`
	// DisplayName: The human-readable name of the attribute.
	DisplayName string `json:"displayName,omitempty"`
	// KnowledgeGraphAttributeMetadata: Special metadata for a Knowledge Graph
	// Entity.
	KnowledgeGraphAttributeMetadata *GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata `json:"knowledgeGraphAttributeMetadata,omitempty"`
	// LineupAttributeMetadata: Special metadata for a YouTube Lineup.
	LineupAttributeMetadata *GoogleAdsSearchads360V23Common__LineupAttributeMetadata `json:"lineupAttributeMetadata,omitempty"`
	// LocationAttributeMetadata: Special metadata for a Location.
	LocationAttributeMetadata *GoogleAdsSearchads360V23Common__LocationAttributeMetadata `json:"locationAttributeMetadata,omitempty"`
	// PotentialYoutubeReach: An estimate of the number of reachable YouTube users
	// matching this attribute in the requested location, or zero if that
	// information is not available for this attribute. This field is not populated
	// in every response.
	PotentialYoutubeReach int64 `json:"potentialYoutubeReach,omitempty,string"`
	// SubscriberShare: The share of subscribers within this attribute, between and
	// including 0 and 1. This field is not populated in every response.
	SubscriberShare float64 `json:"subscriberShare,omitempty"`
	// UserInterestAttributeMetadata: Special metadata for a User Interest.
	UserInterestAttributeMetadata *GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata `json:"userInterestAttributeMetadata,omitempty"`
	// UserListAttributeMetadata: Special metadata for a User List.
	UserListAttributeMetadata *GoogleAdsSearchads360V23Common__UserListAttributeMetadata `json:"userListAttributeMetadata,omitempty"`
	// ViewerShare: The share of viewers within this attribute, between and
	// including 0 and 1. This field is not populated in every response.
	ViewerShare float64 `json:"viewerShare,omitempty"`
	// YoutubeChannelMetadata: Special metadata for a YouTube channel.
	YoutubeChannelMetadata *GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata `json:"youtubeChannelMetadata,omitempty"`
	// YoutubeVideoMetadata: Special metadata for a YouTube video.
	YoutubeVideoMetadata *GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata `json:"youtubeVideoMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attribute") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attribute") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata
	var s1 struct {
		SubscriberShare gensupport.JSONFloat64 `json:"subscriberShare"`
		ViewerShare     gensupport.JSONFloat64 `json:"viewerShare"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.SubscriberShare = float64(s1.SubscriberShare)
	s.ViewerShare = float64(s1.ViewerShare)
	return nil
}

// GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup: A
// group of audience attributes with metadata, returned in response to a
// search.
type GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup struct {
	// Attributes: Attributes with metadata returned in response to a search.
	Attributes []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"attributes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInsightsCategory: A Product and
// Service category.
type GoogleAdsSearchads360V23Common__AudienceInsightsCategory struct {
	// CategoryId: Required. The criterion ID of the category.
	CategoryId string `json:"categoryId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsCategory) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsCategory
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInsightsEntity: A Knowledge Graph
// entity, represented by its machine id.
type GoogleAdsSearchads360V23Common__AudienceInsightsEntity struct {
	// KnowledgeGraphMachineId: Required. The machine ID (mid) of the Knowledge
	// Graph entity.
	KnowledgeGraphMachineId string `json:"knowledgeGraphMachineId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KnowledgeGraphMachineId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KnowledgeGraphMachineId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsEntity) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsEntity
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceInsightsLineup: A YouTube Lineup.
type GoogleAdsSearchads360V23Common__AudienceInsightsLineup struct {
	// LineupId: Required. The numeric ID of the lineup.
	LineupId string `json:"lineupId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LineupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LineupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceInsightsLineup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceInsightsLineup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceSegment: Positive audience segment.
type GoogleAdsSearchads360V23Common__AudienceSegment struct {
	// CustomAudience: Custom audience segment.
	CustomAudience *GoogleAdsSearchads360V23Common__CustomAudienceSegment `json:"customAudience,omitempty"`
	// DetailedDemographic: Detailed demographic segment.
	DetailedDemographic *GoogleAdsSearchads360V23Common__DetailedDemographicSegment `json:"detailedDemographic,omitempty"`
	// LifeEvent: Live-event audience segment.
	LifeEvent *GoogleAdsSearchads360V23Common__LifeEventSegment `json:"lifeEvent,omitempty"`
	// UserInterest: Affinity or In-market segment.
	UserInterest *GoogleAdsSearchads360V23Common__UserInterestSegment `json:"userInterest,omitempty"`
	// UserList: User list segment.
	UserList *GoogleAdsSearchads360V23Common__UserListSegment `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomAudience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomAudience") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__AudienceSegmentDimension: Dimension
// specifying users by their membership in other audience segments.
type GoogleAdsSearchads360V23Common__AudienceSegmentDimension struct {
	// Segments: Included audience segments. Users are included if they belong to
	// at least one segment.
	Segments []*GoogleAdsSearchads360V23Common__AudienceSegment `json:"segments,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Segments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Segments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__AudienceSegmentDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__AudienceSegmentDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GoogleAdsSearchads360V23Common__BasicUserListInfo struct {
	// Actions: Actions associated with this user list.
	Actions []*GoogleAdsSearchads360V23Common__UserListActionInfo `json:"actions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Actions") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Actions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BasicUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BasicUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BookOnGoogleAsset: A Book on Google asset.
// Used to redirect user to book through Google. Book on Google will change the
// redirect url to book directly through Google.
type GoogleAdsSearchads360V23Common__BookOnGoogleAsset struct {
}

// GoogleAdsSearchads360V23Common__BrandInfo: Represents a Brand Criterion used
// for targeting based on commercial knowledge graph.
type GoogleAdsSearchads360V23Common__BrandInfo struct {
	// DisplayName: Output only. A text representation of a brand.
	DisplayName string `json:"displayName,omitempty"`
	// EntityId: The Commercial KG MID for the brand.
	EntityId string `json:"entityId,omitempty"`
	// PrimaryUrl: Output only. The primary url of a brand.
	PrimaryUrl string `json:"primaryUrl,omitempty"`
	// RejectionReason: Output only. The rejection reason when a brand status is
	// REJECTED.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXISTING_BRAND" - Brand is already present in the commercial brand set.
	//   "EXISTING_BRAND_VARIANT" - Brand is already present in the commercial
	// brand set, but is a variant.
	//   "INCORRECT_INFORMATION" - Brand information is not correct (eg: URL and
	// name don't match).
	//   "NOT_A_BRAND" - Not a valid brand as per Google policy.
	RejectionReason string `json:"rejectionReason,omitempty"`
	// Status: Output only. The status of a brand.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Brand is verified and globally available for selection
	//   "DEPRECATED" - Brand was globally available in past but is no longer a
	// valid brand (based on business criteria)
	//   "UNVERIFIED" - Brand is unverified and customer scoped, but can be
	// selected by customer (only who requested for same) for targeting
	//   "APPROVED" - Was a customer-scoped (unverified) brand, which got approved
	// by business and added to the global list. Its assigned CKG MID should be
	// used instead of this
	//   "CANCELLED" - Was a customer-scoped (unverified) brand, but the request
	// was canceled by customer and this brand id is no longer valid
	//   "REJECTED" - Was a customer-scoped (unverified) brand, but the request was
	// rejected by internal business team and this brand id is no longer valid
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BrandInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BrandInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BrandListInfo: A Brand List Criterion is
// used to specify a list of brands. The list is represented as a SharedSet id
// type BRAND_HINT. A criterion of this type can be either targeted or
// excluded.
type GoogleAdsSearchads360V23Common__BrandListInfo struct {
	// SharedSet: Shared set resource name of the brand list.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SharedSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BrandListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BrandListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BudgetSimulationPoint: Projected metrics for
// a specific budget amount.
type GoogleAdsSearchads360V23Common__BudgetSimulationPoint struct {
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// BudgetAmountMicros: The simulated budget upon which projected metrics are
	// based.
	BudgetAmountMicros int64 `json:"budgetAmountMicros,omitempty,string"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// Interactions: Projected number of interactions. Only discovery advertising
	// channel type supports this field.
	Interactions int64 `json:"interactions,omitempty,string"`
	// RequiredCpcBidCeilingMicros: Projected required daily cpc bid ceiling that
	// the advertiser must set to realize this simulation, in micros of the
	// advertiser currency. Only campaigns with the Target Spend bidding strategy
	// support this field.
	RequiredCpcBidCeilingMicros int64 `json:"requiredCpcBidCeilingMicros,omitempty,string"`
	// TopSlotImpressions: Projected number of top slot impressions. Only search
	// advertising channel type supports this field.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BiddableConversions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddableConversions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BudgetSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BudgetSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__BudgetSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__BudgetSimulationPoint
	var s1 struct {
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	return nil
}

// GoogleAdsSearchads360V23Common__BudgetSimulationPointList: A container for
// simulation points for simulations of type BUDGET.
type GoogleAdsSearchads360V23Common__BudgetSimulationPointList struct {
	// Points: Projected metrics for a series of budget amounts.
	Points []*GoogleAdsSearchads360V23Common__BudgetSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BudgetSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BudgetSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessMessageAsset: A business message
// asset.
type GoogleAdsSearchads360V23Common__BusinessMessageAsset struct {
	// CallToAction: A call to action for the business message asset.
	CallToAction *GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo `json:"callToAction,omitempty"`
	// FacebookMessengerInfo: Facebook Messenger.
	FacebookMessengerInfo *GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo `json:"facebookMessengerInfo,omitempty"`
	// MessageProvider: Required. Message provider of the business message asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WHATSAPP" - WhatsApp message provider
	//   "FACEBOOK_MESSENGER" - Facebook Messenger message provider
	//   "ZALO" - Zalo message provider
	MessageProvider string `json:"messageProvider,omitempty"`
	// StarterMessage: Required. A welcome message to prompt the user to initiate a
	// conversation.
	StarterMessage string `json:"starterMessage,omitempty"`
	// WhatsappInfo: Whatsapp.
	WhatsappInfo *GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo `json:"whatsappInfo,omitempty"`
	// ZaloInfo: Zalo.
	ZaloInfo *GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo `json:"zaloInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToAction") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessMessageAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessMessageAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo: Display
// information that encourages the user to take action.
type GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo struct {
	// CallToActionDescription: Required. Text providing a clear value proposition
	// of what users expect once they take the action. Examples: 'Message us for a
	// quote', 'Ask our expert team'.
	CallToActionDescription string `json:"callToActionDescription,omitempty"`
	// CallToActionSelection: Required. Pre-defined call to action text.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLY_NOW" - Apply now.
	//   "BOOK_NOW" - Book now.
	//   "CONTACT_US" - Contact us.
	//   "GET_INFO" - Get info.
	//   "GET_OFFER" - Get offer.
	//   "GET_QUOTE" - Get quote.
	//   "GET_STARTED" - Get started.
	//   "LEARN_MORE" - Learn more.
	CallToActionSelection string `json:"callToActionSelection,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToActionDescription") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToActionDescription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessMessageCallToActionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter: Business
// Profile location group business name filter.
type GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter struct {
	// BusinessName: Business name string to use for filtering.
	BusinessName string `json:"businessName,omitempty"`
	// FilterType: The type of string matching to use when filtering with
	// business_name.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - The filter will use exact string matching.
	FilterType string `json:"filterType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessProfileLocation: Business Profile
// location data synced from the linked Business Profile account.
type GoogleAdsSearchads360V23Common__BusinessProfileLocation struct {
	// Labels: Advertiser specified label for the location on the Business Profile
	// account. This is synced from the Business Profile account.
	Labels []string `json:"labels,omitempty"`
	// ListingId: Listing ID of this Business Profile location. This is synced from
	// the linked Business Profile account.
	ListingId int64 `json:"listingId,omitempty,string"`
	// StoreCode: Business Profile store code of this location. This is synced from
	// the Business Profile account.
	StoreCode string `json:"storeCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessProfileLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessProfileLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup: Information
// about a Business Profile dynamic location group. Only applicable if the sync
// level AssetSet's type is LOCATION_SYNC and sync source is Business Profile.
type GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup struct {
	// DynamicBusinessProfileLocationGroupFilter: Filter for dynamic Business
	// Profile location sets.
	DynamicBusinessProfileLocationGroupFilter *GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter `json:"dynamicBusinessProfileLocationGroupFilter,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DynamicBusinessProfileLocationGroupFilter") to unconditionally include in
	// API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "DynamicBusinessProfileLocationGroupFilter") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted from
	// API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields
	// for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__BusinessProfileLocationSet: Data used to
// configure a location set populated from Google Business Profile locations.
// Different types of filters are AND'ed together, if they are specified.
type GoogleAdsSearchads360V23Common__BusinessProfileLocationSet struct {
	// BusinessAccountId: Immutable. The account ID of the managed business whose
	// locations are to be used. If this field is not set, then all businesses
	// accessible by the user (specified by the emailAddress) are used.
	BusinessAccountId string `json:"businessAccountId,omitempty"`
	// BusinessNameFilter: Used to filter Google Business Profile listings by
	// business name. If businessNameFilter is set, only listings with a matching
	// business name are candidates to be sync'd into Assets.
	BusinessNameFilter string `json:"businessNameFilter,omitempty"`
	// EmailAddress: Required. Immutable. Email address of a Google Business
	// Profile account or email address of a manager of the Google Business Profile
	// account.
	EmailAddress string `json:"emailAddress,omitempty"`
	// HttpAuthorizationToken: Required. Immutable. The HTTP authorization token
	// used to obtain authorization.
	HttpAuthorizationToken string `json:"httpAuthorizationToken,omitempty"`
	// LabelFilters: Used to filter Google Business Profile listings by labels. If
	// entries exist in labelFilters, only listings that have any of the labels set
	// are candidates to be synchronized into Assets. If no entries exist in
	// labelFilters, then all listings are candidates for syncing. Label filters
	// are OR'ed together.
	LabelFilters []string `json:"labelFilters,omitempty"`
	// ListingIdFilters: Used to filter Google Business Profile listings by listing
	// id. If entries exist in listingIdFilters, only listings specified by the
	// filters are candidates to be synchronized into Assets. If no entries exist
	// in listingIdFilters, then all listings are candidates for syncing. Listing
	// ID filters are OR'ed together.
	ListingIdFilters googleapi.Int64s `json:"listingIdFilters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessAccountId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessAccountId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__BusinessProfileLocationSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__BusinessProfileLocationSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CallAsset: A Call asset.
type GoogleAdsSearchads360V23Common__CallAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CallConversionAction: The conversion action to attribute a call conversion
	// to. If not set, the default conversion action is used. This field only has
	// effect if call_conversion_reporting_state is set to
	// USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.
	CallConversionAction string `json:"callConversionAction,omitempty"`
	// CallConversionReportingState: Indicates whether this CallAsset should use
	// its own call conversion setting, follow the account level setting, or
	// disable call conversion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DISABLED" - Call conversion action is disabled.
	//   "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the account level.
	//   "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the resource (call only ads/call extensions)
	// level.
	CallConversionReportingState string `json:"callConversionReportingState,omitempty"`
	// CountryCode: Required. Two-letter country code of the phone number.
	// Examples: 'US', 'us'.
	CountryCode string `json:"countryCode,omitempty"`
	// PhoneNumber: Required. The advertiser's raw phone number. Examples:
	// '1234567890', '(123)456-7890'
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CallAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CallAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CallFeedItem: Represents a Call extension.
type GoogleAdsSearchads360V23Common__CallFeedItem struct {
	// CallConversionAction: The conversion action to attribute a call conversion
	// to. If not set a default conversion action is used. This field only has
	// effect if call_tracking_enabled is set to true. Otherwise this field is
	// ignored.
	CallConversionAction string `json:"callConversionAction,omitempty"`
	// CallConversionReportingState: Enum value that indicates whether this call
	// extension uses its own call conversion setting (or just have call conversion
	// disabled), or following the account level setting.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DISABLED" - Call conversion action is disabled.
	//   "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the account level.
	//   "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the resource (call only ads/call extensions)
	// level.
	CallConversionReportingState string `json:"callConversionReportingState,omitempty"`
	// CallConversionTrackingDisabled: If true, disable call conversion tracking.
	// call_conversion_action should not be set if this is true. Optional.
	CallConversionTrackingDisabled bool `json:"callConversionTrackingDisabled,omitempty"`
	// CallTrackingEnabled: Indicates whether call tracking is enabled. By default,
	// call tracking is not enabled.
	CallTrackingEnabled bool `json:"callTrackingEnabled,omitempty"`
	// CountryCode: Uppercase two-letter country code of the advertiser's phone
	// number. This string must not be empty.
	CountryCode string `json:"countryCode,omitempty"`
	// PhoneNumber: The advertiser's phone number to append to the ad. This string
	// must not be empty.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallConversionAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallConversionAction") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CallFeedItem) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CallFeedItem
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CallToActionAsset: A call to action asset.
type GoogleAdsSearchads360V23Common__CallToActionAsset struct {
	// CallToAction: Call to action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEARN_MORE" - The call to action type is learn more.
	//   "GET_QUOTE" - The call to action type is get quote.
	//   "APPLY_NOW" - The call to action type is apply now.
	//   "SIGN_UP" - The call to action type is sign up.
	//   "CONTACT_US" - The call to action type is contact us.
	//   "SUBSCRIBE" - The call to action type is subscribe.
	//   "DOWNLOAD" - The call to action type is download.
	//   "BOOK_NOW" - The call to action type is book now.
	//   "SHOP_NOW" - The call to action type is shop now.
	//   "BUY_NOW" - The call to action type is buy now.
	//   "DONATE_NOW" - The call to action type is donate now.
	//   "ORDER_NOW" - The call to action type is order now.
	//   "PLAY_NOW" - The call to action type is play now.
	//   "SEE_MORE" - The call to action type is see more.
	//   "START_NOW" - The call to action type is start now.
	//   "VISIT_SITE" - The call to action type is visit site.
	//   "WATCH_NOW" - The call to action type is watch now.
	CallToAction string `json:"callToAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToAction") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CallToActionAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CallToActionAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CalloutAsset: A Callout asset.
type GoogleAdsSearchads360V23Common__CalloutAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CalloutText: Required. The callout text. The length of this string should be
	// between 1 and 25, inclusive.
	CalloutText string `json:"calloutText,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CalloutAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CalloutAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CalloutFeedItem: Represents a callout
// extension.
type GoogleAdsSearchads360V23Common__CalloutFeedItem struct {
	// CalloutText: The callout text. The length of this string should be between 1
	// and 25, inclusive.
	CalloutText string `json:"calloutText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CalloutText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CalloutText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CalloutFeedItem) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CalloutFeedItem
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner
// : Container for third party Brand Lift integration data for Campaign.
type GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner struct {
	// BrandLiftIntegrationPartner: Allowed third party integration partners for
	// Brand Lift verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KANTAR_MILLWARD_BROWN" - Kantar
	//   "DYNATA" - Dynata
	//   "INTAGE" - Intage
	//   "MACROMILL" - Macromill
	BrandLiftIntegrationPartner string `json:"brandLiftIntegrationPartner,omitempty"`
	// BrandLiftIntegrationPartnerData: Third party partner data for YouTube Brand
	// Lift verification. This is optional metadata for partners to join or attach
	// data to Ads campaigns.
	BrandLiftIntegrationPartnerData *GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData `json:"brandLiftIntegrationPartnerData,omitempty"`
	// ShareCost: If true, then cost data will be shared with this vendor.
	ShareCost bool `json:"shareCost,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BrandLiftIntegrationPartner") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandLiftIntegrationPartner") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartn
// er: Container for third party brand safety integration data for Campaign.
type GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner struct {
	// BrandSafetyIntegrationPartner: Allowed third party integration partners for
	// brand safety verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DOUBLE_VERIFY" - DoubleVerify.
	//   "INTEGRAL_AD_SCIENCE" - Integral Ad Science.
	//   "ZEFR" - Zefr.
	BrandSafetyIntegrationPartner string `json:"brandSafetyIntegrationPartner,omitempty"`
	// BrandSafetyIntegrationPartnerData: Third party partner data for YouTube
	// brand safety verification. This is optional metadata for partners to join or
	// attach data to Ads campaigns.
	BrandSafetyIntegrationPartnerData *GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData `json:"brandSafetyIntegrationPartnerData,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BrandSafetyIntegrationPartner") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandSafetyIntegrationPartner")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners:
// Container for Campaign level third party integration partners.
type GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners struct {
	// BrandLiftIntegrationPartners: Third party integration partners for Brand
	// Lift verification for this Campaign.
	BrandLiftIntegrationPartners []*GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandLiftIntegrationPartner `json:"brandLiftIntegrationPartners,omitempty"`
	// BrandSafetyIntegrationPartners: Third party integration partners for brand
	// safety verification for this Campaign.
	BrandSafetyIntegrationPartners []*GoogleAdsSearchads360V23Common__CampaignThirdPartyBrandSafetyIntegrationPartner `json:"brandSafetyIntegrationPartners,omitempty"`
	// ReachIntegrationPartners: Third party integration partners for reach
	// verification for this Campaign.
	ReachIntegrationPartners []*GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner `json:"reachIntegrationPartners,omitempty"`
	// ViewabilityIntegrationPartners: Third party integration partners for YouTube
	// viewability verification for this Campaign.
	ViewabilityIntegrationPartners []*GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner `json:"viewabilityIntegrationPartners,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BrandLiftIntegrationPartners") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandLiftIntegrationPartners") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner:
// Container for third party reach integration data for Campaign.
type GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner struct {
	// ReachIntegrationPartner: Allowed third party integration partners for reach
	// verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NIELSEN" - Nielsen.
	//   "COMSCORE" - Comscore.
	//   "KANTAR_MILLWARD_BROWN" - Kantar.
	//   "VIDEO_RESEARCH" - Video Research.
	//   "GEMIUS" - Gemius.
	//   "MEDIA_SCOPE" - MediaScope.
	//   "AUDIENCE_PROJECT" - AudienceProject
	//   "VIDEO_AMP" - VideoAmp
	//   "ISPOT_TV" - iSpot.tv
	ReachIntegrationPartner string `json:"reachIntegrationPartner,omitempty"`
	// ReachIntegrationPartnerData: Third party partner data for YouTube Reach
	// verification. This is optional metadata for partners to join or attach data
	// to Ads campaigns.
	ReachIntegrationPartnerData *GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData `json:"reachIntegrationPartnerData,omitempty"`
	// ShareCost: If true, then cost data will be shared with this vendor.
	ShareCost bool `json:"shareCost,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReachIntegrationPartner") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReachIntegrationPartner") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CampaignThirdPartyReachIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartn
// er: Container for third party viewability integration data for Campaign.
type GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner struct {
	// ShareCost: If true, then cost data will be shared with this vendor.
	ShareCost bool `json:"shareCost,omitempty"`
	// ViewabilityIntegrationPartner: Allowed third party integration partners for
	// YouTube viewability verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DOUBLE_VERIFY" - DoubleVerify.
	//   "INTEGRAL_AD_SCIENCE" - Integral Ad Science.
	ViewabilityIntegrationPartner string `json:"viewabilityIntegrationPartner,omitempty"`
	// ViewabilityIntegrationPartnerData: Third party partner data for YouTube
	// viewability verification. This is optional metadata for partners to join or
	// attach data to Ads campaigns.
	ViewabilityIntegrationPartnerData *GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData `json:"viewabilityIntegrationPartnerData,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ShareCost") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ShareCost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CampaignThirdPartyViewabilityIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CarrierInfo: Represents a Carrier Criterion.
type GoogleAdsSearchads360V23Common__CarrierInfo struct {
	// CarrierConstant: The Carrier constant resource name.
	CarrierConstant string `json:"carrierConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CarrierConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CarrierConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CarrierInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CarrierInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ChainFilter: One chain level filter on
// location in a feed item set. The filtering logic among all the fields is
// AND.
type GoogleAdsSearchads360V23Common__ChainFilter struct {
	// ChainId: Required. Used to filter chain locations by chain id. Only chain
	// locations that belong to the specified chain will be in the asset set.
	ChainId int64 `json:"chainId,omitempty,string"`
	// LocationAttributes: Used to filter chain locations by location attributes.
	// Only chain locations that belong to all of the specified attribute(s) will
	// be in the asset set. If this field is empty, it means no filtering on this
	// field.
	LocationAttributes []string `json:"locationAttributes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChainId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChainId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ChainFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ChainFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ChainLocationGroup: Represents information
// about a Chain dynamic location group. Only applicable if the sync level
// AssetSet's type is LOCATION_SYNC and sync source is chain.
type GoogleAdsSearchads360V23Common__ChainLocationGroup struct {
	// DynamicChainLocationGroupFilters: Used to filter chain locations by chain
	// ids. Only Locations that belong to the specified chain(s) will be in the
	// asset set.
	DynamicChainLocationGroupFilters []*GoogleAdsSearchads360V23Common__ChainFilter `json:"dynamicChainLocationGroupFilters,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DynamicChainLocationGroupFilters") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "DynamicChainLocationGroupFilters") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ChainLocationGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ChainLocationGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ChainSet: Data used to configure a location
// set populated with the specified chains.
type GoogleAdsSearchads360V23Common__ChainSet struct {
	// Chains: Required. A list of chain level filters, all filters are OR'ed
	// together.
	Chains []*GoogleAdsSearchads360V23Common__ChainFilter `json:"chains,omitempty"`
	// RelationshipType: Required. Immutable. Relationship type the specified
	// chains have with this advertiser.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AUTO_DEALERS" - Auto dealer relationship.
	//   "GENERAL_RETAILERS" - General retailer relationship.
	RelationshipType string `json:"relationshipType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Chains") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Chains") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ChainSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ChainSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ClickLocation: Location criteria associated
// with a click.
type GoogleAdsSearchads360V23Common__ClickLocation struct {
	// City: The city location criterion associated with the impression.
	City string `json:"city,omitempty"`
	// Country: The country location criterion associated with the impression.
	Country string `json:"country,omitempty"`
	// Metro: The metro location criterion associated with the impression.
	Metro string `json:"metro,omitempty"`
	// MostSpecific: The most specific location criterion associated with the
	// impression.
	MostSpecific string `json:"mostSpecific,omitempty"`
	// Region: The region location criterion associated with the impression.
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "City") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "City") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ClickLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ClickLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CombinedAudienceInfo: A combined audience
// criterion.
type GoogleAdsSearchads360V23Common__CombinedAudienceInfo struct {
	// CombinedAudience: The CombinedAudience resource name.
	CombinedAudience string `json:"combinedAudience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CombinedAudience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CombinedAudience") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CombinedAudienceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CombinedAudienceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Commission: Commission is an automatic
// bidding strategy in which the advertiser pays a certain portion of the
// conversion value.
type GoogleAdsSearchads360V23Common__Commission struct {
	// CommissionRateMicros: Commission rate defines the portion of the conversion
	// value that the advertiser will be billed. A commission rate of x should be
	// passed into this field as (x * 1,000,000). For example, 106,000 represents a
	// commission rate of 0.106 (10.6%).
	CommissionRateMicros int64 `json:"commissionRateMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CommissionRateMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CommissionRateMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Commission) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Commission
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ConceptGroup: The concept group for the
// keyword concept.
type GoogleAdsSearchads360V23Common__ConceptGroup struct {
	// Name: The concept group name.
	Name string `json:"name,omitempty"`
	// Type: The concept group type.
	//
	// Possible values:
	//   "UNSPECIFIED" - The concept group classification different from
	// brand/non-brand. This is a catch all bucket for all classifications that are
	// none of the below.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "BRAND" - The concept group classification is based on BRAND.
	//   "OTHER_BRANDS" - The concept group classification based on BRAND, that
	// didn't fit well with the BRAND classifications. These are generally outliers
	// and can have very few keywords in this type of classification.
	//   "NON_BRAND" - These concept group classification is not based on BRAND.
	// This is returned for generic keywords that don't have a brand association.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ConceptGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ConceptGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Consent: Consent
type GoogleAdsSearchads360V23Common__Consent struct {
	// AdPersonalization: This represents consent for ad personalization. This can
	// only be set for OfflineUserDataJobService and UserDataService.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Output-only. Represents a format not yet defined in this enum.
	//   "GRANTED" - Granted.
	//   "DENIED" - Denied.
	AdPersonalization string `json:"adPersonalization,omitempty"`
	// AdUserData: This represents consent for ad user data.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Output-only. Represents a format not yet defined in this enum.
	//   "GRANTED" - Granted.
	//   "DENIED" - Denied.
	AdUserData string `json:"adUserData,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdPersonalization") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdPersonalization") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Consent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Consent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ContentLabelInfo: Content Label for category
// exclusion.
type GoogleAdsSearchads360V23Common__ContentLabelInfo struct {
	// Type: Content label type, required for CREATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEXUALLY_SUGGESTIVE" - Sexually suggestive content.
	//   "BELOW_THE_FOLD" - Below the fold placement.
	//   "PARKED_DOMAIN" - Parked domain.
	//   "JUVENILE" - Juvenile, gross & bizarre content.
	//   "PROFANITY" - Profanity & rough language.
	//   "TRAGEDY" - Death & tragedy.
	//   "VIDEO" - Video.
	//   "VIDEO_RATING_DV_G" - Content rating: G.
	//   "VIDEO_RATING_DV_PG" - Content rating: PG.
	//   "VIDEO_RATING_DV_T" - Content rating: T.
	//   "VIDEO_RATING_DV_MA" - Content rating: MA.
	//   "VIDEO_NOT_YET_RATED" - Content rating: not yet rated.
	//   "EMBEDDED_VIDEO" - Embedded video.
	//   "LIVE_STREAMING_VIDEO" - Live streaming video.
	//   "SOCIAL_ISSUES" - Sensitive social issues.
	//   "BRAND_SUITABILITY_CONTENT_FOR_FAMILIES" - Content that's suitable for
	// families to view together, including Made for Kids videos on YouTube.
	//   "BRAND_SUITABILITY_GAMES_FIGHTING" - Video games that simulate
	// hand-to-hand fighting or combat with the use of modern or medieval weapons.
	//   "BRAND_SUITABILITY_GAMES_MATURE" - Video games that feature mature
	// content, such as violence, inappropriate language, or sexual suggestiveness.
	//   "BRAND_SUITABILITY_HEALTH_SENSITIVE" - Health content that people might
	// find sensitive or upsetting, such as medical procedures or images and
	// descriptions of various medical conditions.
	//   "BRAND_SUITABILITY_HEALTH_SOURCE_UNDETERMINED" - Health content from
	// sources that may provide accurate information but aren't as commonly cited
	// as other, more well-known sources.
	//   "BRAND_SUITABILITY_NEWS_RECENT" - News content that's been recently
	// announced, regardless of the themes or people being reported on.
	//   "BRAND_SUITABILITY_NEWS_SENSITIVE" - News content that people might find
	// sensitive or upsetting, such as crimes, accidents, and natural incidents, or
	// commentary on potentially controversial social and political issues.
	//   "BRAND_SUITABILITY_NEWS_SOURCE_NOT_FEATURED" - News content from sources
	// that aren't featured on Google News or YouTube News.
	//   "BRAND_SUITABILITY_POLITICS" - Political content, such as political
	// statements made by well-known politicians, political elections, or events
	// widely perceived to be political in nature.
	//   "BRAND_SUITABILITY_RELIGION" - Content with religious themes, such as
	// religious teachings or customs, holy sites or places of worship, well-known
	// religious figures or people dressed in religious attire, or religious
	// opinions on social and political issues.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ContentLabelInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ContentLabelInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CpcBidSimulationPoint: Projected metrics for
// a specific CPC bid amount.
type GoogleAdsSearchads360V23Common__CpcBidSimulationPoint struct {
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// CpcBidMicros: The simulated CPC bid upon which projected metrics are based.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// CpcBidScalingModifier: The simulated scaling modifier upon which projected
	// metrics are based. All CPC bids relevant to the simulated entity are scaled
	// by this modifier.
	CpcBidScalingModifier float64 `json:"cpcBidScalingModifier,omitempty"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// RequiredBudgetAmountMicros: Projected required daily budget that the
	// advertiser must set in order to receive the estimated traffic, in micros of
	// advertiser currency.
	RequiredBudgetAmountMicros int64 `json:"requiredBudgetAmountMicros,omitempty,string"`
	// TopSlotImpressions: Projected number of top slot impressions. Only search
	// advertising channel type supports this field.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BiddableConversions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddableConversions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CpcBidSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CpcBidSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__CpcBidSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__CpcBidSimulationPoint
	var s1 struct {
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		CpcBidScalingModifier    gensupport.JSONFloat64 `json:"cpcBidScalingModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	s.CpcBidScalingModifier = float64(s1.CpcBidScalingModifier)
	return nil
}

// GoogleAdsSearchads360V23Common__CpcBidSimulationPointList: A container for
// simulation points for simulations of type CPC_BID.
type GoogleAdsSearchads360V23Common__CpcBidSimulationPointList struct {
	// Points: Projected metrics for a series of CPC bid amounts.
	Points []*GoogleAdsSearchads360V23Common__CpcBidSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CpcBidSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CpcBidSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CpvBidSimulationPoint: Projected metrics for
// a specific CPV bid amount.
type GoogleAdsSearchads360V23Common__CpvBidSimulationPoint struct {
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// CpvBidMicros: The simulated CPV bid upon which projected metrics are based.
	CpvBidMicros int64 `json:"cpvBidMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// Views: Projected number of views.
	Views int64 `json:"views,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CostMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CostMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CpvBidSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CpvBidSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CpvBidSimulationPointList: A container for
// simulation points for simulations of type CPV_BID.
type GoogleAdsSearchads360V23Common__CpvBidSimulationPointList struct {
	// Points: Projected metrics for a series of CPV bid amounts.
	Points []*GoogleAdsSearchads360V23Common__CpvBidSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CpvBidSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CpvBidSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CriterionCategoryAvailability: Information
// of category availability, per advertising channel.
type GoogleAdsSearchads360V23Common__CriterionCategoryAvailability struct {
	// Channel: Channel types and subtypes that are available to the category.
	Channel *GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability `json:"channel,omitempty"`
	// Locale: Locales that are available to the category for the channel.
	Locale []*GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability `json:"locale,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Channel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CriterionCategoryAvailability) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CriterionCategoryAvailability
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability:
// Information of advertising channel type and subtypes a category is available
// in.
type GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability struct {
	// AdvertisingChannelSubType: Channel subtypes under the channel type the
	// category is available to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "SEARCH_MOBILE_APP" - Mobile app campaigns for Search.
	//   "DISPLAY_MOBILE_APP" - Mobile app campaigns for Display.
	//   "SEARCH_EXPRESS" - AdWords express campaigns for search.
	//   "DISPLAY_EXPRESS" - AdWords Express campaigns for display.
	//   "SHOPPING_SMART_ADS" - Smart Shopping campaigns.
	//   "DISPLAY_GMAIL_AD" - Gmail Ad campaigns.
	//   "DISPLAY_SMART_CAMPAIGN" - Smart display campaigns. New campaigns of this
	// sub type cannot be created.
	//   "VIDEO_ACTION" - Video TrueView for Action campaigns.
	//   "VIDEO_NON_SKIPPABLE" - Video campaigns with non-skippable video ads.
	//   "APP_CAMPAIGN" - App Campaign that lets you easily promote your Android or
	// iOS app across Google's top properties including Search, Play, YouTube, and
	// the Google Display Network.
	//   "APP_CAMPAIGN_FOR_ENGAGEMENT" - App Campaign for engagement, focused on
	// driving re-engagement with the app across several of Google's top properties
	// including Search, YouTube, and the Google Display Network.
	//   "LOCAL_CAMPAIGN" - Campaigns specialized for local advertising.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - Shopping Comparison Listing campaigns.
	//   "SMART_CAMPAIGN" - Standard Smart campaigns.
	//   "VIDEO_SEQUENCE" - Video campaigns with sequence video ads.
	//   "APP_CAMPAIGN_FOR_PRE_REGISTRATION" - App Campaign for pre registration,
	// specialized for advertising mobile app pre-registration, that targets
	// multiple advertising channels across Google Play, YouTube and Display
	// Network.
	//   "VIDEO_REACH_TARGET_FREQUENCY" - Video reach campaign with Target
	// Frequency bidding strategy.
	//   "TRAVEL_ACTIVITIES" - Travel Activities campaigns.
	//   "SOCIAL_FACEBOOK_TRACKING_ONLY" - Facebook tracking only social campaigns.
	AdvertisingChannelSubType []string `json:"advertisingChannelSubType,omitempty"`
	// AdvertisingChannelType: Channel type the category is available to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "DEMAND_GEN" - Demand Gen campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelType string `json:"advertisingChannelType,omitempty"`
	// AvailabilityMode: Format of the channel availability. Can be ALL_CHANNELS
	// (the rest of the fields will not be set), CHANNEL_TYPE (only
	// advertising_channel_type type will be set, the category is available to all
	// sub types under it) or CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type,
	// advertising_channel_sub_type, and include_default_channel_sub_type will all
	// be set).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ALL_CHANNELS" - The category is available to campaigns of all channel
	// types and subtypes.
	//   "CHANNEL_TYPE_AND_ALL_SUBTYPES" - The category is available to campaigns
	// of a specific channel type, including all subtypes under it.
	//   "CHANNEL_TYPE_AND_SUBSET_SUBTYPES" - The category is available to
	// campaigns of a specific channel type and subtype(s).
	AvailabilityMode string `json:"availabilityMode,omitempty"`
	// IncludeDefaultChannelSubType: Whether default channel sub type is included.
	// For example, advertising_channel_type being DISPLAY and
	// include_default_channel_sub_type being false means that the default display
	// campaign where channel sub type is not set is not included in this
	// availability configuration.
	IncludeDefaultChannelSubType bool `json:"includeDefaultChannelSubType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingChannelSubType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingChannelSubType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CriterionCategoryChannelAvailability
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability:
// Information about which locales a category is available in.
type GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability struct {
	// AvailabilityMode: Format of the locale availability. Can be LAUNCHED_TO_ALL
	// (both country and language will be empty), COUNTRY (only country will be
	// set), LANGUAGE (only language wil be set), COUNTRY_AND_LANGUAGE (both
	// country and language will be set).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ALL_LOCALES" - The category is available to campaigns of all locales.
	//   "COUNTRY_AND_ALL_LANGUAGES" - The category is available to campaigns
	// within a list of countries, regardless of language.
	//   "LANGUAGE_AND_ALL_COUNTRIES" - The category is available to campaigns
	// within a list of languages, regardless of country.
	//   "COUNTRY_AND_LANGUAGE" - The category is available to campaigns within a
	// list of country, language pairs.
	AvailabilityMode string `json:"availabilityMode,omitempty"`
	// CountryCode: The ISO-3166-1 alpha-2 country code associated with the
	// category.
	CountryCode string `json:"countryCode,omitempty"`
	// LanguageCode: ISO 639-1 code of the language associated with the category.
	LanguageCode string `json:"languageCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AvailabilityMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailabilityMode") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CriterionCategoryLocaleAvailability
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CrmBasedUserListInfo: UserList of CRM users
// provided by the advertiser.
type GoogleAdsSearchads360V23Common__CrmBasedUserListInfo struct {
	// AppId: A string that uniquely identifies a mobile application from which the
	// data was collected. For iOS, the ID string is the 9 digit string that
	// appears at the end of an App Store URL (for example, "476943146" for
	// "Flood-It! 2" whose App Store link is
	// http://itunes.apple.com/us/app/flood-it!-2/id476943146). For Android, the ID
	// string is the application's package name (for example,
	// "com.labpixies.colordrips" for "Color Drips" given Google Play link
	// https://play.google.com/store/apps/details?id=com.labpixies.colordrips).
	// Required when creating CrmBasedUserList for uploading mobile advertising
	// IDs.
	AppId string `json:"appId,omitempty"`
	// DataSourceType: Data source of the list. Default value is FIRST_PARTY. Only
	// customers on the allow-list can create third-party sourced CRM lists.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "FIRST_PARTY" - The uploaded data is first-party data.
	//   "THIRD_PARTY_CREDIT_BUREAU" - The uploaded data is from a third-party
	// credit bureau.
	//   "THIRD_PARTY_VOTER_FILE" - The uploaded data is from a third-party voter
	// file.
	//   "THIRD_PARTY_PARTNER_DATA" - The uploaded data is third party partner
	// data.
	DataSourceType string `json:"dataSourceType,omitempty"`
	// UploadKeyType: Matching key type of the list. Mixed data types are not
	// allowed on the same list. This field is required for an ADD operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CONTACT_INFO" - Members are matched from customer info such as email
	// address, phone number or physical address.
	//   "CRM_ID" - Members are matched from a user id generated and assigned by
	// the advertiser.
	//   "MOBILE_ADVERTISING_ID" - Members are matched from mobile advertising ids.
	UploadKeyType string `json:"uploadKeyType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CrmBasedUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CrmBasedUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomAffinityInfo: A custom affinity
// criterion. A criterion of this type is only targetable.
type GoogleAdsSearchads360V23Common__CustomAffinityInfo struct {
	// CustomAffinity: The CustomInterest resource name.
	CustomAffinity string `json:"customAffinity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomAffinity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomAffinity") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomAffinityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomAffinityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomAudienceInfo: A custom audience
// criterion.
type GoogleAdsSearchads360V23Common__CustomAudienceInfo struct {
	// CustomAudience: The CustomAudience resource name.
	CustomAudience string `json:"customAudience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomAudience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomAudience") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomAudienceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomAudienceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomAudienceSegment: Custom audience
// segment.
type GoogleAdsSearchads360V23Common__CustomAudienceSegment struct {
	// CustomAudience: The custom audience resource.
	CustomAudience string `json:"customAudience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomAudience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomAudience") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomAudienceSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomAudienceSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomIntentInfo: A custom intent criterion.
// A criterion of this type is only targetable.
type GoogleAdsSearchads360V23Common__CustomIntentInfo struct {
	// CustomIntent: The CustomInterest resource name.
	CustomIntent string `json:"customIntent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomIntent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomIntent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomIntentInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomIntentInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomParameter: A mapping that can be used
// by custom parameter tags in a `tracking_url_template`, `final_urls`, or
// `mobile_final_urls`.
type GoogleAdsSearchads360V23Common__CustomParameter struct {
	// Key: The key matching the parameter tag name.
	Key string `json:"key,omitempty"`
	// Value: The value to be substituted.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomParameter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomParameter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings:
// Lifecycle goal optimization value settings.
type GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings struct {
	// AdditionalHighLifetimeValue: High lifetime value of the lifecycle goal. For
	// example, for customer acquisition goals, high lifetime value is the
	// incremental conversion value for lapsed customers who are of high value.
	// High lifetime value should be greater than value, if set.
	AdditionalHighLifetimeValue float64 `json:"additionalHighLifetimeValue,omitempty"`
	// AdditionalValue: Value of the lifecycle goal. For example, for retention
	// goals, value is the incremental conversion value for lapsed customers who
	// are not of high value.
	AdditionalValue float64 `json:"additionalValue,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdditionalHighLifetimeValue") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalHighLifetimeValue") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerLifecycleOptimizationValueSettings
	var s1 struct {
		AdditionalHighLifetimeValue gensupport.JSONFloat64 `json:"additionalHighLifetimeValue"`
		AdditionalValue             gensupport.JSONFloat64 `json:"additionalValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AdditionalHighLifetimeValue = float64(s1.AdditionalHighLifetimeValue)
	s.AdditionalValue = float64(s1.AdditionalValue)
	return nil
}

// GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata: Metadata for
// customer match user list.
type GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata struct {
	// Consent: The consent setting for all the users in this job.
	Consent *GoogleAdsSearchads360V23Common__Consent `json:"consent,omitempty"`
	// UserList: The resource name of remarketing list to update data. Required for
	// job of CUSTOMER_MATCH_USER_LIST type.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Consent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Consent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner
// : Container for third party Brand Lift integration data for Customer.
type GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner struct {
	// AllowShareCost: If true, cost data can be shared with this vendor.
	AllowShareCost bool `json:"allowShareCost,omitempty"`
	// BrandLiftIntegrationPartner: Allowed Third Party integration partners for
	// Brand Lift verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KANTAR_MILLWARD_BROWN" - Kantar
	//   "DYNATA" - Dynata
	//   "INTAGE" - Intage
	//   "MACROMILL" - Macromill
	BrandLiftIntegrationPartner string `json:"brandLiftIntegrationPartner,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowShareCost") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowShareCost") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartn
// er: Container for third party brand safety integration data for Customer.
type GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner struct {
	// BrandSafetyIntegrationPartner: Allowed third party integration partners for
	// brand safety verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DOUBLE_VERIFY" - DoubleVerify.
	//   "INTEGRAL_AD_SCIENCE" - Integral Ad Science.
	//   "ZEFR" - Zefr.
	BrandSafetyIntegrationPartner string `json:"brandSafetyIntegrationPartner,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BrandSafetyIntegrationPartner") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandSafetyIntegrationPartner")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners:
// Container for Customer level third party integration partners.
type GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners struct {
	// BrandLiftIntegrationPartners: Allowed third party integration partners for
	// Brand Lift verification.
	BrandLiftIntegrationPartners []*GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandLiftIntegrationPartner `json:"brandLiftIntegrationPartners,omitempty"`
	// BrandSafetyIntegrationPartners: Allowed third party integration partners for
	// brand safety verification.
	BrandSafetyIntegrationPartners []*GoogleAdsSearchads360V23Common__CustomerThirdPartyBrandSafetyIntegrationPartner `json:"brandSafetyIntegrationPartners,omitempty"`
	// ReachIntegrationPartners: Allowed third party integration partners for reach
	// verification.
	ReachIntegrationPartners []*GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner `json:"reachIntegrationPartners,omitempty"`
	// ViewabilityIntegrationPartners: Allowed third party integration partners for
	// YouTube viewability verification.
	ViewabilityIntegrationPartners []*GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner `json:"viewabilityIntegrationPartners,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BrandLiftIntegrationPartners") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandLiftIntegrationPartners") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner:
// Container for third party reach integration data for Customer.
type GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner struct {
	// AllowShareCost: If true, cost data can be shared with this vendor.
	AllowShareCost bool `json:"allowShareCost,omitempty"`
	// ReachIntegrationPartner: Allowed Third Party integration partners for reach
	// verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NIELSEN" - Nielsen.
	//   "COMSCORE" - Comscore.
	//   "KANTAR_MILLWARD_BROWN" - Kantar.
	//   "VIDEO_RESEARCH" - Video Research.
	//   "GEMIUS" - Gemius.
	//   "MEDIA_SCOPE" - MediaScope.
	//   "AUDIENCE_PROJECT" - AudienceProject
	//   "VIDEO_AMP" - VideoAmp
	//   "ISPOT_TV" - iSpot.tv
	ReachIntegrationPartner string `json:"reachIntegrationPartner,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowShareCost") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowShareCost") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerThirdPartyReachIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartn
// er: Container for third party viewability integration data for Customer.
type GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner struct {
	// AllowShareCost: If true, cost data can be shared with this vendor.
	AllowShareCost bool `json:"allowShareCost,omitempty"`
	// ViewabilityIntegrationPartner: Allowed third party integration partners for
	// YouTube viewability verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DOUBLE_VERIFY" - DoubleVerify.
	//   "INTEGRAL_AD_SCIENCE" - Integral Ad Science.
	ViewabilityIntegrationPartner string `json:"viewabilityIntegrationPartner,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowShareCost") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowShareCost") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomerThirdPartyViewabilityIntegrationPartner
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__CustomizerValue: A customizer value that is
// referenced in customizer linkage entities like CustomerCustomizer,
// CampaignCustomizer, etc.
type GoogleAdsSearchads360V23Common__CustomizerValue struct {
	// StringValue: Required. Value to insert in creative text. Customizer values
	// of all types are stored as string to make formatting unambiguous.
	StringValue string `json:"stringValue,omitempty"`
	// Type: Required. The data type for the customizer value. It must match the
	// attribute type. The string_value content must match the constraints
	// associated with the type.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "TEXT" - Text customizer.
	//   "NUMBER" - Number customizer.
	//   "PRICE" - Price customizer consisting of a number and a currency.
	//   "PERCENT" - Percentage customizer consisting of a number and a '%'.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StringValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StringValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__CustomizerValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__CustomizerValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DateRange: A date range.
type GoogleAdsSearchads360V23Common__DateRange struct {
	// EndDate: The end date, in yyyy-mm-dd format. This date is inclusive.
	EndDate string `json:"endDate,omitempty"`
	// StartDate: The start date, in yyyy-mm-dd format. This date is inclusive.
	StartDate string `json:"startDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndDate") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndDate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DateRange) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DateRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo: A Demand Gen
// carousel ad.
type GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo struct {
	// BusinessName: Required. The Advertiser/brand name.
	BusinessName string `json:"businessName,omitempty"`
	// CallToActionText: Call to action text.
	CallToActionText string `json:"callToActionText,omitempty"`
	// CarouselCards: Required. Carousel cards that will display with the ad. Min 2
	// max 10.
	CarouselCards []*GoogleAdsSearchads360V23Common__AdDemandGenCarouselCardAsset `json:"carouselCards,omitempty"`
	// Description: Required. The descriptive text of the ad.
	Description *GoogleAdsSearchads360V23Common__AdTextAsset `json:"description,omitempty"`
	// Headline: Required. Headline of the ad.
	Headline *GoogleAdsSearchads360V23Common__AdTextAsset `json:"headline,omitempty"`
	// LogoImage: Required. Logo image to be used in the ad. The minimum size is
	// 128x128 and the aspect ratio must be 1:1 (+-1%).
	LogoImage *GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset: A Demand Gen
// Carousel Card asset.
type GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset struct {
	// CallToActionText: Call to action text.
	CallToActionText string `json:"callToActionText,omitempty"`
	// Headline: Required. Headline of the carousel card.
	Headline string `json:"headline,omitempty"`
	// MarketingImageAsset: Asset resource name of the associated 1.91:1 marketing
	// image. This and/or square marketing image asset is required.
	MarketingImageAsset string `json:"marketingImageAsset,omitempty"`
	// PortraitMarketingImageAsset: Asset resource name of the associated 4:5
	// portrait marketing image.
	PortraitMarketingImageAsset string `json:"portraitMarketingImageAsset,omitempty"`
	// SquareMarketingImageAsset: Asset resource name of the associated square
	// marketing image. This and/or a marketing image asset is required.
	SquareMarketingImageAsset string `json:"squareMarketingImageAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToActionText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToActionText") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo: A Demand Gen
// multi asset ad.
type GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo struct {
	// BusinessName: The Advertiser/brand name. Maximum display width is 25.
	// Required.
	BusinessName string `json:"businessName,omitempty"`
	// CallToActionText: Call to action text.
	CallToActionText string `json:"callToActionText,omitempty"`
	// Descriptions: The descriptive text of the ad. Maximum display width is 90.
	// At least 1 and max 5 descriptions can be specified.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: Headline text asset of the ad. Maximum display width is 30. At
	// least 1 and max 5 headlines can be specified.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// LogoImages: Logo image assets to be used in the ad. Valid image types are
	// GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be
	// 1:1 (+-1%). At least 1 and max 5 logo images can be specified.
	LogoImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImages,omitempty"`
	// MarketingImages: Marketing image assets to be used in the ad. Valid image
	// types are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect
	// ratio must be 1.91:1 (+-1%). Required if square_marketing_images is not
	// present.
	MarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"marketingImages,omitempty"`
	// PortraitMarketingImages: Portrait marketing image assets to be used in the
	// ad. Valid image types are GIF, JPEG, and PNG. The minimum size is 480x600
	// and the aspect ratio must be 4:5 (+-1%).
	PortraitMarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"portraitMarketingImages,omitempty"`
	// SquareMarketingImages: Square marketing image assets to be used in the ad.
	// Valid image types are GIF, JPEG, and PNG. The minimum size is 300x300 and
	// the aspect ratio must be 1:1 (+-1%). Required if marketing_images is not
	// present.
	SquareMarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"squareMarketingImages,omitempty"`
	// TallPortraitMarketingImages: Tall portrait marketing image assets to be used
	// in the ad. Valid image types are GIF, JPEG, and PNG. The minimum size is
	// 600x1067 and the aspect ratio must be 9:16 (+-1%). Combined with
	// `marketing_images`, `square_marketing_images`, and
	// `portrait_marketing_images`, the maximum is 20.
	TallPortraitMarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"tallPortraitMarketingImages,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DemandGenProductAdInfo: A Demand Gen product
// ad.
type GoogleAdsSearchads360V23Common__DemandGenProductAdInfo struct {
	// Breadcrumb1: First part of text that appears in the ad with the displayed
	// URL.
	Breadcrumb1 string `json:"breadcrumb1,omitempty"`
	// Breadcrumb2: Second part of text that appears in the ad with the displayed
	// URL.
	Breadcrumb2 string `json:"breadcrumb2,omitempty"`
	// BusinessName: Required. The advertiser/brand name.
	BusinessName *GoogleAdsSearchads360V23Common__AdTextAsset `json:"businessName,omitempty"`
	// CallToAction: Asset of type CallToActionAsset used for the "Call To Action"
	// button.
	CallToAction *GoogleAdsSearchads360V23Common__AdCallToActionAsset `json:"callToAction,omitempty"`
	// Description: Required. Text asset used for the description.
	Description *GoogleAdsSearchads360V23Common__AdTextAsset `json:"description,omitempty"`
	// Headline: Required. Text asset used for the short headline.
	Headline *GoogleAdsSearchads360V23Common__AdTextAsset `json:"headline,omitempty"`
	// LogoImage: Required. Logo image to be used in the ad. Valid image types are
	// GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be
	// 1:1 (+-1%).
	LogoImage *GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Breadcrumb1") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Breadcrumb1") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DemandGenProductAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DemandGenProductAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo: A Demand Gen
// video responsive ad.
type GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo struct {
	// Breadcrumb1: First part of text that appears in the ad with the displayed
	// URL.
	Breadcrumb1 string `json:"breadcrumb1,omitempty"`
	// Breadcrumb2: Second part of text that appears in the ad with the displayed
	// URL.
	Breadcrumb2 string `json:"breadcrumb2,omitempty"`
	// BusinessName: Required. The advertiser/brand name.
	BusinessName *GoogleAdsSearchads360V23Common__AdTextAsset `json:"businessName,omitempty"`
	// CallToActions: Assets of type CallToActionAsset used for the "Call To
	// Action" button.
	CallToActions []*GoogleAdsSearchads360V23Common__AdCallToActionAsset `json:"callToActions,omitempty"`
	// CompanionBanners: List of image assets used for the companion banner.
	// Currently, only a single value for the companion banner asset is supported.
	CompanionBanners []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"companionBanners,omitempty"`
	// Descriptions: List of text assets used for the description.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets used for the short headline.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// LogoImages: Logo image to be used in the ad. Valid image types are GIF,
	// JPEG, and PNG. The minimum size is 128x128 and the aspect ratio must be 1:1
	// (+-1%).
	LogoImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImages,omitempty"`
	// LongHeadlines: List of text assets used for the long headline.
	LongHeadlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"longHeadlines,omitempty"`
	// Videos: List of YouTube video assets used for the ad.
	Videos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"videos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Breadcrumb1") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Breadcrumb1") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DetailedDemographicSegment: Detailed
// demographic segment.
type GoogleAdsSearchads360V23Common__DetailedDemographicSegment struct {
	// DetailedDemographic: The detailed demographic resource.
	DetailedDemographic string `json:"detailedDemographic,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DetailedDemographic") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DetailedDemographic") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DetailedDemographicSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DetailedDemographicSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DeviceInfo: A device criterion.
type GoogleAdsSearchads360V23Common__DeviceInfo struct {
	// Type: Type of the device.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DeviceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DeviceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DisplayUploadAdInfo: A generic type of
// display ad. The exact ad format is controlled by the
// `display_upload_product_type` field, which determines what kinds of data
// need to be included with the ad.
type GoogleAdsSearchads360V23Common__DisplayUploadAdInfo struct {
	// DisplayUploadProductType: The product type of this ad. See comments on the
	// enum for details.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "HTML5_UPLOAD_AD" - HTML5 upload ad. This product type requires the
	// upload_media_bundle field in DisplayUploadAdInfo to be set.
	//   "DYNAMIC_HTML5_EDUCATION_AD" - Dynamic HTML5 education ad. This product
	// type requires the upload_media_bundle field in DisplayUploadAdInfo to be
	// set. Can only be used in an education campaign.
	//   "DYNAMIC_HTML5_FLIGHT_AD" - Dynamic HTML5 flight ad. This product type
	// requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can
	// only be used in a flight campaign.
	//   "DYNAMIC_HTML5_HOTEL_RENTAL_AD" - Dynamic HTML5 hotel and rental ad. This
	// product type requires the upload_media_bundle field in DisplayUploadAdInfo
	// to be set. Can only be used in a hotel campaign.
	//   "DYNAMIC_HTML5_JOB_AD" - Dynamic HTML5 job ad. This product type requires
	// the upload_media_bundle field in DisplayUploadAdInfo to be set. Can only be
	// used in a job campaign.
	//   "DYNAMIC_HTML5_LOCAL_AD" - Dynamic HTML5 local ad. This product type
	// requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can
	// only be used in a local campaign.
	//   "DYNAMIC_HTML5_REAL_ESTATE_AD" - Dynamic HTML5 real estate ad. This
	// product type requires the upload_media_bundle field in DisplayUploadAdInfo
	// to be set. Can only be used in a real estate campaign.
	//   "DYNAMIC_HTML5_CUSTOM_AD" - Dynamic HTML5 custom ad. This product type
	// requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can
	// only be used in a custom campaign.
	//   "DYNAMIC_HTML5_TRAVEL_AD" - Dynamic HTML5 travel ad. This product type
	// requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can
	// only be used in a travel campaign.
	//   "DYNAMIC_HTML5_HOTEL_AD" - Dynamic HTML5 hotel ad. This product type
	// requires the upload_media_bundle field in DisplayUploadAdInfo to be set. Can
	// only be used in a hotel campaign.
	DisplayUploadProductType string `json:"displayUploadProductType,omitempty"`
	// MediaBundle: A media bundle asset to be used in the ad. For information
	// about the media bundle for HTML5_UPLOAD_AD, see
	// https://support.google.com/google-ads/answer/1722096 Media bundles that are
	// part of dynamic product types use a special format that needs to be created
	// through the Google Web Designer. See
	// https://support.google.com/webdesigner/answer/7543898 for more information.
	MediaBundle *GoogleAdsSearchads360V23Common__AdMediaBundleAsset `json:"mediaBundle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayUploadProductType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayUploadProductType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DisplayUploadAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DisplayUploadAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter:
// Represents a filter on Business Profile locations in an asset set. If
// multiple filters are provided, they are AND'ed together.
type GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter struct {
	// BusinessNameFilter: Used to filter Business Profile locations by business
	// name.
	BusinessNameFilter *GoogleAdsSearchads360V23Common__BusinessProfileBusinessNameFilter `json:"businessNameFilter,omitempty"`
	// LabelFilters: Used to filter Business Profile locations by label. Only
	// locations that have any of the listed labels will be in the asset set. Label
	// filters are OR'ed together.
	LabelFilters []string `json:"labelFilters,omitempty"`
	// ListingIdFilters: Used to filter Business Profile locations by listing ids.
	ListingIdFilters googleapi.Int64s `json:"listingIdFilters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessNameFilter") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessNameFilter") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicBusinessProfileLocationGroupFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicCustomAsset: A dynamic custom asset.
type GoogleAdsSearchads360V23Common__DynamicCustomAsset struct {
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Sedans, 4 door sedans.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at
	// $20,000.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// FormattedSalePrice: Formatted sale price which can be any characters. If
	// set, this attribute will be used instead of 'sale price', for example, On
	// sale for $15,000.00.
	FormattedSalePrice string `json:"formattedSalePrice,omitempty"`
	// Id: Required. ID which can be any sequence of letters and digits, and must
	// be unique and match the values of remarketing tag, for example, sedan.
	// Required.
	Id string `json:"id,omitempty"`
	// Id2: ID2 which can be any sequence of letters and digits, for example, red.
	// ID sequence (ID + ID2) must be unique.
	Id2 string `json:"id2,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// ItemAddress: Item address which can be specified in one of the following
	// formats. (1) City, state, code, country, for example, Mountain View, CA,
	// USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA
	// 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338,
	// 2.17403
	ItemAddress string `json:"itemAddress,omitempty"`
	// ItemCategory: Item category, for example, Sedans.
	ItemCategory string `json:"itemCategory,omitempty"`
	// ItemDescription: Item description, for example, Best selling mid-size car.
	ItemDescription string `json:"itemDescription,omitempty"`
	// ItemSubtitle: Item subtitle, for example, At your Mountain View dealership.
	ItemSubtitle string `json:"itemSubtitle,omitempty"`
	// ItemTitle: Required. Item title, for example, Mid-size sedan. Required.
	ItemTitle string `json:"itemTitle,omitempty"`
	// Price: Price which can be number followed by the alphabetic currency code,
	// ISO 4217 standard. Use '.' as the decimal mark, for example, 20,000.00 USD.
	Price string `json:"price,omitempty"`
	// SalePrice: Sale price which can be number followed by the alphabetic
	// currency code, ISO 4217 standard. Use '.' as the decimal mark, for example,
	// 15,000.00 USD. Must be less than the 'price' field.
	SalePrice string `json:"salePrice,omitempty"`
	// SimilarIds: Similar IDs.
	SimilarIds []string `json:"similarIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AndroidAppLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndroidAppLink") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicCustomAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicCustomAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicEducationAsset: A Dynamic Education
// asset.
type GoogleAdsSearchads360V23Common__DynamicEducationAsset struct {
	// Address: School address which can be specified in one of the following
	// formats. (1) City, state, code, country, for example, Mountain View, CA,
	// USA. (2) Full address, for example, 123 Boulevard St, Mountain View, CA
	// 94043. (3) Latitude-longitude in the DDD format, for example, 41.40338,
	// 2.17403
	Address string `json:"address,omitempty"`
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Nursing certification,
	// Health, Mountain View.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// ImageUrl: Image url, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// LocationId: Location ID which can be any sequence of letters and digits and
	// must be unique.
	LocationId string `json:"locationId,omitempty"`
	// ProgramDescription: Program description, for example, Nursing Certification.
	ProgramDescription string `json:"programDescription,omitempty"`
	// ProgramId: Required. Program ID which can be any sequence of letters and
	// digits, and must be unique and match the values of remarketing tag.
	// Required.
	ProgramId string `json:"programId,omitempty"`
	// ProgramName: Required. Program name, for example, Nursing. Required.
	ProgramName string `json:"programName,omitempty"`
	// SchoolName: School name, for example, Mountain View School of Nursing.
	SchoolName string `json:"schoolName,omitempty"`
	// SimilarProgramIds: Similar program IDs.
	SimilarProgramIds []string `json:"similarProgramIds,omitempty"`
	// Subject: Subject of study, for example, Health.
	Subject string `json:"subject,omitempty"`
	// ThumbnailImageUrl: Thumbnail image url, for example,
	// http://www.example.com/thumbnail.png. The thumbnail image will not be
	// uploaded as image asset.
	ThumbnailImageUrl string `json:"thumbnailImageUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicEducationAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicEducationAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicFlightsAsset: A dynamic flights
// asset.
type GoogleAdsSearchads360V23Common__DynamicFlightsAsset struct {
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// CustomMapping: A custom field which can be multiple key to values mapping
	// separated by delimiters (",", "|" and ":"), in the forms of ": , , ... , | :
	// , ... , | ... | : , ... ," for example, wifi: most | aircraft: 320, 77W |
	// flights: 42 | legroom: 32".
	CustomMapping string `json:"customMapping,omitempty"`
	// DestinationId: Required. Destination ID which can be any sequence of letters
	// and digits, and must be unique and match the values of remarketing tag.
	// Required.
	DestinationId string `json:"destinationId,omitempty"`
	// DestinationName: Destination name, for example, Paris.
	DestinationName string `json:"destinationName,omitempty"`
	// FlightDescription: Required. Flight description, for example, Book your
	// ticket. Required.
	FlightDescription string `json:"flightDescription,omitempty"`
	// FlightPrice: Flight price which can be number followed by the alphabetic
	// currency code, ISO 4217 standard. Use '.' as the decimal mark, for example,
	// 100.00 USD.
	FlightPrice string `json:"flightPrice,omitempty"`
	// FlightSalePrice: Flight sale price which can be number followed by the
	// alphabetic currency code, ISO 4217 standard. Use '.' as the decimal mark,
	// for example, 80.00 USD. Must be less than the 'flight_price' field.
	FlightSalePrice string `json:"flightSalePrice,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at $100.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// FormattedSalePrice: Formatted sale price which can be any characters. If
	// set, this attribute will be used instead of 'sale price', for example, On
	// sale for $80.00.
	FormattedSalePrice string `json:"formattedSalePrice,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// OriginId: Origin ID which can be any sequence of letters and digits. The ID
	// sequence (destination ID + origin ID) must be unique.
	OriginId string `json:"originId,omitempty"`
	// OriginName: Origin name, for example, London.
	OriginName string `json:"originName,omitempty"`
	// SimilarDestinationIds: Similar destination IDs, for example, PAR,LON.
	SimilarDestinationIds []string `json:"similarDestinationIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AndroidAppLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndroidAppLink") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicFlightsAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicFlightsAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset: A dynamic
// hotels and rentals asset.
type GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset struct {
	// Address: Address which can be specified in one of the following formats. (1)
	// City, state, code, country, for example, Mountain View, CA, USA. (2) Full
	// address, for example, 123 Boulevard St, Mountain View, CA 94043. (3)
	// Latitude-longitude in the DDD format, for example, 41.40338, 2.17403
	Address string `json:"address,omitempty"`
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// Category: Category, for example, Hotel suite.
	Category string `json:"category,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Mountain View
	// "Hotels", South Bay hotels.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// Description: Description, for example, Close to SJC Airport.
	Description string `json:"description,omitempty"`
	// DestinationName: Destination name, for example, Downtown Mountain View.
	DestinationName string `json:"destinationName,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at $100.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// FormattedSalePrice: Formatted sale price which can be any characters. If
	// set, this attribute will be used instead of 'sale price', for example, On
	// sale for $80.00.
	FormattedSalePrice string `json:"formattedSalePrice,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// Price: Price which can be number followed by the alphabetic currency code,
	// ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.
	Price string `json:"price,omitempty"`
	// PropertyId: Required. Property ID which can be any sequence of letters and
	// digits, and must be unique and match the values of remarketing tag.
	// Required.
	PropertyId string `json:"propertyId,omitempty"`
	// PropertyName: Required. Property name, for example, Mountain View Hotel.
	// Required.
	PropertyName string `json:"propertyName,omitempty"`
	// SalePrice: ISO 4217 standard. Use '.' as the decimal mark, for example,
	// 80.00 USD. Must be less than the 'price' field.
	SalePrice string `json:"salePrice,omitempty"`
	// SimilarPropertyIds: Similar property IDs.
	SimilarPropertyIds []string `json:"similarPropertyIds,omitempty"`
	// StarRating: Star rating. Must be a number between 1 to 5, inclusive.
	StarRating int64 `json:"starRating,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicJobsAsset: A dynamic jobs asset.
type GoogleAdsSearchads360V23Common__DynamicJobsAsset struct {
	// Address: Address which can be specified in one of the following formats. (1)
	// City, state, code, country, for example, Mountain View, CA, USA. (2) Full
	// address, for example, 123 Boulevard St, Mountain View, CA 94043. (3)
	// Latitude-longitude in the DDD format, for example, 41.40338, 2.17403.
	Address string `json:"address,omitempty"`
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Software engineering
	// job.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// Description: Description, for example, Apply your technical skills.
	Description string `json:"description,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// JobCategory: Job category, for example, Technical.
	JobCategory string `json:"jobCategory,omitempty"`
	// JobId: Required. Job ID which can be any sequence of letters and digits, and
	// must be unique and match the values of remarketing tag. Required.
	JobId string `json:"jobId,omitempty"`
	// JobSubtitle: Job subtitle, for example, Level II.
	JobSubtitle string `json:"jobSubtitle,omitempty"`
	// JobTitle: Required. Job title, for example, Software engineer. Required.
	JobTitle string `json:"jobTitle,omitempty"`
	// LocationId: Location ID which can be any sequence of letters and digits. The
	// ID sequence (job ID + location ID) must be unique.
	LocationId string `json:"locationId,omitempty"`
	// Salary: Salary, for example, $100,000.
	Salary string `json:"salary,omitempty"`
	// SimilarJobIds: Similar job IDs, for example, 1275.
	SimilarJobIds []string `json:"similarJobIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicJobsAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicJobsAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicLocalAsset: A dynamic local asset.
type GoogleAdsSearchads360V23Common__DynamicLocalAsset struct {
	// Address: Address which can be specified in one of the following formats. (1)
	// City, state, code, country, for example, Mountain View, CA, USA. (2) Full
	// address, for example, 123 Boulevard St, Mountain View, CA 94043. (3)
	// Latitude-longitude in the DDD format, for example, 41.40338, 2.17403.
	Address string `json:"address,omitempty"`
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// Category: Category, for example, Food.
	Category string `json:"category,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Save groceries
	// coupons.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// DealId: Required. Deal ID which can be any sequence of letters and digits,
	// and must be unique and match the values of remarketing tag. Required.
	DealId string `json:"dealId,omitempty"`
	// DealName: Required. Deal name, for example, 50% off at Mountain View
	// Grocers. Required.
	DealName string `json:"dealName,omitempty"`
	// Description: Description, for example, Save on your weekly bill.
	Description string `json:"description,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at $100.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// FormattedSalePrice: Formatted sale price which can be any characters. If
	// set, this attribute will be used instead of 'sale price', for example, On
	// sale for $80.00.
	FormattedSalePrice string `json:"formattedSalePrice,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// Price: Price which can be a number followed by the alphabetic currency code,
	// ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.
	Price string `json:"price,omitempty"`
	// SalePrice: Sale price which can be number followed by the alphabetic
	// currency code, ISO 4217 standard. Use '.' as the decimal mark, for example,
	// 80.00 USD. Must be less than the 'price' field.
	SalePrice string `json:"salePrice,omitempty"`
	// SimilarDealIds: Similar deal IDs, for example, 1275.
	SimilarDealIds []string `json:"similarDealIds,omitempty"`
	// Subtitle: Subtitle, for example, Groceries.
	Subtitle string `json:"subtitle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicLocalAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicLocalAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicRealEstateAsset: A dynamic real
// estate asset.
type GoogleAdsSearchads360V23Common__DynamicRealEstateAsset struct {
	// Address: Address which can be specified in one of the following formats. (1)
	// City, state, code, country, for example, Mountain View, CA, USA. (2) Full
	// address, for example, 123 Boulevard St, Mountain View, CA 94043. (3)
	// Latitude-longitude in the DDD format, for example, 41.40338, 2.17403
	Address string `json:"address,omitempty"`
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// CityName: City name, for example, Mountain View, California.
	CityName string `json:"cityName,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, For sale; Houses for
	// sale.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// Description: Description, for example, 3 beds, 2 baths, 1568 sq. ft.
	Description string `json:"description,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at
	// $200,000.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// ListingId: Required. Listing ID which can be any sequence of letters and
	// digits, and must be unique and match the values of remarketing tag.
	// Required.
	ListingId string `json:"listingId,omitempty"`
	// ListingName: Required. Listing name, for example, Boulevard Bungalow.
	// Required.
	ListingName string `json:"listingName,omitempty"`
	// ListingType: Listing type, for example, For sale.
	ListingType string `json:"listingType,omitempty"`
	// Price: Price which can be number followed by the alphabetic currency code,
	// ISO 4217 standard. Use '.' as the decimal mark, for example, 200,000.00 USD.
	Price string `json:"price,omitempty"`
	// PropertyType: Property type, for example, House.
	PropertyType string `json:"propertyType,omitempty"`
	// SimilarListingIds: Similar listing IDs.
	SimilarListingIds []string `json:"similarListingIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicRealEstateAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicRealEstateAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__DynamicTravelAsset: A dynamic travel asset.
type GoogleAdsSearchads360V23Common__DynamicTravelAsset struct {
	// AndroidAppLink: Android deep link, for example,
	// android-app://com.example.android/http/example.com/gizmos?1234.
	AndroidAppLink string `json:"androidAppLink,omitempty"`
	// Category: Category, for example, Express.
	Category string `json:"category,omitempty"`
	// ContextualKeywords: Contextual keywords, for example, Paris trains.
	ContextualKeywords []string `json:"contextualKeywords,omitempty"`
	// DestinationAddress: Destination address which can be specified in one of the
	// following formats. (1) City, state, code, country, for example, Mountain
	// View, CA, USA. (2) Full address, for example, 123 Boulevard St, Mountain
	// View, CA 94043. (3) Latitude-longitude in the DDD format, for example,
	// 41.40338, 2.17403.
	DestinationAddress string `json:"destinationAddress,omitempty"`
	// DestinationId: Required. Destination ID which can be any sequence of letters
	// and digits, and must be unique and match the values of remarketing tag.
	// Required.
	DestinationId string `json:"destinationId,omitempty"`
	// DestinationName: Destination name, for example, Paris.
	DestinationName string `json:"destinationName,omitempty"`
	// FormattedPrice: Formatted price which can be any characters. If set, this
	// attribute will be used instead of 'price', for example, Starting at $100.00.
	FormattedPrice string `json:"formattedPrice,omitempty"`
	// FormattedSalePrice: Formatted sale price which can be any characters. If
	// set, this attribute will be used instead of 'sale price', for example, On
	// sale for $80.00.
	FormattedSalePrice string `json:"formattedSalePrice,omitempty"`
	// ImageUrl: Image URL, for example, http://www.example.com/image.png. The
	// image will not be uploaded as image asset.
	ImageUrl string `json:"imageUrl,omitempty"`
	// IosAppLink: iOS deep link, for example, exampleApp://content/page.
	IosAppLink string `json:"iosAppLink,omitempty"`
	// IosAppStoreId: iOS app store ID. This is used to check if the user has the
	// app installed on their device before deep linking. If this field is set,
	// then the ios_app_link field must also be present.
	IosAppStoreId int64 `json:"iosAppStoreId,omitempty,string"`
	// OriginId: Origin ID which can be any sequence of letters and digits. The ID
	// sequence (destination ID + origin ID) must be unique.
	OriginId string `json:"originId,omitempty"`
	// OriginName: Origin name, for example, London.
	OriginName string `json:"originName,omitempty"`
	// Price: Price which can be a number followed by the alphabetic currency code,
	// ISO 4217 standard. Use '.' as the decimal mark, for example, 100.00 USD.
	Price string `json:"price,omitempty"`
	// SalePrice: Sale price which can be a number followed by the alphabetic
	// currency code, ISO 4217 standard. Use '.' as the decimal mark, for example,
	// 80.00 USD. Must be less than the 'price' field.
	SalePrice string `json:"salePrice,omitempty"`
	// SimilarDestinationIds: Similar destination IDs, for example, NYC.
	SimilarDestinationIds []string `json:"similarDestinationIds,omitempty"`
	// Title: Required. Title, for example, Book your train ticket. Required.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AndroidAppLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndroidAppLink") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__DynamicTravelAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__DynamicTravelAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__EnhancedCpc: An automated bidding strategy
// that raises bids for clicks that seem more likely to lead to a conversion
// and lowers them for clicks where they seem less likely. This bidding
// strategy is deprecated and cannot be created anymore. Use ManualCpc with
// enhanced_cpc_enabled set to true for equivalent functionality.
type GoogleAdsSearchads360V23Common__EnhancedCpc struct {
}

// GoogleAdsSearchads360V23Common__EventAttribute: Advertiser defined events
// and their attributes. All the values in the nested fields are required.
type GoogleAdsSearchads360V23Common__EventAttribute struct {
	// Event: Required. Advertiser defined event to be used for remarketing. The
	// accepted values are "Viewed", "Cart", "Purchased" and "Recommended".
	Event string `json:"event,omitempty"`
	// EventDateTime: Required. Timestamp at which the event happened. The format
	// is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone
	// offset from UTC. If the offset is absent, the API will use the account's
	// timezone as default.
	EventDateTime string `json:"eventDateTime,omitempty"`
	// ItemAttribute: Required. Item attributes of the event.
	ItemAttribute []*GoogleAdsSearchads360V23Common__EventItemAttribute `json:"itemAttribute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Event") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Event") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__EventAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__EventAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__EventItemAttribute: Event Item attributes of
// the Customer Match.
type GoogleAdsSearchads360V23Common__EventItemAttribute struct {
	// ItemId: Optional. A unique identifier of a product. It can be either the
	// Merchant Center Item ID or GTIN (Global Trade Item Number).
	ItemId string `json:"itemId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ItemId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ItemId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__EventItemAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__EventItemAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ExclusionSegment: An audience segment to be
// excluded from an audience.
type GoogleAdsSearchads360V23Common__ExclusionSegment struct {
	// UserList: User list segment to be excluded.
	UserList *GoogleAdsSearchads360V23Common__UserListSegment `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ExclusionSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ExclusionSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo: An expanded
// dynamic search ad.
type GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo struct {
	// Description: The description of the ad.
	Description string `json:"description,omitempty"`
	// Description2: The second description of the ad.
	Description2 string `json:"description2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ExpandedTextAdInfo: An expanded text ad.
type GoogleAdsSearchads360V23Common__ExpandedTextAdInfo struct {
	// Description: The description of the ad.
	Description string `json:"description,omitempty"`
	// Description2: The second description of the ad.
	Description2 string `json:"description2,omitempty"`
	// HeadlinePart1: The first part of the ad's headline.
	HeadlinePart1 string `json:"headlinePart1,omitempty"`
	// HeadlinePart2: The second part of the ad's headline.
	HeadlinePart2 string `json:"headlinePart2,omitempty"`
	// HeadlinePart3: The third part of the ad's headline.
	HeadlinePart3 string `json:"headlinePart3,omitempty"`
	// Path1: The text that can appear alongside the ad's displayed URL.
	Path1 string `json:"path1,omitempty"`
	// Path2: Additional text that can appear alongside the ad's displayed URL.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ExpandedTextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ExpandedTextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ExtendedDemographicInfo: Represents an
// extended demographic criterion.
type GoogleAdsSearchads360V23Common__ExtendedDemographicInfo struct {
	// ExtendedDemographicId: Taxonomy id of the extended demographic group.
	ExtendedDemographicId int64 `json:"extendedDemographicId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ExtendedDemographicId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExtendedDemographicId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ExtendedDemographicInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ExtendedDemographicInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo:
// Facebook Messenger information to use for messaging.
type GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo struct {
	// PageName: Required. Facebook page name used for starting a chat on Facebook
	// Messenger.
	PageName string `json:"pageName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FacebookMessengerBusinessMessageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FinalAppUrl: A URL for deep linking into an
// app for the given operating system.
type GoogleAdsSearchads360V23Common__FinalAppUrl struct {
	// OsType: The operating system targeted by this URL. Required.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "IOS" - The Apple IOS operating system.
	//   "ANDROID" - The Android operating system.
	OsType string `json:"osType,omitempty"`
	// Url: The app deep link URL. Deep links specify a location in an app that
	// corresponds to the content you'd like to show, and should be of the form
	// {scheme}://{host_path} The scheme identifies which app to open. For your
	// app, you can use a custom scheme that starts with the app's name. The host
	// and path specify the unique location in the app where your content exists.
	// Example: "exampleapp://productid_1234". Required.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OsType") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OsType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FinalAppUrl) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FinalAppUrl
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo: Flexible rule that
// wraps the common rule and a lookback window.
type GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo struct {
	// LookbackWindowDays: Lookback window for this rule in days. From now until X
	// days ago.
	LookbackWindowDays int64 `json:"lookbackWindowDays,omitempty,string"`
	// Rule: List of rule item groups that defines this rule. Rule item groups are
	// grouped together.
	Rule *GoogleAdsSearchads360V23Common__UserListRuleInfo `json:"rule,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LookbackWindowDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LookbackWindowDays") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo: Flexible rule
// representation of visitors with one or multiple actions. The flexible user
// list is defined by two lists of operands – inclusive_operands and
// exclusive_operands; each operand represents a set of users based on actions
// they took in a given timeframe. These lists of operands are combined with
// the AND_NOT operator, so that users represented by the inclusive operands
// are included in the user list, minus the users represented by the exclusive
// operands.
type GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo struct {
	// ExclusiveOperands: Rules representing users that should be excluded from the
	// user list. These are located on the right side of the AND_NOT operator, and
	// joined together by OR.
	ExclusiveOperands []*GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo `json:"exclusiveOperands,omitempty"`
	// InclusiveOperands: Rules representing users that should be included in the
	// user list. These are located on the left side of the AND_NOT operator, and
	// joined together by either AND/OR as specified by the
	// inclusive_rule_operator.
	InclusiveOperands []*GoogleAdsSearchads360V23Common__FlexibleRuleOperandInfo `json:"inclusiveOperands,omitempty"`
	// InclusiveRuleOperator: Operator that defines how the inclusive operands are
	// combined.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AND" - A AND B.
	//   "OR" - A OR B.
	InclusiveRuleOperator string `json:"inclusiveRuleOperator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExclusiveOperands") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExclusiveOperands") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FrequencyCapEntry: A rule specifying the
// maximum number of times an ad (or some set of ads) can be shown to a user
// over a particular time period.
type GoogleAdsSearchads360V23Common__FrequencyCapEntry struct {
	// Cap: Maximum number of events allowed during the time range by this cap.
	Cap int64 `json:"cap,omitempty"`
	// Key: The key of a particular frequency cap. There can be no more than one
	// frequency cap with the same key.
	Key *GoogleAdsSearchads360V23Common__FrequencyCapKey `json:"key,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cap") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cap") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FrequencyCapEntry) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FrequencyCapEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__FrequencyCapKey: A group of fields used as
// keys for a frequency cap. There can be no more than one frequency cap with
// the same key.
type GoogleAdsSearchads360V23Common__FrequencyCapKey struct {
	// EventType: The type of event that the cap applies to (for example,
	// impression).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "IMPRESSION" - The cap applies on ad impressions.
	//   "VIDEO_VIEW" - The cap applies on video ad views.
	EventType string `json:"eventType,omitempty"`
	// Level: The level on which the cap is to be applied (for example, ad group
	// ad, ad group). The cap is applied to all the entities of this level.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_AD" - The cap is applied at the ad group ad level.
	//   "AD_GROUP" - The cap is applied at the ad group level.
	//   "CAMPAIGN" - The cap is applied at the campaign level.
	Level string `json:"level,omitempty"`
	// TimeLength: Number of time units the cap lasts.
	TimeLength int64 `json:"timeLength,omitempty"`
	// TimeUnit: Unit of time the cap is defined at (for example, day, week).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DAY" - The cap would define limit per one day.
	//   "WEEK" - The cap would define limit per one week.
	//   "MONTH" - The cap would define limit per one month.
	TimeUnit string `json:"timeUnit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__FrequencyCapKey) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__FrequencyCapKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__GenderDimension: Dimension specifying users
// by their gender.
type GoogleAdsSearchads360V23Common__GenderDimension struct {
	// Genders: Included gender demographic segments.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MALE" - Male.
	//   "FEMALE" - Female.
	//   "UNDETERMINED" - Undetermined gender.
	Genders []string `json:"genders,omitempty"`
	// IncludeUndetermined: Include users whose gender is not determined.
	IncludeUndetermined bool `json:"includeUndetermined,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Genders") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Genders") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__GenderDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__GenderDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__GenderInfo: A gender criterion.
type GoogleAdsSearchads360V23Common__GenderInfo struct {
	// Type: Type of the gender.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MALE" - Male.
	//   "FEMALE" - Female.
	//   "UNDETERMINED" - Undetermined gender.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__GenderInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__GenderInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__GeoPointInfo: Geo point for proximity
// criterion.
type GoogleAdsSearchads360V23Common__GeoPointInfo struct {
	// LatitudeInMicroDegrees: Micro degrees for the latitude.
	LatitudeInMicroDegrees int64 `json:"latitudeInMicroDegrees,omitempty"`
	// LongitudeInMicroDegrees: Micro degrees for the longitude.
	LongitudeInMicroDegrees int64 `json:"longitudeInMicroDegrees,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LatitudeInMicroDegrees") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LatitudeInMicroDegrees") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__GeoPointInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__GeoPointInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HistoricalMetricsOptions: Historical metrics
// options.
type GoogleAdsSearchads360V23Common__HistoricalMetricsOptions struct {
	// IncludeAverageCpc: Indicates whether to include average cost per click
	// value. Average CPC is provided only for legacy support.
	IncludeAverageCpc bool `json:"includeAverageCpc,omitempty"`
	// YearMonthRange: The year month range for historical metrics. If not
	// specified, metrics for the past 12 months are returned. Search metrics are
	// available for the past 4 years. If the search volume is not available for
	// the entire year_month_range provided, the subset of the year month range for
	// which search volume is available are returned.
	YearMonthRange *GoogleAdsSearchads360V23Common__YearMonthRange `json:"yearMonthRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeAverageCpc") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeAverageCpc") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HistoricalMetricsOptions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HistoricalMetricsOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelAdInfo: A hotel ad.
type GoogleAdsSearchads360V23Common__HotelAdInfo struct {
}

// GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo: Criterion for
// number of days prior to the stay the booking is being made.
type GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo struct {
	// MaxDays: High end of the number of days prior to the stay.
	MaxDays int64 `json:"maxDays,omitempty,string"`
	// MinDays: Low end of the number of days prior to the stay.
	MinDays int64 `json:"minDays,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MaxDays") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxDays") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelCalloutAsset: An asset representing a
// hotel callout.
type GoogleAdsSearchads360V23Common__HotelCalloutAsset struct {
	// LanguageCode: Required. The language of the hotel callout. Represented as
	// BCP 47 language tag.
	LanguageCode string `json:"languageCode,omitempty"`
	// Text: Required. The text of the hotel callout asset. The length of this
	// string should be between 1 and 25, inclusive.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelCalloutAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelCalloutAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo: Criterion for a
// check-in date range.
type GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo struct {
	// EndDate: End date in the YYYY-MM-DD format.
	EndDate string `json:"endDate,omitempty"`
	// StartDate: Start date in the YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndDate") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndDate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelCheckInDayInfo: Criterion for day of
// the week the booking is for.
type GoogleAdsSearchads360V23Common__HotelCheckInDayInfo struct {
	// DayOfWeek: The day of the week.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MONDAY" - Monday.
	//   "TUESDAY" - Tuesday.
	//   "WEDNESDAY" - Wednesday.
	//   "THURSDAY" - Thursday.
	//   "FRIDAY" - Friday.
	//   "SATURDAY" - Saturday.
	//   "SUNDAY" - Sunday.
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DayOfWeek") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DayOfWeek") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelCheckInDayInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelCheckInDayInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelCityInfo: City the hotel is located in.
type GoogleAdsSearchads360V23Common__HotelCityInfo struct {
	// CityCriterion: The Geo Target Constant resource name.
	CityCriterion string `json:"cityCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CityCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CityCriterion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelCityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelCityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelClassInfo: Class of the hotel as a
// number of stars 1 to 5.
type GoogleAdsSearchads360V23Common__HotelClassInfo struct {
	// Value: Long value of the hotel class.
	Value int64 `json:"value,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelClassInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelClassInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelCountryRegionInfo: Country or Region
// the hotel is located in.
type GoogleAdsSearchads360V23Common__HotelCountryRegionInfo struct {
	// CountryRegionCriterion: The Geo Target Constant resource name.
	CountryRegionCriterion string `json:"countryRegionCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryRegionCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryRegionCriterion") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelCountryRegionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelCountryRegionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo: Criterion for
// hotel date selection (default dates versus user selected).
type GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo struct {
	// Type: Type of the hotel date selection
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT_SELECTION" - Dates selected by default.
	//   "USER_SELECTED" - Dates selected by the user.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelIdInfo: Advertiser-specific hotel ID.
type GoogleAdsSearchads360V23Common__HotelIdInfo struct {
	// Value: String value of the hotel ID.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelIdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelIdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo: Criterion for length
// of hotel stay in nights.
type GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo struct {
	// MaxNights: High end of the number of nights in the stay.
	MaxNights int64 `json:"maxNights,omitempty,string"`
	// MinNights: Low end of the number of nights in the stay.
	MinNights int64 `json:"minNights,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MaxNights") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxNights") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelPropertyAsset: A hotel property asset.
type GoogleAdsSearchads360V23Common__HotelPropertyAsset struct {
	// HotelAddress: Address of the hotel. Read-only.
	HotelAddress string `json:"hotelAddress,omitempty"`
	// HotelName: Name of the hotel. Read-only.
	HotelName string `json:"hotelName,omitempty"`
	// PlaceId: Place IDs uniquely identify a place in the Google Places database
	// and on Google Maps. See
	// https://developers.google.com/places/web-service/place-id to learn more.
	PlaceId string `json:"placeId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HotelAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HotelAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelPropertyAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelPropertyAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HotelStateInfo: State the hotel is located
// in.
type GoogleAdsSearchads360V23Common__HotelStateInfo struct {
	// StateCriterion: The Geo Target Constant resource name.
	StateCriterion string `json:"stateCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StateCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StateCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HotelStateInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HotelStateInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__HouseholdIncomeDimension: Dimension
// specifying users by their household income.
type GoogleAdsSearchads360V23Common__HouseholdIncomeDimension struct {
	// IncludeUndetermined: Include users whose household income is not determined.
	IncludeUndetermined bool `json:"includeUndetermined,omitempty"`
	// IncomeRanges: Included household income demographic segments.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INCOME_RANGE_0_50" - 0%-50%.
	//   "INCOME_RANGE_50_60" - 50% to 60%.
	//   "INCOME_RANGE_60_70" - 60% to 70%.
	//   "INCOME_RANGE_70_80" - 70% to 80%.
	//   "INCOME_RANGE_80_90" - 80% to 90%.
	//   "INCOME_RANGE_90_UP" - Greater than 90%.
	//   "INCOME_RANGE_UNDETERMINED" - Undetermined income range.
	IncomeRanges []string `json:"incomeRanges,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeUndetermined") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeUndetermined") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__HouseholdIncomeDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__HouseholdIncomeDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ImageAdInfo: An image ad.
type GoogleAdsSearchads360V23Common__ImageAdInfo struct {
	// AdIdToCopyImageFrom: An ad ID to copy the image from.
	AdIdToCopyImageFrom int64 `json:"adIdToCopyImageFrom,omitempty,string"`
	// Data: Raw image data as bytes.
	Data string `json:"data,omitempty"`
	// ImageAsset: The image assets used for the ad.
	ImageAsset *GoogleAdsSearchads360V23Common__AdImageAsset `json:"imageAsset,omitempty"`
	// ImageUrl: URL of the full size image.
	ImageUrl string `json:"imageUrl,omitempty"`
	// MimeType: The mime type of the image.
	//
	// Possible values:
	//   "UNSPECIFIED" - The mime type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "IMAGE_JPEG" - MIME type of image/jpeg.
	//   "IMAGE_GIF" - MIME type of image/gif.
	//   "IMAGE_PNG" - MIME type of image/png.
	//   "FLASH" - MIME type of application/x-shockwave-flash.
	//   "TEXT_HTML" - MIME type of text/html.
	//   "PDF" - MIME type of application/pdf.
	//   "MSWORD" - MIME type of application/msword.
	//   "MSEXCEL" - MIME type of application/vnd.ms-excel.
	//   "RTF" - MIME type of application/rtf.
	//   "AUDIO_WAV" - MIME type of audio/wav.
	//   "AUDIO_MP3" - MIME type of audio/mp3.
	//   "HTML5_AD_ZIP" - MIME type of application/x-html5-ad-zip.
	MimeType string `json:"mimeType,omitempty"`
	// Name: The name of the image. If the image was created from a MediaFile, this
	// is the MediaFile's name. If the image was created from bytes, this is empty.
	Name string `json:"name,omitempty"`
	// PixelHeight: Height in pixels of the full size image.
	PixelHeight int64 `json:"pixelHeight,omitempty,string"`
	// PixelWidth: Width in pixels of the full size image.
	PixelWidth int64 `json:"pixelWidth,omitempty,string"`
	// PreviewImageUrl: URL of the preview size image.
	PreviewImageUrl string `json:"previewImageUrl,omitempty"`
	// PreviewPixelHeight: Height in pixels of the preview size image.
	PreviewPixelHeight int64 `json:"previewPixelHeight,omitempty,string"`
	// PreviewPixelWidth: Width in pixels of the preview size image.
	PreviewPixelWidth int64 `json:"previewPixelWidth,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdIdToCopyImageFrom") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdIdToCopyImageFrom") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ImageAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ImageAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ImageAsset: An Image asset.
type GoogleAdsSearchads360V23Common__ImageAsset struct {
	// Data: The raw bytes data of an image. This field is mutate only.
	Data string `json:"data,omitempty"`
	// FileSize: File size of the image asset in bytes.
	FileSize int64 `json:"fileSize,omitempty,string"`
	// FullSize: Metadata for this image at its original size.
	FullSize *GoogleAdsSearchads360V23Common__ImageDimension `json:"fullSize,omitempty"`
	// MimeType: MIME type of the image asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - The mime type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "IMAGE_JPEG" - MIME type of image/jpeg.
	//   "IMAGE_GIF" - MIME type of image/gif.
	//   "IMAGE_PNG" - MIME type of image/png.
	//   "FLASH" - MIME type of application/x-shockwave-flash.
	//   "TEXT_HTML" - MIME type of text/html.
	//   "PDF" - MIME type of application/pdf.
	//   "MSWORD" - MIME type of application/msword.
	//   "MSEXCEL" - MIME type of application/vnd.ms-excel.
	//   "RTF" - MIME type of application/rtf.
	//   "AUDIO_WAV" - MIME type of audio/wav.
	//   "AUDIO_MP3" - MIME type of audio/mp3.
	//   "HTML5_AD_ZIP" - MIME type of application/x-html5-ad-zip.
	MimeType string `json:"mimeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ImageAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ImageAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ImageDimension: Metadata for an image at a
// certain size, either original or resized.
type GoogleAdsSearchads360V23Common__ImageDimension struct {
	// HeightPixels: Height of the image.
	HeightPixels int64 `json:"heightPixels,omitempty,string"`
	// Url: A URL that returns the image with this height and width.
	Url string `json:"url,omitempty"`
	// WidthPixels: Width of the image.
	WidthPixels int64 `json:"widthPixels,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "HeightPixels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HeightPixels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ImageDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ImageDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__IncomeRangeInfo: An income range criterion.
type GoogleAdsSearchads360V23Common__IncomeRangeInfo struct {
	// Type: Type of the income range.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INCOME_RANGE_0_50" - 0%-50%.
	//   "INCOME_RANGE_50_60" - 50% to 60%.
	//   "INCOME_RANGE_60_70" - 60% to 70%.
	//   "INCOME_RANGE_70_80" - 70% to 80%.
	//   "INCOME_RANGE_80_90" - 80% to 90%.
	//   "INCOME_RANGE_90_UP" - Greater than 90%.
	//   "INCOME_RANGE_UNDETERMINED" - Undetermined income range.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__IncomeRangeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__IncomeRangeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__InteractionTypeInfo: Criterion for
// Interaction Type.
type GoogleAdsSearchads360V23Common__InteractionTypeInfo struct {
	// Type: The interaction type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CALLS" - Calls.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__InteractionTypeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__InteractionTypeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__IpBlockInfo: An IpBlock criterion used for
// excluding IP addresses. We support excluding individual IP addresses or CIDR
// blocks. Create one IpBlockInfo criterion for each individual IP address or
// CIDR block you want to exclude. You can exclude up to 500 IP addresses per
// campaign. For more details, see Exclude IP addresses
// (//support.google.com/google-ads/answer/2456098). IPv4 examples: *
// Individual address: 192.168.0.1 * Individual address as CIDR block:
// 192.168.0.1/32 * CIDR block: 192.168.0.0/24 IPv6 examples: * Individual
// address: 2001:db8:a0b:12f0::1 * Individual address as CIDR block:
// 2001:db8:a0b:12f0::1/128 * CIDR block: 2001:db8::/48
type GoogleAdsSearchads360V23Common__IpBlockInfo struct {
	// IpAddress: The IP address or the CIDR block to be excluded.
	IpAddress string `json:"ipAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IpAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IpAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__IpBlockInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__IpBlockInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ItemAttribute: Item attributes of the
// transaction.
type GoogleAdsSearchads360V23Common__ItemAttribute struct {
	// CountryCode: Common Locale Data Repository (CLDR) territory code of the
	// country associated with the feed where your items are uploaded. See
	// https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes
	// for more information. This information is useful to differentiate product
	// information in cases where a product (identified by item_id) is associated
	// with multiple countries.
	CountryCode string `json:"countryCode,omitempty"`
	// ItemId: A unique identifier of a product. It must be the exact same Merchant
	// Center Item ID you use in your Google Merchant Center for this product.
	// Required.
	ItemId string `json:"itemId,omitempty"`
	// LanguageCode: ISO 639-1 code of the language associated with the feed where
	// your items are uploaded. This information is useful to differentiate product
	// information in cases where a product (identified by item_id) is associated
	// with multiple languages.
	LanguageCode string `json:"languageCode,omitempty"`
	// MerchantId: ID of the Merchant Center Account. Required.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// Quantity: The number of items sold. Defaults to 1 if not set.
	Quantity int64 `json:"quantity,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ItemAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ItemAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Keyword: A Keyword criterion segment.
type GoogleAdsSearchads360V23Common__Keyword struct {
	// AdGroupCriterion: The AdGroupCriterion resource name.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Info: Keyword info.
	Info *GoogleAdsSearchads360V23Common__KeywordInfo `json:"info,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Keyword) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Keyword
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordAnnotations: The annotations for the
// keyword plan keywords.
type GoogleAdsSearchads360V23Common__KeywordAnnotations struct {
	// Concepts: The list of concepts for the keyword.
	Concepts []*GoogleAdsSearchads360V23Common__KeywordConcept `json:"concepts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Concepts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Concepts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordAnnotations) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordAnnotations
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordConcept: The concept for the keyword.
type GoogleAdsSearchads360V23Common__KeywordConcept struct {
	// ConceptGroup: The concept group of the concept details.
	ConceptGroup *GoogleAdsSearchads360V23Common__ConceptGroup `json:"conceptGroup,omitempty"`
	// Name: The concept name for the keyword in the concept_group.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConceptGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConceptGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordConcept) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordConcept
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordInfo: A keyword criterion.
type GoogleAdsSearchads360V23Common__KeywordInfo struct {
	// MatchType: The match type of the keyword.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	MatchType string `json:"matchType,omitempty"`
	// Text: The text of the keyword (at most 80 characters and 10 words).
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults: The
// aggregated historical metrics for keyword plan keywords.
type GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults struct {
	// DeviceSearches: The aggregate searches for all the keywords segmented by
	// device for the specified time. Supports the following device types: MOBILE,
	// TABLET, DESKTOP. This is only set when
	// KeywordPlanAggregateMetricTypeEnum.DEVICE is set in the
	// KeywordPlanAggregateMetrics field in the request.
	DeviceSearches []*GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches `json:"deviceSearches,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeviceSearches") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeviceSearches") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics: The aggregate
// metrics specification of the request.
type GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics struct {
	// AggregateMetricTypes: The list of aggregate metrics to fetch data.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "DEVICE" - The device breakdown of aggregate search volume.
	AggregateMetricTypes []string `json:"aggregateMetricTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AggregateMetricTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateMetricTypes") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches: The total
// searches for the device type during the specified time period.
type GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches struct {
	// Device: The device type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Device string `json:"device,omitempty"`
	// SearchCount: The total searches for the device.
	SearchCount int64 `json:"searchCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Device") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Device") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordPlanDeviceSearches
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics: Historical
// metrics specific to the targeting options selected. Targeting options
// include geographies, network, and so on. Refer to
// https://support.google.com/google-ads/answer/3022575 for more details.
type GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics struct {
	// AverageCpcMicros: Average Cost Per Click in micros for the keyword.
	AverageCpcMicros int64 `json:"averageCpcMicros,omitempty,string"`
	// AvgMonthlySearches: Approximate number of monthly searches on this query,
	// averaged for the past 12 months.
	AvgMonthlySearches int64 `json:"avgMonthlySearches,omitempty,string"`
	// Competition: The competition level for the query.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "LOW" - Low competition. The Competition Index range for this is [0, 33].
	//   "MEDIUM" - Medium competition. The Competition Index range for this is
	// [34, 66].
	//   "HIGH" - High competition. The Competition Index range for this is [67,
	// 100].
	Competition string `json:"competition,omitempty"`
	// CompetitionIndex: The competition index for the query in the range [0, 100].
	// Shows how competitive ad placement is for a keyword. The level of
	// competition from 0-100 is determined by the number of ad slots filled
	// divided by the total number of ad slots available. If not enough data is
	// available, null is returned.
	CompetitionIndex int64 `json:"competitionIndex,omitempty,string"`
	// HighTopOfPageBidMicros: Top of page bid high range (80th percentile) in
	// micros for the keyword.
	HighTopOfPageBidMicros int64 `json:"highTopOfPageBidMicros,omitempty,string"`
	// LowTopOfPageBidMicros: Top of page bid low range (20th percentile) in micros
	// for the keyword.
	LowTopOfPageBidMicros int64 `json:"lowTopOfPageBidMicros,omitempty,string"`
	// MonthlySearchVolumes: Approximate number of searches on this query for the
	// past twelve months.
	MonthlySearchVolumes []*GoogleAdsSearchads360V23Common__MonthlySearchVolume `json:"monthlySearchVolumes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageCpcMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageCpcMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KeywordThemeInfo: A Smart Campaign keyword
// theme.
type GoogleAdsSearchads360V23Common__KeywordThemeInfo struct {
	// FreeFormKeywordTheme: Free-form text to be matched to a Smart Campaign
	// keyword theme constant on a best-effort basis.
	FreeFormKeywordTheme string `json:"freeFormKeywordTheme,omitempty"`
	// KeywordThemeConstant: The resource name of a Smart Campaign keyword theme
	// constant. `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`
	KeywordThemeConstant string `json:"keywordThemeConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FreeFormKeywordTheme") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FreeFormKeywordTheme") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KeywordThemeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KeywordThemeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata: Metadata
// associated with a Knowledge Graph Entity attribute.
type GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata struct {
	// EntityCapabilities: The capabilities of the entity used in
	// ContentCreatorInsightsService.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CONTENT_TRENDING_INSIGHTS" - An entity that is supported to use as a
	// trending topic in ContentCreatorInsightsService.GenerateTrendingInsights.
	//   "CREATOR_ATTRIBUTE" - An entity that is supported to use as a creator
	// attribute in ContentCreatorInsightsService.GenerateCreatorInsights.
	EntityCapabilities []string `json:"entityCapabilities,omitempty"`
	// RelatedCategories: A list of CATEGORY attributes related to this entity.
	RelatedCategories []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"relatedCategories,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EntityCapabilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EntityCapabilities") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__KnowledgeGraphAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LanguageInfo: A language criterion.
type GoogleAdsSearchads360V23Common__LanguageInfo struct {
	// LanguageConstant: The language constant resource name.
	LanguageConstant string `json:"languageConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LanguageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LanguageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LeadFormAsset: A Lead Form asset.
type GoogleAdsSearchads360V23Common__LeadFormAsset struct {
	// BackgroundImageAsset: Asset resource name of the background image. The image
	// dimensions must be exactly 1200x628.
	BackgroundImageAsset string `json:"backgroundImageAsset,omitempty"`
	// BusinessName: Required. The name of the business being advertised.
	BusinessName string `json:"businessName,omitempty"`
	// CallToActionDescription: Required. Text giving a clear value proposition of
	// what users expect once they expand the form.
	CallToActionDescription string `json:"callToActionDescription,omitempty"`
	// CallToActionType: Required. Pre-defined display text that encourages user to
	// expand the form.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEARN_MORE" - Learn more.
	//   "GET_QUOTE" - Get quote.
	//   "APPLY_NOW" - Apply now.
	//   "SIGN_UP" - Sign Up.
	//   "CONTACT_US" - Contact us.
	//   "SUBSCRIBE" - Subscribe.
	//   "DOWNLOAD" - Download.
	//   "BOOK_NOW" - Book now.
	//   "GET_OFFER" - Get offer.
	//   "REGISTER" - Register.
	//   "GET_INFO" - Get info.
	//   "REQUEST_DEMO" - Request a demo.
	//   "JOIN_NOW" - Join now.
	//   "GET_STARTED" - Get started.
	CallToActionType string `json:"callToActionType,omitempty"`
	// CustomDisclosure: Custom disclosure shown along with Google disclaimer on
	// the lead form. Accessible to allowed customers only.
	CustomDisclosure string `json:"customDisclosure,omitempty"`
	// CustomQuestionFields: Ordered list of custom question fields. This field is
	// subject to a limit of 5 qualifying questions per form.
	CustomQuestionFields []*GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField `json:"customQuestionFields,omitempty"`
	// DeliveryMethods: Configured methods for collected lead data to be delivered
	// to advertiser. Only one method typed as WebhookDelivery can be configured.
	DeliveryMethods []*GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod `json:"deliveryMethods,omitempty"`
	// Description: Required. Detailed description of the expanded form to describe
	// what the form is asking for or facilitating.
	Description string `json:"description,omitempty"`
	// DesiredIntent: Chosen intent for the lead form, for example, more volume or
	// more qualified.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LOW_INTENT" - Deliver more leads at a potentially lower quality.
	//   "HIGH_INTENT" - Deliver leads that are more qualified.
	DesiredIntent string `json:"desiredIntent,omitempty"`
	// Fields: Ordered list of input fields. This field can be updated by
	// reordering questions, but not by adding or removing questions.
	Fields []*GoogleAdsSearchads360V23Common__LeadFormField `json:"fields,omitempty"`
	// Headline: Required. Headline of the expanded form to describe what the form
	// is asking for or facilitating.
	Headline string `json:"headline,omitempty"`
	// PostSubmitCallToActionType: Pre-defined display text that encourages user
	// action after the form is submitted.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VISIT_SITE" - Visit site.
	//   "DOWNLOAD" - Download.
	//   "LEARN_MORE" - Learn more.
	//   "SHOP_NOW" - Shop now.
	PostSubmitCallToActionType string `json:"postSubmitCallToActionType,omitempty"`
	// PostSubmitDescription: Detailed description shown after form submission that
	// describes how the advertiser will follow up with the user.
	PostSubmitDescription string `json:"postSubmitDescription,omitempty"`
	// PostSubmitHeadline: Headline of text shown after form submission that
	// describes how the advertiser will follow up with the user.
	PostSubmitHeadline string `json:"postSubmitHeadline,omitempty"`
	// PrivacyPolicyUrl: Required. Link to a page describing the policy on how the
	// collected data is handled by the advertiser/business.
	PrivacyPolicyUrl string `json:"privacyPolicyUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackgroundImageAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackgroundImageAsset") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LeadFormAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LeadFormAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField: One custom
// question input field instance within a form.
type GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField struct {
	// CustomQuestionText: The exact custom question field text (for example, "What
	// kind of vehicle do you have?").
	CustomQuestionText string `json:"customQuestionText,omitempty"`
	// HasLocationAnswer: Answer configuration for location question. If true,
	// campaign/account level location data (state, city, business name etc) will
	// be rendered on the Lead Form. Starting V13.1, has_location_answer can only
	// be set for "What is your preferred dealership?" question, for advertisers
	// with Location Assets setup at campaign/account level.
	HasLocationAnswer bool `json:"hasLocationAnswer,omitempty"`
	// SingleChoiceAnswers: Answer configuration for a single choice question.
	// Minimum of 2 answers and maximum of 12 allowed.
	SingleChoiceAnswers *GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers `json:"singleChoiceAnswers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomQuestionText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomQuestionText") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LeadFormCustomQuestionField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod: A configuration of
// how leads are delivered to the advertiser.
type GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod struct {
	// Webhook: Webhook method of delivery.
	Webhook *GoogleAdsSearchads360V23Common__WebhookDelivery `json:"webhook,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Webhook") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Webhook") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LeadFormDeliveryMethod
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LeadFormField: One input field instance
// within a form.
type GoogleAdsSearchads360V23Common__LeadFormField struct {
	// HasLocationAnswer: Answer configuration for location question. If true,
	// campaign/account level location data (state, city, business name etc) will
	// be rendered on the Lead Form. Starting V13.1, has_location_answer can only
	// be set for "What is your preferred dealership?" question, for advertisers
	// with Location Assets setup at campaign/account level.
	HasLocationAnswer bool `json:"hasLocationAnswer,omitempty"`
	// InputType: Describes the input type, which may be a predefined type such as
	// "full name" or a pre-vetted question like "What kind of vehicle do you
	// have?".
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "FULL_NAME" - The user will be asked to fill in their given and family
	// name. This field cannot be set at the same time as GIVEN_NAME or
	// FAMILY_NAME.
	//   "EMAIL" - The user will be asked to fill in their email address.
	//   "PHONE_NUMBER" - The user will be asked to fill in their phone number.
	//   "POSTAL_CODE" - The user will be asked to fill in their zip code.
	//   "STREET_ADDRESS" - The user will be asked to fill in their street address.
	//   "CITY" - The user will be asked to fill in their city.
	//   "REGION" - The user will be asked to fill in their region part of the
	// address (for example, state for US, province for Canada).
	//   "COUNTRY" - The user will be asked to fill in their country.
	//   "WORK_EMAIL" - The user will be asked to fill in their work email address.
	//   "COMPANY_NAME" - The user will be asked to fill in their company name.
	//   "WORK_PHONE" - The user will be asked to fill in their work phone.
	//   "JOB_TITLE" - The user will be asked to fill in their job title.
	//   "GOVERNMENT_ISSUED_ID_CPF_BR" - The user will be asked to fill in their
	// CPF for Brazil users.
	//   "GOVERNMENT_ISSUED_ID_DNI_AR" - The user will be asked to fill in their
	// DNI for Argentina users.
	//   "GOVERNMENT_ISSUED_ID_DNI_PE" - The user will be asked to fill in their
	// DNI for Peru users.
	//   "GOVERNMENT_ISSUED_ID_RUT_CL" - The user will be asked to fill in their
	// RUT for Chile users.
	//   "GOVERNMENT_ISSUED_ID_CC_CO" - The user will be asked to fill in their CC
	// for Colombia users.
	//   "GOVERNMENT_ISSUED_ID_CI_EC" - The user will be asked to fill in their CI
	// for Ecuador users.
	//   "GOVERNMENT_ISSUED_ID_RFC_MX" - The user will be asked to fill in their
	// RFC for Mexico users.
	//   "FIRST_NAME" - The user will be asked to fill in their first name. This
	// field can not be set at the same time as FULL_NAME.
	//   "LAST_NAME" - The user will be asked to fill in their last name. This
	// field can not be set at the same time as FULL_NAME.
	//   "VEHICLE_MODEL" - Question: "Which model are you interested in?" Category:
	// "Auto" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_TYPE" - Question: "Which type of vehicle are you interested in?"
	// Category: "Auto" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "PREFERRED_DEALERSHIP" - Question: "What is your preferred dealership?"
	// Category: "Auto" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_PURCHASE_TIMELINE" - Question: "When do you plan on purchasing a
	// vehicle?" Category: "Auto" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "VEHICLE_OWNERSHIP" - Question: "Do you own a vehicle?" Category: "Auto"
	// This field is subject to a limit of 5 qualifying questions per form and
	// cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_PAYMENT_TYPE" - Question: "What vehicle ownership option are you
	// interested in?" Category: "Auto" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "VEHICLE_CONDITION" - Question: "What type of vehicle condition are you
	// interested in?" Category: "Auto" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "COMPANY_SIZE" - Question: "What size is your company?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "ANNUAL_SALES" - Question: "What is your annual sales volume?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "YEARS_IN_BUSINESS" - Question: "How many years have you been in
	// business?" Category: "Business" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "JOB_DEPARTMENT" - Question: "What is your job department?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "JOB_ROLE" - Question: "What is your job role?" Category: "Business" This
	// field is subject to a limit of 5 qualifying questions per form and cannot be
	// used if values are set using custom_question_fields.
	//   "OVER_18_AGE" - Question: "Are you over 18 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_19_AGE" - Question: "Are you over 19 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_20_AGE" - Question: "Are you over 20 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_21_AGE" - Question: "Are you over 21 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_22_AGE" - Question: "Are you over 22 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_23_AGE" - Question: "Are you over 23 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_24_AGE" - Question: "Are you over 24 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_25_AGE" - Question: "Are you over 25 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_26_AGE" - Question: "Are you over 26 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_27_AGE" - Question: "Are you over 27 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_28_AGE" - Question: "Are you over 28 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_29_AGE" - Question: "Are you over 29 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_30_AGE" - Question: "Are you over 30 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_31_AGE" - Question: "Are you over 31 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_32_AGE" - Question: "Are you over 32 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_33_AGE" - Question: "Are you over 33 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_34_AGE" - Question: "Are you over 34 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_35_AGE" - Question: "Are you over 35 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_36_AGE" - Question: "Are you over 36 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_37_AGE" - Question: "Are you over 37 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_38_AGE" - Question: "Are you over 38 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_39_AGE" - Question: "Are you over 39 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_40_AGE" - Question: "Are you over 40 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_41_AGE" - Question: "Are you over 41 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_42_AGE" - Question: "Are you over 42 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_43_AGE" - Question: "Are you over 43 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_44_AGE" - Question: "Are you over 44 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_45_AGE" - Question: "Are you over 45 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_46_AGE" - Question: "Are you over 46 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_47_AGE" - Question: "Are you over 47 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_48_AGE" - Question: "Are you over 48 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_49_AGE" - Question: "Are you over 49 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_50_AGE" - Question: "Are you over 50 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_51_AGE" - Question: "Are you over 51 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_52_AGE" - Question: "Are you over 52 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_53_AGE" - Question: "Are you over 53 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_54_AGE" - Question: "Are you over 54 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_55_AGE" - Question: "Are you over 55 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_56_AGE" - Question: "Are you over 56 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_57_AGE" - Question: "Are you over 57 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_58_AGE" - Question: "Are you over 58 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_59_AGE" - Question: "Are you over 59 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_60_AGE" - Question: "Are you over 60 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_61_AGE" - Question: "Are you over 61 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_62_AGE" - Question: "Are you over 62 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_63_AGE" - Question: "Are you over 63 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_64_AGE" - Question: "Are you over 64 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_65_AGE" - Question: "Are you over 65 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "EDUCATION_PROGRAM" - Question: "Which program are you interested in?"
	// Category: "Education" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "EDUCATION_COURSE" - Question: "Which course are you interested in?"
	// Category: "Education" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PRODUCT" - Question: "Which product are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "SERVICE" - Question: "Which service are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "OFFER" - Question: "Which offer are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "CATEGORY" - Question: "Which category are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "PREFERRED_CONTACT_METHOD" - Question: "What is your preferred method of
	// contact?" Category: "General" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_LOCATION" - Question: "What is your preferred location?"
	// Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_CONTACT_TIME" - Question: "What is the best time to contact
	// you?" Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PURCHASE_TIMELINE" - Question: "When are you looking to make a purchase?"
	// Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "YEARS_OF_EXPERIENCE" - Question: "How many years of work experience do
	// you have?" Category: "Jobs" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "JOB_INDUSTRY" - Question: "What industry do you work in?" Category:
	// "Jobs" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "LEVEL_OF_EDUCATION" - Question: "What is your highest level of
	// education?" Category: "Jobs" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PROPERTY_TYPE" - Question: "What type of property are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "REALTOR_HELP_GOAL" - Question: "What do you need a realtor's help with?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PROPERTY_COMMUNITY" - Question: "What neighborhood are you interested
	// in?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PRICE_RANGE" - Question: "What price range are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "NUMBER_OF_BEDROOMS" - Question: "How many bedrooms are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "FURNISHED_PROPERTY" - Question: "Are you looking for a fully furnished
	// property?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PETS_ALLOWED_PROPERTY" - Question: "Are you looking for properties that
	// allow pets?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "NEXT_PLANNED_PURCHASE" - Question: "What is the next product you plan to
	// purchase?" Category: "Retail" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "EVENT_SIGNUP_INTEREST" - Question: "Would you like to sign up for an
	// event?" Category: "Retail" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_SHOPPING_PLACES" - Question: "Where are you interested in
	// shopping?" Category: "Retail" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "FAVORITE_BRAND" - Question: "What is your favorite brand?" Category:
	// "Retail" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE" - Question: "Which type of valid
	// commercial license do you have?" Category: "Transportation" This field is
	// subject to a limit of 5 qualifying questions per form and cannot be used if
	// values are set using custom_question_fields.
	//   "EVENT_BOOKING_INTEREST" - Question: "Interested in booking an event?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DESTINATION_COUNTRY" - Question: "What is your destination country?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DESTINATION_CITY" - Question: "What is your destination city?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "DEPARTURE_COUNTRY" - Question: "What is your departure country?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DEPARTURE_CITY" - Question: "What is your departure city?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "DEPARTURE_DATE" - Question: "What is your departure date?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "RETURN_DATE" - Question: "What is your return date?" Category: "Travel"
	// This field is subject to a limit of 5 qualifying questions per form and
	// cannot be used if values are set using custom_question_fields.
	//   "NUMBER_OF_TRAVELERS" - Question: "How many people are you traveling
	// with?" Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "TRAVEL_BUDGET" - Question: "What is your travel budget?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "TRAVEL_ACCOMMODATION" - Question: "Where do you want to stay during your
	// travel?" Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	InputType string `json:"inputType,omitempty"`
	// SingleChoiceAnswers: Answer configuration for a single choice question. Can
	// be set only for pre-vetted question fields. Minimum of 2 answers required
	// and maximum of 12 allowed.
	SingleChoiceAnswers *GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers `json:"singleChoiceAnswers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HasLocationAnswer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HasLocationAnswer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LeadFormField) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LeadFormField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers: Defines
// possible answers for a single choice question, usually presented as a
// single-choice drop-down list.
type GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers struct {
	// Answers: List of choices for a single question field. The order of entries
	// defines UI order. Minimum of 2 answers required and maximum of 12 allowed.
	Answers []string `json:"answers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Answers") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Answers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LeadFormSingleChoiceAnswers
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo: A legacy app install
// ad that only can be used by a few select customers.
type GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo struct {
	// AppId: The ID of the mobile app.
	AppId string `json:"appId,omitempty"`
	// AppStore: The app store the mobile app is available in.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Apple iTunes.
	//   "GOOGLE_PLAY" - Google Play.
	//   "WINDOWS_STORE" - Windows Store.
	//   "WINDOWS_PHONE_STORE" - Windows Phone Store.
	//   "CN_APP_STORE" - The app is hosted in a Chinese app store.
	AppStore string `json:"appStore,omitempty"`
	// Description1: The first description line of the ad.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second description line of the ad.
	Description2 string `json:"description2,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo: A legacy
// responsive display ad. Ads of this type are labeled 'Responsive ads' in the
// Google Ads UI.
type GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo struct {
	// AccentColor: The accent color of the ad in hexadecimal, for example, #ffffff
	// for white. If one of `main_color` and `accent_color` is set, the other is
	// required as well.
	AccentColor string `json:"accentColor,omitempty"`
	// AllowFlexibleColor: Advertiser's consent to allow flexible color. When true,
	// the ad may be served with different color if necessary. When false, the ad
	// will be served with the specified colors or a neutral color. The default
	// value is `true`. Must be true if `main_color` and `accent_color` are not
	// set.
	AllowFlexibleColor bool `json:"allowFlexibleColor,omitempty"`
	// BusinessName: The business name in the ad.
	BusinessName string `json:"businessName,omitempty"`
	// CallToActionText: The call-to-action text for the ad.
	CallToActionText string `json:"callToActionText,omitempty"`
	// Description: The description of the ad.
	Description string `json:"description,omitempty"`
	// FormatSetting: Specifies which format the ad will be served in. Default is
	// ALL_FORMATS.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ALL_FORMATS" - Text, image and native formats.
	//   "NON_NATIVE" - Text and image formats.
	//   "NATIVE" - Native format, for example, the format rendering is controlled
	// by the publisher and not by Google.
	FormatSetting string `json:"formatSetting,omitempty"`
	// LogoImage: The MediaFile resource name of the logo image used in the ad.
	LogoImage string `json:"logoImage,omitempty"`
	// LongHeadline: The long version of the ad's headline.
	LongHeadline string `json:"longHeadline,omitempty"`
	// MainColor: The main color of the ad in hexadecimal, for example, #ffffff for
	// white. If one of `main_color` and `accent_color` is set, the other is
	// required as well.
	MainColor string `json:"mainColor,omitempty"`
	// MarketingImage: The MediaFile resource name of the marketing image used in
	// the ad.
	MarketingImage string `json:"marketingImage,omitempty"`
	// PricePrefix: Prefix before price. For example, 'as low as'.
	PricePrefix string `json:"pricePrefix,omitempty"`
	// PromoText: Promotion text used for dynamic formats of responsive ads. For
	// example 'Free two-day shipping'.
	PromoText string `json:"promoText,omitempty"`
	// ShortHeadline: The short version of the ad's headline.
	ShortHeadline string `json:"shortHeadline,omitempty"`
	// SquareLogoImage: The MediaFile resource name of the square logo image used
	// in the ad.
	SquareLogoImage string `json:"squareLogoImage,omitempty"`
	// SquareMarketingImage: The MediaFile resource name of the square marketing
	// image used in the ad.
	SquareMarketingImage string `json:"squareMarketingImage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccentColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccentColor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LifeEventInfo: Represents a life event
// criterion.
type GoogleAdsSearchads360V23Common__LifeEventInfo struct {
	// LifeEventId: Taxonomy id of the life event.
	LifeEventId int64 `json:"lifeEventId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "LifeEventId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LifeEventId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LifeEventInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LifeEventInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LifeEventSegment: Live event segment.
type GoogleAdsSearchads360V23Common__LifeEventSegment struct {
	// LifeEvent: The life event resource.
	LifeEvent string `json:"lifeEvent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LifeEvent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LifeEvent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LifeEventSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LifeEventSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings: Lifecycle goal
// value settings.
type GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings struct {
	// HighLifetimeValue: High lifetime value of the lifecycle goal. For example,
	// for customer acquisition goal, high lifetime value is the incremental
	// conversion value for new customers who are of high value. High lifetime
	// value should be greater than value, if set.
	HighLifetimeValue float64 `json:"highLifetimeValue,omitempty"`
	// Value: Value of the lifecycle goal. For example, for customer acquisition
	// goal, value is the incremental conversion value for new customers who are
	// not of high value.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HighLifetimeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighLifetimeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings
	var s1 struct {
		HighLifetimeValue gensupport.JSONFloat64 `json:"highLifetimeValue"`
		Value             gensupport.JSONFloat64 `json:"value"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.HighLifetimeValue = float64(s1.HighLifetimeValue)
	s.Value = float64(s1.Value)
	return nil
}

// GoogleAdsSearchads360V23Common__LineupAttributeMetadata: Metadata associated
// with a Lineup attribute.
type GoogleAdsSearchads360V23Common__LineupAttributeMetadata struct {
	// ChannelCountLowerBound: The lower end of a range containing the number of
	// channels in the lineup.
	ChannelCountLowerBound int64 `json:"channelCountLowerBound,omitempty,string"`
	// ChannelCountUpperBound: The upper end of a range containing the number of
	// channels in the lineup.
	ChannelCountUpperBound int64 `json:"channelCountUpperBound,omitempty,string"`
	// InventoryCountry: The national market associated with the lineup.
	InventoryCountry *GoogleAdsSearchads360V23Common__LocationInfo `json:"inventoryCountry,omitempty"`
	// MedianMonthlyInventory: The median number of impressions per month on this
	// lineup.
	MedianMonthlyInventory int64 `json:"medianMonthlyInventory,omitempty,string"`
	// SampleChannels: Examples of channels that are included in the lineup.
	SampleChannels []*GoogleAdsSearchads360V23CommonLineupAttributeMetadataSampleChannel `json:"sampleChannels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelCountLowerBound") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelCountLowerBound") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LineupAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LineupAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ListingDimensionInfo: Listing dimensions for
// listing group criterion.
type GoogleAdsSearchads360V23Common__ListingDimensionInfo struct {
	// ActivityCity: The city where the travel activity is available.
	ActivityCity *GoogleAdsSearchads360V23Common__ActivityCityInfo `json:"activityCity,omitempty"`
	// ActivityCountry: The country where the travel activity is available.
	ActivityCountry *GoogleAdsSearchads360V23Common__ActivityCountryInfo `json:"activityCountry,omitempty"`
	// ActivityId: Advertiser-specific activity ID.
	ActivityId *GoogleAdsSearchads360V23Common__ActivityIdInfo `json:"activityId,omitempty"`
	// ActivityRating: Rating of the activity as a number 1 to 5, where 5 is the
	// best.
	ActivityRating *GoogleAdsSearchads360V23Common__ActivityRatingInfo `json:"activityRating,omitempty"`
	// ActivityState: The state where the travel activity is available.
	ActivityState *GoogleAdsSearchads360V23Common__ActivityStateInfo `json:"activityState,omitempty"`
	// HotelCity: City the hotel is located in.
	HotelCity *GoogleAdsSearchads360V23Common__HotelCityInfo `json:"hotelCity,omitempty"`
	// HotelClass: Class of the hotel as a number of stars 1 to 5.
	HotelClass *GoogleAdsSearchads360V23Common__HotelClassInfo `json:"hotelClass,omitempty"`
	// HotelCountryRegion: Country or Region the hotel is located in.
	HotelCountryRegion *GoogleAdsSearchads360V23Common__HotelCountryRegionInfo `json:"hotelCountryRegion,omitempty"`
	// HotelId: Advertiser-specific hotel ID.
	HotelId *GoogleAdsSearchads360V23Common__HotelIdInfo `json:"hotelId,omitempty"`
	// HotelState: State the hotel is located in.
	HotelState *GoogleAdsSearchads360V23Common__HotelStateInfo `json:"hotelState,omitempty"`
	// ProductBrand: Brand of a product offer.
	ProductBrand *GoogleAdsSearchads360V23Common__ProductBrandInfo `json:"productBrand,omitempty"`
	// ProductCategory: Category of a product offer.
	ProductCategory *GoogleAdsSearchads360V23Common__ProductCategoryInfo `json:"productCategory,omitempty"`
	// ProductChannel: Locality of a product offer.
	ProductChannel *GoogleAdsSearchads360V23Common__ProductChannelInfo `json:"productChannel,omitempty"`
	// ProductChannelExclusivity: Availability of a product offer.
	ProductChannelExclusivity *GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo `json:"productChannelExclusivity,omitempty"`
	// ProductCondition: Condition of a product offer.
	ProductCondition *GoogleAdsSearchads360V23Common__ProductConditionInfo `json:"productCondition,omitempty"`
	// ProductCustomAttribute: Custom attribute of a product offer.
	ProductCustomAttribute *GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo `json:"productCustomAttribute,omitempty"`
	// ProductGrouping: Grouping of a product offer. This listing dimension is
	// deprecated and it is supported only in Display campaigns.
	ProductGrouping *GoogleAdsSearchads360V23Common__ProductGroupingInfo `json:"productGrouping,omitempty"`
	// ProductItemId: Item id of a product offer.
	ProductItemId *GoogleAdsSearchads360V23Common__ProductItemIdInfo `json:"productItemId,omitempty"`
	// ProductLabels: Labels of a product offer. This listing dimension is
	// deprecated and it is supported only in Display campaigns.
	ProductLabels *GoogleAdsSearchads360V23Common__ProductLabelsInfo `json:"productLabels,omitempty"`
	// ProductLegacyCondition: Legacy condition of a product offer. This listing
	// dimension is deprecated and it is supported only in Display campaigns.
	ProductLegacyCondition *GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo `json:"productLegacyCondition,omitempty"`
	// ProductType: Type of a product offer.
	ProductType *GoogleAdsSearchads360V23Common__ProductTypeInfo `json:"productType,omitempty"`
	// ProductTypeFull: Full type of a product offer. This listing dimension is
	// deprecated and it is supported only in Display campaigns.
	ProductTypeFull *GoogleAdsSearchads360V23Common__ProductTypeFullInfo `json:"productTypeFull,omitempty"`
	// UnknownListingDimension: Unknown dimension. Set when no other listing
	// dimension is set.
	UnknownListingDimension *GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo `json:"unknownListingDimension,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActivityCity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActivityCity") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ListingDimensionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ListingDimensionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ListingDimensionPath: The path of dimensions
// defining a listing group.
type GoogleAdsSearchads360V23Common__ListingDimensionPath struct {
	// Dimensions: The complete path of dimensions through the listing group
	// hierarchy, from the root (excluding the root itself) to this listing group.
	Dimensions []*GoogleAdsSearchads360V23Common__ListingDimensionInfo `json:"dimensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ListingDimensionPath) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ListingDimensionPath
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ListingGroupInfo: A listing group criterion.
type GoogleAdsSearchads360V23Common__ListingGroupInfo struct {
	// CaseValue: Dimension value with which this listing group is refining its
	// parent. Undefined for the root group.
	CaseValue *GoogleAdsSearchads360V23Common__ListingDimensionInfo `json:"caseValue,omitempty"`
	// ParentAdGroupCriterion: Resource name of ad group criterion which is the
	// parent listing group subdivision. Null for the root group.
	ParentAdGroupCriterion string `json:"parentAdGroupCriterion,omitempty"`
	// Path: The path of dimensions defining this listing group.
	Path *GoogleAdsSearchads360V23Common__ListingDimensionPath `json:"path,omitempty"`
	// Type: Type of the listing group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SUBDIVISION" - Subdivision of products along some listing dimension.
	// These nodes are not used by serving to target listing entries, but is purely
	// to define the structure of the tree.
	//   "UNIT" - Listing group unit that defines a bid.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CaseValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CaseValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ListingGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ListingGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ListingScopeInfo: A listing scope criterion.
type GoogleAdsSearchads360V23Common__ListingScopeInfo struct {
	// Dimensions: Scope of the campaign criterion.
	Dimensions []*GoogleAdsSearchads360V23Common__ListingDimensionInfo `json:"dimensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ListingScopeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ListingScopeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocalAdInfo: A local ad.
type GoogleAdsSearchads360V23Common__LocalAdInfo struct {
	// CallToActions: List of text assets for call-to-actions. When the ad serves
	// the call-to-actions will be selected from this list. At least 1 and at most
	// 5 call-to-actions must be specified.
	CallToActions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"callToActions,omitempty"`
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list. At least 1 and at most 5
	// descriptions must be specified.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list. At least 1 and at most 5
	// headlines must be specified.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// LogoImages: List of logo image assets that may be displayed with the ad. The
	// images must be 128x128 pixels and not larger than 120KB. At least 1 and at
	// most 5 image assets must be specified.
	LogoImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImages,omitempty"`
	// MarketingImages: List of marketing image assets that may be displayed with
	// the ad. The images must be 314x600 pixels or 320x320 pixels. At least 1 and
	// at most 20 image assets must be specified.
	MarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"marketingImages,omitempty"`
	// Path1: First part of optional text that can be appended to the URL in the
	// ad.
	Path1 string `json:"path1,omitempty"`
	// Path2: Second part of optional text that can be appended to the URL in the
	// ad. This field can only be set when `path1` is also set.
	Path2 string `json:"path2,omitempty"`
	// Videos: List of YouTube video assets that may be displayed with the ad. At
	// least 1 and at most 20 video assets must be specified.
	Videos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"videos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToActions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocalAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocalAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocalServiceIdInfo: A Local Services Ads
// service ID. Represents a service type (such as install_faucet) that a Local
// Services Campaign can target.
type GoogleAdsSearchads360V23Common__LocalServiceIdInfo struct {
	// ServiceId: The criterion resource name.
	ServiceId string `json:"serviceId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ServiceId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ServiceId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocalServiceIdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocalServiceIdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly: A Local
// Services Document with read only accessible data.
type GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly struct {
	// DocumentUrl: URL to access an already uploaded Local Services document.
	DocumentUrl string `json:"documentUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocationAsset: A location asset.
type GoogleAdsSearchads360V23Common__LocationAsset struct {
	// BusinessProfileLocations: The list of business locations for the customer.
	// This will only be returned if the Location Asset is syncing from the
	// Business Profile account. It is possible to have multiple Business Profile
	// listings under the same account that point to the same Place ID.
	BusinessProfileLocations []*GoogleAdsSearchads360V23Common__BusinessProfileLocation `json:"businessProfileLocations,omitempty"`
	// LocationOwnershipType: The type of location ownership. If the type is
	// BUSINESS_OWNER, it will be served as a location extension. If the type is
	// AFFILIATE, it will be served as an affiliate location.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_OWNER" - Business Owner of location(legacy location extension -
	// LE).
	//   "AFFILIATE" - Affiliate location(Third party location extension - ALE).
	LocationOwnershipType string `json:"locationOwnershipType,omitempty"`
	// PlaceId: Place IDs uniquely identify a place in the Google Places database
	// and on Google Maps. This field is unique for a given customer ID and asset
	// type. See https://developers.google.com/places/web-service/place-id to learn
	// more about Place ID.
	PlaceId string `json:"placeId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessProfileLocations")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessProfileLocations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocationAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocationAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocationAttributeMetadata: Metadata
// associated with a Location attribute.
type GoogleAdsSearchads360V23Common__LocationAttributeMetadata struct {
	// CountryLocation: The country location that this attribute’s sub country
	// location is located in.
	CountryLocation *GoogleAdsSearchads360V23Common__LocationInfo `json:"countryLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocationAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocationAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocationGroupInfo: A radius around a list of
// locations specified through a feed.
type GoogleAdsSearchads360V23Common__LocationGroupInfo struct {
	// EnableCustomerLevelLocationAssetSet: Denotes that the latest customer level
	// asset set is used for targeting. Used with radius and radius_units. Cannot
	// be used with feed, geo target constants or feed item sets. When using asset
	// sets, either this field or location_group_asset_sets should be specified.
	// Both cannot be used at the same time. This can only be set in CREATE
	// operations.
	EnableCustomerLevelLocationAssetSet bool `json:"enableCustomerLevelLocationAssetSet,omitempty"`
	// FeedItemSets: FeedItemSets whose FeedItems are targeted. If multiple IDs are
	// specified, then all items that appear in at least one set are targeted. This
	// field cannot be used with geo_target_constants. This is optional and can
	// only be set in CREATE operations.
	FeedItemSets []string `json:"feedItemSets,omitempty"`
	// GeoTargetConstants: Geo target constant(s) restricting the scope of the
	// geographic area within the feed. Currently only one geo target constant is
	// allowed.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// LocationGroupAssetSets: AssetSets whose Assets are targeted. If multiple IDs
	// are specified, then all items that appear in at least one set are targeted.
	// This field cannot be used with feed, geo target constants or feed item sets.
	// When using asset sets, either this field or
	// enable_customer_level_location_asset_set should be specified. Both cannot be
	// used at the same time. This can only be set in CREATE operations.
	LocationGroupAssetSets []string `json:"locationGroupAssetSets,omitempty"`
	// Radius: Distance in units specifying the radius around targeted locations.
	// This is required and must be set in CREATE operations.
	Radius int64 `json:"radius,omitempty,string"`
	// RadiusUnits: Unit of the radius. Miles and meters are supported for geo
	// target constants. Milli miles and meters are supported for feed item sets.
	// This is required and must be set in CREATE operations.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "METERS" - Meters
	//   "MILES" - Miles
	//   "MILLI_MILES" - Milli Miles
	RadiusUnits string `json:"radiusUnits,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableCustomerLevelLocationAssetSet") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EnableCustomerLevelLocationAssetSet") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocationGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocationGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocationInfo: A location criterion.
type GoogleAdsSearchads360V23Common__LocationInfo struct {
	// GeoTargetConstant: The geo target constant resource name.
	GeoTargetConstant string `json:"geoTargetConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GeoTargetConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LocationSet: Data related to location set.
// One of the Google Business Profile (previously known as Google My Business)
// data, Chain data, and map location data need to be specified.
type GoogleAdsSearchads360V23Common__LocationSet struct {
	// BusinessProfileLocationSet: Data used to configure a location set populated
	// from Google Business Profile locations.
	BusinessProfileLocationSet *GoogleAdsSearchads360V23Common__BusinessProfileLocationSet `json:"businessProfileLocationSet,omitempty"`
	// ChainLocationSet: Data used to configure a location on chain set populated
	// with the specified chains.
	ChainLocationSet *GoogleAdsSearchads360V23Common__ChainSet `json:"chainLocationSet,omitempty"`
	// LocationOwnershipType: Required. Immutable. Location Ownership Type (owned
	// location or affiliate location).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_OWNER" - Business Owner of location(legacy location extension -
	// LE).
	//   "AFFILIATE" - Affiliate location(Third party location extension - ALE).
	LocationOwnershipType string `json:"locationOwnershipType,omitempty"`
	// MapsLocationSet: Only set if locations are synced based on selected maps
	// locations
	MapsLocationSet *GoogleAdsSearchads360V23Common__MapsLocationSet `json:"mapsLocationSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessProfileLocationSet")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessProfileLocationSet") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LocationSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LocationSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LogicalUserListInfo: Represents a user list
// that is a custom combination of user lists.
type GoogleAdsSearchads360V23Common__LogicalUserListInfo struct {
	// Rules: Logical list rules that define this user list. The rules are defined
	// as a logical operator (ALL/ANY/NONE) and a list of user lists. All the rules
	// are ANDed when they are evaluated. Required for creating a logical user
	// list.
	Rules []*GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo `json:"rules,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Rules") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Rules") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LogicalUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LogicalUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo: Operand of
// logical user list that consists of a user list.
type GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo struct {
	// UserList: Resource name of a user list as an operand.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__LookalikeUserListInfo: LookalikeUserlist,
// composed of users similar to those of a configurable seed (set of UserLists)
type GoogleAdsSearchads360V23Common__LookalikeUserListInfo struct {
	// CountryCodes: Countries targeted by the Lookalike. Two-letter country code
	// as defined by ISO-3166
	CountryCodes []string `json:"countryCodes,omitempty"`
	// ExpansionLevel: Expansion level, reflecting the size of the lookalike
	// audience
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Invalid expansion level.
	//   "NARROW" - Expansion to a small set of users that are similar to the seed
	// lists
	//   "BALANCED" - Expansion to a medium set of users that are similar to the
	// seed lists. Includes all users of EXPANSION_LEVEL_NARROW, and more.
	//   "BROAD" - Expansion to a large set of users that are similar to the seed
	// lists. Includes all users of EXPANSION_LEVEL_BALANCED, and more.
	ExpansionLevel string `json:"expansionLevel,omitempty"`
	// SeedUserListIds: Seed UserList ID from which this list is derived, provided
	// by user.
	SeedUserListIds googleapi.Int64s `json:"seedUserListIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCodes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__LookalikeUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__LookalikeUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ManualCpa: Manual bidding strategy that
// allows advertiser to set the bid per advertiser-specified action.
type GoogleAdsSearchads360V23Common__ManualCpa struct {
}

// GoogleAdsSearchads360V23Common__ManualCpc: Manual click-based bidding where
// user pays per click.
type GoogleAdsSearchads360V23Common__ManualCpc struct {
	// EnhancedCpcEnabled: Whether bids are to be enhanced based on conversion
	// optimizer data.
	EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnhancedCpcEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnhancedCpcEnabled") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ManualCpc) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ManualCpc
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ManualCpm: Manual impression-based bidding
// where user pays per thousand impressions.
type GoogleAdsSearchads360V23Common__ManualCpm struct {
}

// GoogleAdsSearchads360V23Common__ManualCpv: View based bidding where user
// pays per video view.
type GoogleAdsSearchads360V23Common__ManualCpv struct {
}

// GoogleAdsSearchads360V23Common__MapsLocationInfo: Wrapper for place ids
type GoogleAdsSearchads360V23Common__MapsLocationInfo struct {
	// PlaceId: Place ID of the Maps location.
	PlaceId string `json:"placeId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PlaceId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlaceId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MapsLocationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MapsLocationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MapsLocationSet: Wrapper for multiple maps
// location sync data
type GoogleAdsSearchads360V23Common__MapsLocationSet struct {
	// MapsLocations: Required. A list of maps location info that user manually
	// synced in.
	MapsLocations []*GoogleAdsSearchads360V23Common__MapsLocationInfo `json:"mapsLocations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MapsLocations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MapsLocations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MapsLocationSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MapsLocationSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MaximizeConversionValue: An automated
// bidding strategy to help get the most conversion value for your campaigns
// while spending your budget.
type GoogleAdsSearchads360V23Common__MaximizeConversionValue struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetRoas: The target return on ad spend (ROAS) option. If set, the bid
	// strategy will maximize revenue while averaging the target return on ad
	// spend. If the target ROAS is high, the bid strategy may not be able to spend
	// the full budget. If the target ROAS is not set, the bid strategy will aim to
	// achieve the highest possible ROAS for the budget.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// TargetRoasTolerancePercentMillis: The percent of ROAS(return on advertising
	// spend) degradation tolerance allowed to increase traffic diversity and
	// conversion volume, specified in millis (for example, 10,000 = 10%). A value
	// of 10,000 means that the advertiser can expect ROAS degradation of up to 10%
	// of the specified target ROAS.
	TargetRoasTolerancePercentMillis int64 `json:"targetRoasTolerancePercentMillis,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MaximizeConversionValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MaximizeConversionValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__MaximizeConversionValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__MaximizeConversionValue
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23Common__MaximizeConversions: An automated bidding
// strategy to help get the most conversions for your campaigns while spending
// your budget.
type GoogleAdsSearchads360V23Common__MaximizeConversions struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. Mutable for
	// portfolio bidding strategies only.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetCpaMicros: The target cost-per-action (CPA) option. This is the
	// average amount that you would like to spend per conversion action specified
	// in micro units of the bidding strategy's currency. If set, the bid strategy
	// will get as many conversions as possible at or below the target
	// cost-per-action. If the target CPA is not set, the bid strategy will aim to
	// achieve the lowest possible CPA given the budget.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MaximizeConversions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MaximizeConversions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MediaBundleAsset: A MediaBundle asset.
type GoogleAdsSearchads360V23Common__MediaBundleAsset struct {
	// Data: Media bundle (ZIP file) asset data. The format of the uploaded ZIP
	// file depends on the ad field where it will be used. For more information on
	// the format, see the documentation of the ad field where you plan on using
	// the MediaBundleAsset. This field is mutate only.
	Data string `json:"data,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MediaBundleAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MediaBundleAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MetricGoal: A metric goal for an experiment.
type GoogleAdsSearchads360V23Common__MetricGoal struct {
	// Direction: The metric direction of the goal. For example, increase,
	// decrease, no change.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "NO_CHANGE" - The goal of the experiment is to not change the metric.
	//   "INCREASE" - The goal of the experiment is to increate the metric.
	//   "DECREASE" - The goal of the experiment is to decrease the metric.
	//   "NO_CHANGE_OR_INCREASE" - The goal of the experiment is to either not
	// change or increase the metric.
	//   "NO_CHANGE_OR_DECREASE" - The goal of the experiment is to either not
	// change or decrease the metric.
	Direction string `json:"direction,omitempty"`
	// Metric: The metric of the goal. For example, clicks, impressions, cost,
	// conversions, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CLICKS" - The goal of the experiment is clicks.
	//   "IMPRESSIONS" - The goal of the experiment is impressions.
	//   "COST" - The goal of the experiment is cost.
	//   "CONVERSIONS_PER_INTERACTION_RATE" - The goal of the experiment is
	// conversion rate.
	//   "COST_PER_CONVERSION" - The goal of the experiment is cost per conversion.
	//   "CONVERSIONS_VALUE_PER_COST" - The goal of the experiment is conversion
	// value per cost.
	//   "AVERAGE_CPC" - The goal of the experiment is avg cpc.
	//   "CTR" - The goal of the experiment is ctr.
	//   "INCREMENTAL_CONVERSIONS" - The goal of the experiment is incremental
	// conversions.
	//   "COMPLETED_VIDEO_VIEWS" - The goal of the experiment is completed video
	// views.
	//   "CUSTOM_ALGORITHMS" - The goal of the experiment is custom algorithms.
	//   "CONVERSIONS" - The goal of the experiment is conversions.
	//   "CONVERSION_VALUE" - The goal of the experiment is conversion value.
	Metric string `json:"metric,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Direction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Direction") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MetricGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MetricGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Metrics: Metrics data.
type GoogleAdsSearchads360V23Common__Metrics struct {
	// AbsoluteTopImpressionPercentage: Search absolute top impression share is the
	// percentage of your Search ad impressions that are shown in the most
	// prominent Search position.
	AbsoluteTopImpressionPercentage float64 `json:"absoluteTopImpressionPercentage,omitempty"`
	// AllConversions: The total number of conversions. This includes all
	// conversions regardless of the value of include_in_conversions_metric.
	AllConversions float64 `json:"allConversions,omitempty"`
	// AllConversionsByConversionDate: The total number of conversions. This
	// includes all conversions regardless of the value of
	// include_in_conversions_metric. When this column is selected with date, the
	// values in date column means the conversion date. Details for the
	// by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	AllConversionsByConversionDate float64 `json:"allConversionsByConversionDate,omitempty"`
	// AllConversionsFromClickToCall: The number of times people clicked the "Call"
	// button to call a business during or after clicking an ad. This number
	// doesn't include whether or not calls were connected, or the duration of any
	// calls. This metric applies to feed items only.
	AllConversionsFromClickToCall float64 `json:"allConversionsFromClickToCall,omitempty"`
	// AllConversionsFromDirections: The number of times people clicked a "Get
	// directions" button to navigate to a business after clicking an ad. This
	// metric applies to feed items only.
	AllConversionsFromDirections float64 `json:"allConversionsFromDirections,omitempty"`
	// AllConversionsFromInteractionsRate: All conversions from interactions (as
	// oppose to view through conversions) divided by the number of ad
	// interactions.
	AllConversionsFromInteractionsRate float64 `json:"allConversionsFromInteractionsRate,omitempty"`
	// AllConversionsFromInteractionsValuePerInteraction: The value of all
	// conversions from interactions divided by the total number of interactions.
	AllConversionsFromInteractionsValuePerInteraction float64 `json:"allConversionsFromInteractionsValuePerInteraction,omitempty"`
	// AllConversionsFromMenu: The number of times people clicked a link to view a
	// business's menu after clicking an ad. This metric applies to feed items
	// only.
	AllConversionsFromMenu float64 `json:"allConversionsFromMenu,omitempty"`
	// AllConversionsFromOrder: The number of times people placed an order at a
	// business after clicking an ad. This metric applies to feed items only.
	AllConversionsFromOrder float64 `json:"allConversionsFromOrder,omitempty"`
	// AllConversionsFromOtherEngagement: The number of other conversions (for
	// example, posting a review or saving a location for a business) that occurred
	// after people clicked an ad. This metric applies to feed items only.
	AllConversionsFromOtherEngagement float64 `json:"allConversionsFromOtherEngagement,omitempty"`
	// AllConversionsFromStoreVisit: Estimated number of times people visited a
	// business after clicking an ad. This metric applies to feed items only.
	AllConversionsFromStoreVisit float64 `json:"allConversionsFromStoreVisit,omitempty"`
	// AllConversionsFromStoreWebsite: The number of times that people were taken
	// to a business's URL after clicking an ad. This metric applies to feed items
	// only.
	AllConversionsFromStoreWebsite float64 `json:"allConversionsFromStoreWebsite,omitempty"`
	// AllConversionsValue: The value of all conversions.
	AllConversionsValue float64 `json:"allConversionsValue,omitempty"`
	// AllConversionsValueByConversionDate: The value of all conversions. When this
	// column is selected with date, the values in date column means the conversion
	// date. Details for the by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	AllConversionsValueByConversionDate float64 `json:"allConversionsValueByConversionDate,omitempty"`
	// AllConversionsValuePerCost: The value of all conversions divided by the
	// total cost of ad interactions (such as clicks for text ads or views for
	// video ads).
	AllConversionsValuePerCost float64 `json:"allConversionsValuePerCost,omitempty"`
	// AverageCartSize: Average cart size is the average number of products in each
	// order attributed to your ads. How it works: You report conversions with cart
	// data for completed purchases on your website. Average cart size is the total
	// number of products sold divided by the total number of orders you received.
	// Example: You received 2 orders, the first included 3 products and the second
	// included 2. The average cart size is 2.5 products = (3+2)/2. This metric is
	// only available if you report conversions with cart data.
	AverageCartSize float64 `json:"averageCartSize,omitempty"`
	// AverageCost: The average amount you pay per interaction. This amount is the
	// total cost of your ads divided by the total number of interactions.
	AverageCost float64 `json:"averageCost,omitempty"`
	// AverageCpc: The total cost of all clicks divided by the total number of
	// clicks received. This metric is a monetary value and returned in the
	// customer's currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	AverageCpc float64 `json:"averageCpc,omitempty"`
	// AverageCpm: Average cost-per-thousand impressions (CPM). This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	AverageCpm float64 `json:"averageCpm,omitempty"`
	// AverageImpressionFrequencyPerUser: The average number of times a unique user
	// saw your ad during the requested time period. This metric cannot be
	// aggregated, and can only be requested for date ranges of 92 days or less.
	// This metric is available for following campaign types - Display, Video,
	// Discovery and App.
	AverageImpressionFrequencyPerUser float64 `json:"averageImpressionFrequencyPerUser,omitempty"`
	// AverageOrderValueMicros: Average order value is the average revenue you made
	// per order attributed to your ads. How it works: You report conversions with
	// cart data for completed purchases on your website. Average order value is
	// the total revenue from your orders divided by the total number of orders.
	// Example: You received 3 orders which made $10, $15 and $20 worth of revenue.
	// The average order value is $15 = ($10 + $15 + $20)/3. This metric is only
	// available if you report conversions with cart data.
	AverageOrderValueMicros int64 `json:"averageOrderValueMicros,omitempty,string"`
	// AverageQualityScore: The average quality score.
	AverageQualityScore float64 `json:"averageQualityScore,omitempty"`
	// Clicks: The number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// ClientAccountConversions: The number of client account conversions. This
	// only includes conversion actions which
	// include_in_client_account_conversions_metric attribute is set to true. If
	// you use conversion-based bidding, your bid strategies will optimize for
	// these conversions.
	ClientAccountConversions float64 `json:"clientAccountConversions,omitempty"`
	// ClientAccountConversionsValue: The value of client account conversions. This
	// only includes conversion actions which
	// include_in_client_account_conversions_metric attribute is set to true. If
	// you use conversion-based bidding, your bid strategies will optimize for
	// these conversions.
	ClientAccountConversionsValue float64 `json:"clientAccountConversionsValue,omitempty"`
	// ClientAccountCrossSellCostOfGoodsSoldMicros: Client account cross-sell cost
	// of goods sold (COGS) is the total cost of products sold as a result of
	// advertising a different product. How it works: You report conversions with
	// cart data for completed purchases on your website. If the ad that was
	// interacted with before the purchase has an associated product (see Shopping
	// Ads) then this product is considered the advertised product. Any product
	// included in the order the customer places is a sold product. If these
	// products don't match then this is considered cross-sell. Cross-sell cost of
	// goods sold is the total cost of the products sold that weren't advertised.
	// Example: Someone clicked on a Shopping ad for a hat then bought the same hat
	// and a shirt. The hat has a cost of goods sold value of $3, the shirt has a
	// cost of goods sold value of $5. The cross-sell cost of goods sold for this
	// order is $5. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellCostOfGoodsSoldMicros int64 `json:"clientAccountCrossSellCostOfGoodsSoldMicros,omitempty,string"`
	// ClientAccountCrossSellGrossProfitMicros: Client account cross-sell gross
	// profit is the profit you made from products sold as a result of advertising
	// a different product, minus cost of goods sold (COGS). How it works: You
	// report conversions with cart data for completed purchases on your website.
	// If the ad that was interacted with before the purchase has an associated
	// product (see Shopping Ads) then this product is considered the advertised
	// product. Any product included in the purchase is a sold product. If these
	// products don't match then this is considered cross-sell. Cross-sell gross
	// profit is the revenue you made from cross-sell attributed to your ads minus
	// the cost of the goods sold. Example: Someone clicked on a Shopping ad for a
	// hat then bought the same hat and a shirt. The shirt is priced $20 and has a
	// cost of goods sold value of $5. The cross-sell gross profit of this order is
	// $15 = $20 - $5. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellGrossProfitMicros int64 `json:"clientAccountCrossSellGrossProfitMicros,omitempty,string"`
	// ClientAccountCrossSellRevenueMicros: Client account cross-sell revenue is
	// the total amount you made from products sold as a result of advertising a
	// different product. How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with
	// before the purchase has an associated product (see Shopping Ads) then this
	// product is considered the advertised product. Any product included in the
	// order the customer places is a sold product. If these products don't match
	// then this is considered cross-sell. Cross-sell revenue is the total value
	// you made from cross-sell attributed to your ads. Example: Someone clicked on
	// a Shopping ad for a hat then bought the same hat and a shirt. The hat is
	// priced $10 and the shirt is priced $20. The cross-sell revenue of this order
	// is $20. This metric is only available if you report conversions with cart
	// data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountCrossSellRevenueMicros int64 `json:"clientAccountCrossSellRevenueMicros,omitempty,string"`
	// ClientAccountCrossSellUnitsSold: Client account cross-sell units sold is the
	// total number of products sold as a result of advertising a different
	// product. How it works: You report conversions with cart data for completed
	// purchases on your website. If the ad that was interacted with before the
	// purchase has an associated product (see Shopping Ads) then this product is
	// considered the advertised product. Any product included in the order the
	// customer places is a sold product. If these products don't match then this
	// is considered cross-sell. Cross-sell units sold is the total number of
	// cross-sold products from all orders attributed to your ads. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat, a shirt and a
	// jacket. The cross-sell units sold in this order is 2. This metric is only
	// available if you report conversions with cart data.
	ClientAccountCrossSellUnitsSold float64 `json:"clientAccountCrossSellUnitsSold,omitempty"`
	// ClientAccountLeadCostOfGoodsSoldMicros: Client account lead cost of goods
	// sold (COGS) is the total cost of products sold as a result of advertising
	// the same product. How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with has
	// an associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If the advertised and sold products match, then the cost of
	// these goods is counted under lead cost of goods sold. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat and a shirt. The
	// hat has a cost of goods sold value of $3, the shirt has a cost of goods sold
	// value of $5. The lead cost of goods sold for this order is $3. This metric
	// is only available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadCostOfGoodsSoldMicros int64 `json:"clientAccountLeadCostOfGoodsSoldMicros,omitempty,string"`
	// ClientAccountLeadGrossProfitMicros: Client account lead gross profit is the
	// profit you made from products sold as a result of advertising the same
	// product, minus cost of goods sold (COGS). How it works: You report
	// conversions with cart data for completed purchases on your website. If the
	// ad that was interacted with before the purchase has an associated product
	// (see Shopping Ads) then this product is considered the advertised product.
	// Any product included in the order the customer places is a sold product. If
	// the advertised and sold products match, then the revenue you made from these
	// sales minus the cost of goods sold is your lead gross profit. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt. The hat is priced $10 and has a cost of goods sold value of $3. The
	// lead gross profit of this order is $7 = $10 - $3. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadGrossProfitMicros int64 `json:"clientAccountLeadGrossProfitMicros,omitempty,string"`
	// ClientAccountLeadRevenueMicros: Client account lead revenue is the total
	// amount you made from products sold as a result of advertising the same
	// product. How it works: You report conversions with cart data for completed
	// purchases on your website. If the ad that was interacted with before the
	// purchase has an associated product (see Shopping Ads) then this product is
	// considered the advertised product. Any product included in the order the
	// customer places is a sold product. If the advertised and sold products
	// match, then the total value you made from the sales of these products is
	// shown under lead revenue. Example: Someone clicked on a Shopping ad for a
	// hat then bought the same hat and a shirt. The hat is priced $10 and the
	// shirt is priced $20. The lead revenue of this order is $10. This metric is
	// only available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	ClientAccountLeadRevenueMicros int64 `json:"clientAccountLeadRevenueMicros,omitempty,string"`
	// ClientAccountLeadUnitsSold: Client account lead units sold is the total
	// number of products sold as a result of advertising the same product. How it
	// works: You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with before the purchase has an
	// associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If the advertised and sold products match, then the total
	// number of these products sold is shown under lead units sold. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt
	// and a jacket. The lead units sold in this order is 1. This metric is only
	// available if you report conversions with cart data.
	ClientAccountLeadUnitsSold float64 `json:"clientAccountLeadUnitsSold,omitempty"`
	// ClientAccountViewThroughConversions: The total number of view-through
	// conversions. These happen when a customer sees an image or rich media ad,
	// then later completes a conversion on your site without interacting with (for
	// example, clicking on) another ad.
	ClientAccountViewThroughConversions int64 `json:"clientAccountViewThroughConversions,omitempty,string"`
	// ContentBudgetLostImpressionShare: The estimated percent of times that your
	// ad was eligible to show on the Display Network but didn't because your
	// budget was too low. Note: Content budget lost impression share is reported
	// in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
	ContentBudgetLostImpressionShare float64 `json:"contentBudgetLostImpressionShare,omitempty"`
	// ContentImpressionShare: The impressions you've received on the Display
	// Network divided by the estimated number of impressions you were eligible to
	// receive. Note: Content impression share is reported in the range of 0.1 to
	// 1. Any value below 0.1 is reported as 0.0999.
	ContentImpressionShare float64 `json:"contentImpressionShare,omitempty"`
	// ContentRankLostImpressionShare: The estimated percentage of impressions on
	// the Display Network that your ads didn't receive due to poor Ad Rank. Note:
	// Content rank lost impression share is reported in the range of 0 to 0.9. Any
	// value above 0.9 is reported as 0.9001.
	ContentRankLostImpressionShare float64 `json:"contentRankLostImpressionShare,omitempty"`
	// ConversionCustomMetrics: The conversion custom metrics.
	ConversionCustomMetrics []*GoogleAdsSearchads360V23Common__Value `json:"conversionCustomMetrics,omitempty"`
	// Conversions: The number of conversions. This only includes conversion
	// actions which include_in_conversions_metric attribute is set to true. If you
	// use conversion-based bidding, your bid strategies will optimize for these
	// conversions.
	Conversions float64 `json:"conversions,omitempty"`
	// ConversionsByConversionDate: The sum of conversions by conversion date for
	// biddable conversion types. Can be fractional due to attribution modeling.
	// When this column is selected with date, the values in date column means the
	// conversion date.
	ConversionsByConversionDate float64 `json:"conversionsByConversionDate,omitempty"`
	// ConversionsFromInteractionsRate: Average biddable conversions (from
	// interaction) per conversion eligible interaction. Shows how often, on
	// average, an ad interaction leads to a biddable conversion.
	ConversionsFromInteractionsRate float64 `json:"conversionsFromInteractionsRate,omitempty"`
	// ConversionsFromInteractionsValuePerInteraction: The value of conversions
	// from interactions divided by the number of ad interactions. This only
	// includes conversion actions which include_in_conversions_metric attribute is
	// set to true. If you use conversion-based bidding, your bid strategies will
	// optimize for these conversions.
	ConversionsFromInteractionsValuePerInteraction float64 `json:"conversionsFromInteractionsValuePerInteraction,omitempty"`
	// ConversionsValue: The sum of conversion values for the conversions included
	// in the "conversions" field. This metric is useful only if you entered a
	// value for your conversion actions.
	ConversionsValue float64 `json:"conversionsValue,omitempty"`
	// ConversionsValueByConversionDate: The sum of biddable conversions value by
	// conversion date. When this column is selected with date, the values in date
	// column means the conversion date.
	ConversionsValueByConversionDate float64 `json:"conversionsValueByConversionDate,omitempty"`
	// ConversionsValuePerCost: The value of biddable conversion divided by the
	// total cost of conversion eligible interactions.
	ConversionsValuePerCost float64 `json:"conversionsValuePerCost,omitempty"`
	// CostMicros: The sum of your cost-per-click (CPC) and cost-per-thousand
	// impressions (CPM) costs during this period. This metric is a monetary value
	// and returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// CostOfGoodsSoldMicros: Cost of goods sold (COGS) is the total cost of the
	// products you sold in orders attributed to your ads. How it works: You can
	// add a cost of goods sold value to every product in Merchant Center. If you
	// report conversions with cart data, the products you sold are matched with
	// their cost of goods sold value and this can be used to calculate the gross
	// profit you made on each order. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The cost of
	// goods sold for this order is $8 = $3 + $5. This metric is only available if
	// you report conversions with cart data.
	CostOfGoodsSoldMicros int64 `json:"costOfGoodsSoldMicros,omitempty,string"`
	// CostPerAllConversions: The cost of ad interactions divided by all
	// conversions.
	CostPerAllConversions float64 `json:"costPerAllConversions,omitempty"`
	// CostPerConversion: Average conversion eligible cost per biddable conversion.
	CostPerConversion float64 `json:"costPerConversion,omitempty"`
	// CostPerCurrentModelAttributedConversion: The cost of ad interactions divided
	// by current model attributed conversions. This only includes conversion
	// actions which include_in_conversions_metric attribute is set to true. If you
	// use conversion-based bidding, your bid strategies will optimize for these
	// conversions.
	CostPerCurrentModelAttributedConversion float64 `json:"costPerCurrentModelAttributedConversion,omitempty"`
	// CrossDeviceConversions: Conversions from when a customer clicks on an ad on
	// one device, then converts on a different device or browser. Cross-device
	// conversions are already included in all_conversions.
	CrossDeviceConversions float64 `json:"crossDeviceConversions,omitempty"`
	// CrossDeviceConversionsByConversionDate: The number of cross-device
	// conversions by conversion date. Details for the by_conversion_date columns
	// are available at https://support.google.com/sa360/answer/9250611.
	CrossDeviceConversionsByConversionDate float64 `json:"crossDeviceConversionsByConversionDate,omitempty"`
	// CrossDeviceConversionsValue: The sum of the value of cross-device
	// conversions.
	CrossDeviceConversionsValue float64 `json:"crossDeviceConversionsValue,omitempty"`
	// CrossDeviceConversionsValueByConversionDate: The sum of cross-device
	// conversions value by conversion date. Details for the by_conversion_date
	// columns are available at https://support.google.com/sa360/answer/9250611.
	CrossDeviceConversionsValueByConversionDate float64 `json:"crossDeviceConversionsValueByConversionDate,omitempty"`
	// CrossSellCostOfGoodsSoldMicros: Cross-sell cost of goods sold (COGS) is the
	// total cost of products sold as a result of advertising a different product.
	// How it works: You report conversions with cart data for completed purchases
	// on your website. If the ad that was interacted with before the purchase has
	// an associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If these products don't match then this is considered
	// cross-sell. Cross-sell cost of goods sold is the total cost of the products
	// sold that weren't advertised. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The cross-sell
	// cost of goods sold for this order is $5. This metric is only available if
	// you report conversions with cart data. This metric is a monetary value and
	// returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellCostOfGoodsSoldMicros int64 `json:"crossSellCostOfGoodsSoldMicros,omitempty,string"`
	// CrossSellGrossProfitMicros: Cross-sell gross profit is the profit you made
	// from products sold as a result of advertising a different product, minus
	// cost of goods sold (COGS). How it works: You report conversions with cart
	// data for completed purchases on your website. If the ad that was interacted
	// with before the purchase has an associated product (see Shopping Ads) then
	// this product is considered the advertised product. Any product included in
	// the purchase is a sold product. If these products don't match then this is
	// considered cross-sell. Cross-sell gross profit is the revenue you made from
	// cross-sell attributed to your ads minus the cost of the goods sold. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The
	// cross-sell gross profit of this order is $15 = $20 - $5. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellGrossProfitMicros int64 `json:"crossSellGrossProfitMicros,omitempty,string"`
	// CrossSellRevenueMicros: Cross-sell revenue is the total amount you made from
	// products sold as a result of advertising a different product. How it works:
	// You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with before the purchase has an
	// associated product (see Shopping Ads) then this product is considered the
	// advertised product. Any product included in the order the customer places is
	// a sold product. If these products don't match then this is considered
	// cross-sell. Cross-sell revenue is the total value you made from cross-sell
	// attributed to your ads. Example: Someone clicked on a Shopping ad for a hat
	// then bought the same hat and a shirt. The hat is priced $10 and the shirt is
	// priced $20. The cross-sell revenue of this order is $20. This metric is only
	// available if you report conversions with cart data. This metric is a
	// monetary value and returned in the customer's currency by default. See the
	// metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	CrossSellRevenueMicros int64 `json:"crossSellRevenueMicros,omitempty,string"`
	// CrossSellUnitsSold: Cross-sell units sold is the total number of products
	// sold as a result of advertising a different product. How it works: You
	// report conversions with cart data for completed purchases on your website.
	// If the ad that was interacted with before the purchase has an associated
	// product (see Shopping Ads) then this product is considered the advertised
	// product. Any product included in the order the customer places is a sold
	// product. If these products don't match then this is considered cross-sell.
	// Cross-sell units sold is the total number of cross-sold products from all
	// orders attributed to your ads. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat, a shirt and a jacket. The cross-sell units
	// sold in this order is 2. This metric is only available if you report
	// conversions with cart data.
	CrossSellUnitsSold float64 `json:"crossSellUnitsSold,omitempty"`
	// Ctr: The number of clicks your ad receives (Clicks) divided by the number of
	// times your ad is shown (Impressions).
	Ctr float64 `json:"ctr,omitempty"`
	// GeneralInvalidClickRate: The percentage of clicks that have been filtered
	// out of your total number of clicks (filtered + non-filtered clicks) due to
	// being general invalid clicks. These are clicks Google considers illegitimate
	// that are detected through routine means of filtration (that is, known
	// invalid data-center traffic, bots and spiders or other crawlers, irregular
	// patterns, etc). You're not charged for them, and they don't affect your
	// account statistics. See the help page at
	// https://support.google.com/campaignmanager/answer/6076504 for details.
	GeneralInvalidClickRate float64 `json:"generalInvalidClickRate,omitempty"`
	// GeneralInvalidClicks: Number of general invalid clicks. These are a subset
	// of your invalid clicks that are detected through routine means of filtration
	// (such as known invalid data-center traffic, bots and spiders or other
	// crawlers, irregular patterns, etc.). You're not charged for them, and they
	// don't affect your account statistics. See the help page at
	// https://support.google.com/campaignmanager/answer/6076504 for details.
	GeneralInvalidClicks int64 `json:"generalInvalidClicks,omitempty,string"`
	// GrossProfitMargin: Gross profit margin is the percentage gross profit you
	// made from orders attributed to your ads, after taking out the cost of goods
	// sold (COGS). How it works: You report conversions with cart data for
	// completed purchases on your website. Gross profit margin is the gross profit
	// you made divided by your total revenue and multiplied by 100%. Gross profit
	// margin calculations only include products that have a cost of goods sold
	// value in Merchant Center. Example: Someone bought a hat and a shirt in an
	// order on your website. The hat is priced $10 and has a cost of goods sold
	// value of $3. The shirt is priced $20 but has no cost of goods sold value.
	// Gross profit margin for this order will only take into account the hat
	// because it has a cost of goods sold value, so it's 70% = ($10 - $3)/$10 x
	// 100%. This metric is only available if you report conversions with cart
	// data.
	GrossProfitMargin float64 `json:"grossProfitMargin,omitempty"`
	// GrossProfitMicros: Gross profit is the profit you made from orders
	// attributed to your ads minus the cost of goods sold (COGS). How it works:
	// Gross profit is the revenue you made from sales attributed to your ads minus
	// cost of goods sold. Gross profit calculations only include products that
	// have a cost of goods sold value in Merchant Center. Example: Someone clicked
	// on a Shopping ad for a hat then bought the same hat and a shirt in an order
	// from your website. The hat is priced $10 and the shirt is priced $20. The
	// hat has a cost of goods sold value of $3, but the shirt has no cost of goods
	// sold value. Gross profit for this order will only take into account the hat,
	// so it's $7 = $10 - $3. This metric is only available if you report
	// conversions with cart data.
	GrossProfitMicros int64 `json:"grossProfitMicros,omitempty,string"`
	// HistoricalCreativeQualityScore: The creative historical quality score.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalCreativeQualityScore string `json:"historicalCreativeQualityScore,omitempty"`
	// HistoricalLandingPageQualityScore: The quality of historical landing page
	// experience.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalLandingPageQualityScore string `json:"historicalLandingPageQualityScore,omitempty"`
	// HistoricalQualityScore: The historical quality score.
	HistoricalQualityScore int64 `json:"historicalQualityScore,omitempty,string"`
	// HistoricalSearchPredictedCtr: The historical search predicted click through
	// rate (CTR).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	HistoricalSearchPredictedCtr string `json:"historicalSearchPredictedCtr,omitempty"`
	// Impressions: Count of how often your ad has appeared on a search results
	// page or website on the Google Network.
	Impressions int64 `json:"impressions,omitempty,string"`
	// InteractionEventTypes: The types of payable and free interactions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLICK" - Click to site. In most cases, this interaction navigates to an
	// external location, usually the advertiser's landing page. This is also the
	// default InteractionEventType for click events.
	//   "ENGAGEMENT" - The user's expressed intent to engage with the ad in-place.
	//   "VIDEO_VIEW" - User viewed a video ad.
	//   "NONE" - The default InteractionEventType for ad conversion events. This
	// is used when an ad conversion row does NOT indicate that the free
	// interactions (for example, the ad conversions) should be 'promoted' and
	// reported as part of the core metrics. These are simply other (ad)
	// conversions.
	InteractionEventTypes []string `json:"interactionEventTypes,omitempty"`
	// InteractionRate: How often people interact with your ad after it is shown to
	// them. This is the number of interactions divided by the number of times your
	// ad is shown.
	InteractionRate float64 `json:"interactionRate,omitempty"`
	// Interactions: The number of interactions. An interaction is the main user
	// action associated with an ad format-clicks for text and shopping ads, views
	// for video ads, and so on.
	Interactions int64 `json:"interactions,omitempty,string"`
	// InvalidClickRate: The percentage of clicks filtered out of your total number
	// of clicks (filtered + non-filtered clicks) during the reporting period.
	InvalidClickRate float64 `json:"invalidClickRate,omitempty"`
	// InvalidClicks: Number of clicks Google considers illegitimate and doesn't
	// charge you for.
	InvalidClicks int64 `json:"invalidClicks,omitempty,string"`
	// LeadCostOfGoodsSoldMicros: Lead cost of goods sold (COGS) is the total cost
	// of products sold as a result of advertising the same product. How it works:
	// You report conversions with cart data for completed purchases on your
	// website. If the ad that was interacted with has an associated product (see
	// Shopping Ads) then this product is considered the advertised product. Any
	// product included in the order the customer places is a sold product. If the
	// advertised and sold products match, then the cost of these goods is counted
	// under lead cost of goods sold. Example: Someone clicked on a Shopping ad for
	// a hat then bought the same hat and a shirt. The hat has a cost of goods sold
	// value of $3, the shirt has a cost of goods sold value of $5. The lead cost
	// of goods sold for this order is $3. This metric is only available if you
	// report conversions with cart data. This metric is a monetary value and
	// returned in the customer's currency by default. See the metrics_currency
	// parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadCostOfGoodsSoldMicros int64 `json:"leadCostOfGoodsSoldMicros,omitempty,string"`
	// LeadGrossProfitMicros: Lead gross profit is the profit you made from
	// products sold as a result of advertising the same product, minus cost of
	// goods sold (COGS). How it works: You report conversions with cart data for
	// completed purchases on your website. If the ad that was interacted with
	// before the purchase has an associated product (see Shopping Ads) then this
	// product is considered the advertised product. Any product included in the
	// order the customer places is a sold product. If the advertised and sold
	// products match, then the revenue you made from these sales minus the cost of
	// goods sold is your lead gross profit. Example: Someone clicked on a Shopping
	// ad for a hat then bought the same hat and a shirt. The hat is priced $10 and
	// has a cost of goods sold value of $3. The lead gross profit of this order is
	// $7 = $10 - $3. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadGrossProfitMicros int64 `json:"leadGrossProfitMicros,omitempty,string"`
	// LeadRevenueMicros: Lead revenue is the total amount you made from products
	// sold as a result of advertising the same product. How it works: You report
	// conversions with cart data for completed purchases on your website. If the
	// ad that was interacted with before the purchase has an associated product
	// (see Shopping Ads) then this product is considered the advertised product.
	// Any product included in the order the customer places is a sold product. If
	// the advertised and sold products match, then the total value you made from
	// the sales of these products is shown under lead revenue. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat and a shirt. The
	// hat is priced $10 and the shirt is priced $20. The lead revenue of this
	// order is $10. This metric is only available if you report conversions with
	// cart data. This metric is a monetary value and returned in the customer's
	// currency by default. See the metrics_currency parameter at
	// https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause
	LeadRevenueMicros int64 `json:"leadRevenueMicros,omitempty,string"`
	// LeadUnitsSold: Lead units sold is the total number of products sold as a
	// result of advertising the same product. How it works: You report conversions
	// with cart data for completed purchases on your website. If the ad that was
	// interacted with before the purchase has an associated product (see Shopping
	// Ads) then this product is considered the advertised product. Any product
	// included in the order the customer places is a sold product. If the
	// advertised and sold products match, then the total number of these products
	// sold is shown under lead units sold. Example: Someone clicked on a Shopping
	// ad for a hat then bought the same hat, a shirt and a jacket. The lead units
	// sold in this order is 1. This metric is only available if you report
	// conversions with cart data.
	LeadUnitsSold float64 `json:"leadUnitsSold,omitempty"`
	// MobileFriendlyClicksPercentage: The percentage of mobile clicks that go to a
	// mobile-friendly page.
	MobileFriendlyClicksPercentage float64 `json:"mobileFriendlyClicksPercentage,omitempty"`
	// Orders: Orders is the total number of purchase conversions you received
	// attributed to your ads. How it works: You report conversions with cart data
	// for completed purchases on your website. If a conversion is attributed to
	// previous interactions with your ads (clicks for text or Shopping ads, views
	// for video ads etc.) it's counted as an order. Example: Someone clicked on a
	// Shopping ad for a hat then bought the same hat and a shirt in an order on
	// your website. Even though they bought 2 products, this would count as 1
	// order. This metric is only available if you report conversions with cart
	// data.
	Orders float64 `json:"orders,omitempty"`
	// RawEventConversionMetrics: The raw event conversion metrics.
	RawEventConversionMetrics []*GoogleAdsSearchads360V23Common__Value `json:"rawEventConversionMetrics,omitempty"`
	// RevenueMicros: Revenue is the total amount you made from orders attributed
	// to your ads. How it works: You report conversions with cart data for
	// completed purchases on your website. Revenue is the total value of all the
	// orders you received attributed to your ads, minus any discount. Example:
	// Someone clicked on a Shopping ad for a hat then bought the same hat and a
	// shirt in an order from your website. The hat is priced $10 and the shirt is
	// priced $20. The entire order has a $5 discount. The revenue from this order
	// is $25 = ($10 + $20) - $5. This metric is only available if you report
	// conversions with cart data.
	RevenueMicros int64 `json:"revenueMicros,omitempty,string"`
	// SearchAbsoluteTopImpressionShare: The percentage of the customer's Shopping
	// or Search ad impressions that are shown in the most prominent Shopping
	// position. See https://support.google.com/sa360/answer/9566729 for details.
	// Any value below 0.1 is reported as 0.0999.
	SearchAbsoluteTopImpressionShare float64 `json:"searchAbsoluteTopImpressionShare,omitempty"`
	// SearchBudgetLostAbsoluteTopImpressionShare: The number estimating how often
	// your ad wasn't the very first ad among the top ads in the search results due
	// to a low budget. Note: Search budget lost absolute top impression share is
	// reported in the range of 0 to 0.9. Any value above 0.9 is reported as
	// 0.9001.
	SearchBudgetLostAbsoluteTopImpressionShare float64 `json:"searchBudgetLostAbsoluteTopImpressionShare,omitempty"`
	// SearchBudgetLostImpressionShare: The estimated percent of times that your ad
	// was eligible to show on the Search Network but didn't because your budget
	// was too low. Note: Search budget lost impression share is reported in the
	// range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
	SearchBudgetLostImpressionShare float64 `json:"searchBudgetLostImpressionShare,omitempty"`
	// SearchBudgetLostTopImpressionShare: The number estimating how often your ad
	// didn't show adjacent to the top organic search results due to a low budget.
	// Note: Search budget lost top impression share is reported in the range of 0
	// to 0.9. Any value above 0.9 is reported as 0.9001.
	SearchBudgetLostTopImpressionShare float64 `json:"searchBudgetLostTopImpressionShare,omitempty"`
	// SearchClickShare: The number of clicks you've received on the Search Network
	// divided by the estimated number of clicks you were eligible to receive.
	// Note: Search click share is reported in the range of 0.1 to 1. Any value
	// below 0.1 is reported as 0.0999.
	SearchClickShare float64 `json:"searchClickShare,omitempty"`
	// SearchExactMatchImpressionShare: The impressions you've received divided by
	// the estimated number of impressions you were eligible to receive on the
	// Search Network for search terms that matched your keywords exactly (or were
	// close variants of your keyword), regardless of your keyword match types.
	// Note: Search exact match impression share is reported in the range of 0.1 to
	// 1. Any value below 0.1 is reported as 0.0999.
	SearchExactMatchImpressionShare float64 `json:"searchExactMatchImpressionShare,omitempty"`
	// SearchImpressionShare: The impressions you've received on the Search Network
	// divided by the estimated number of impressions you were eligible to receive.
	// Note: Search impression share is reported in the range of 0.1 to 1. Any
	// value below 0.1 is reported as 0.0999.
	SearchImpressionShare float64 `json:"searchImpressionShare,omitempty"`
	// SearchRankLostAbsoluteTopImpressionShare: The number estimating how often
	// your ad wasn't the very first ad among the top ads in the search results due
	// to poor Ad Rank. Note: Search rank lost absolute top impression share is
	// reported in the range of 0 to 0.9. Any value above 0.9 is reported as
	// 0.9001.
	SearchRankLostAbsoluteTopImpressionShare float64 `json:"searchRankLostAbsoluteTopImpressionShare,omitempty"`
	// SearchRankLostImpressionShare: The estimated percentage of impressions on
	// the Search Network that your ads didn't receive due to poor Ad Rank. Note:
	// Search rank lost impression share is reported in the range of 0 to 0.9. Any
	// value above 0.9 is reported as 0.9001.
	SearchRankLostImpressionShare float64 `json:"searchRankLostImpressionShare,omitempty"`
	// SearchRankLostTopImpressionShare: The number estimating how often your ad
	// didn't show adjacent to the top organic search results due to poor Ad Rank.
	// Note: Search rank lost top impression share is reported in the range of 0 to
	// 0.9. Any value above 0.9 is reported as 0.9001.
	SearchRankLostTopImpressionShare float64 `json:"searchRankLostTopImpressionShare,omitempty"`
	// SearchTopImpressionShare: The impressions you've received among the top ads
	// compared to the estimated number of impressions you were eligible to receive
	// among the top ads. Note: Search top impression share is reported in the
	// range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. Top ads are
	// generally above the top organic results, although they may show below the
	// top organic results on certain queries.
	SearchTopImpressionShare float64 `json:"searchTopImpressionShare,omitempty"`
	// TopImpressionPercentage: The percent of your ad impressions that are shown
	// adjacent to the top organic search results.
	TopImpressionPercentage float64 `json:"topImpressionPercentage,omitempty"`
	// UniqueUsers: The number of unique users who saw your ad during the requested
	// time period. This metric cannot be aggregated, and can only be requested for
	// date ranges of 92 days or less. This metric is available for following
	// campaign types - Display, Video, Discovery and App.
	UniqueUsers int64 `json:"uniqueUsers,omitempty,string"`
	// UnitsSold: Units sold is the total number of products sold from orders
	// attributed to your ads. How it works: You report conversions with cart data
	// for completed purchases on your website. Units sold is the total number of
	// products sold from all orders attributed to your ads. Example: Someone
	// clicked on a Shopping ad for a hat then bought the same hat, a shirt and a
	// jacket. The units sold in this order is 3. This metric is only available if
	// you report conversions with cart data.
	UnitsSold float64 `json:"unitsSold,omitempty"`
	// ValuePerAllConversions: The value of all conversions divided by the number
	// of all conversions.
	ValuePerAllConversions float64 `json:"valuePerAllConversions,omitempty"`
	// ValuePerAllConversionsByConversionDate: The value of all conversions divided
	// by the number of all conversions. When this column is selected with date,
	// the values in date column means the conversion date. Details for the
	// by_conversion_date columns are available at
	// https://support.google.com/sa360/answer/9250611.
	ValuePerAllConversionsByConversionDate float64 `json:"valuePerAllConversionsByConversionDate,omitempty"`
	// ValuePerConversion: The value of biddable conversion divided by the number
	// of biddable conversions. Shows how much, on average, each of the biddable
	// conversions is worth.
	ValuePerConversion float64 `json:"valuePerConversion,omitempty"`
	// ValuePerConversionsByConversionDate: Biddable conversions value by
	// conversion date divided by biddable conversions by conversion date. Shows
	// how much, on average, each of the biddable conversions is worth (by
	// conversion date). When this column is selected with date, the values in date
	// column means the conversion date.
	ValuePerConversionsByConversionDate float64 `json:"valuePerConversionsByConversionDate,omitempty"`
	// Visits: Clicks that Search Ads 360 has successfully recorded and forwarded
	// to an advertiser's landing page.
	Visits float64 `json:"visits,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AbsoluteTopImpressionPercentage") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AbsoluteTopImpressionPercentage")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Metrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Metrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__Metrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__Metrics
	var s1 struct {
		AbsoluteTopImpressionPercentage                   gensupport.JSONFloat64 `json:"absoluteTopImpressionPercentage"`
		AllConversions                                    gensupport.JSONFloat64 `json:"allConversions"`
		AllConversionsByConversionDate                    gensupport.JSONFloat64 `json:"allConversionsByConversionDate"`
		AllConversionsFromClickToCall                     gensupport.JSONFloat64 `json:"allConversionsFromClickToCall"`
		AllConversionsFromDirections                      gensupport.JSONFloat64 `json:"allConversionsFromDirections"`
		AllConversionsFromInteractionsRate                gensupport.JSONFloat64 `json:"allConversionsFromInteractionsRate"`
		AllConversionsFromInteractionsValuePerInteraction gensupport.JSONFloat64 `json:"allConversionsFromInteractionsValuePerInteraction"`
		AllConversionsFromMenu                            gensupport.JSONFloat64 `json:"allConversionsFromMenu"`
		AllConversionsFromOrder                           gensupport.JSONFloat64 `json:"allConversionsFromOrder"`
		AllConversionsFromOtherEngagement                 gensupport.JSONFloat64 `json:"allConversionsFromOtherEngagement"`
		AllConversionsFromStoreVisit                      gensupport.JSONFloat64 `json:"allConversionsFromStoreVisit"`
		AllConversionsFromStoreWebsite                    gensupport.JSONFloat64 `json:"allConversionsFromStoreWebsite"`
		AllConversionsValue                               gensupport.JSONFloat64 `json:"allConversionsValue"`
		AllConversionsValueByConversionDate               gensupport.JSONFloat64 `json:"allConversionsValueByConversionDate"`
		AllConversionsValuePerCost                        gensupport.JSONFloat64 `json:"allConversionsValuePerCost"`
		AverageCartSize                                   gensupport.JSONFloat64 `json:"averageCartSize"`
		AverageCost                                       gensupport.JSONFloat64 `json:"averageCost"`
		AverageCpc                                        gensupport.JSONFloat64 `json:"averageCpc"`
		AverageCpm                                        gensupport.JSONFloat64 `json:"averageCpm"`
		AverageImpressionFrequencyPerUser                 gensupport.JSONFloat64 `json:"averageImpressionFrequencyPerUser"`
		AverageQualityScore                               gensupport.JSONFloat64 `json:"averageQualityScore"`
		ClientAccountConversions                          gensupport.JSONFloat64 `json:"clientAccountConversions"`
		ClientAccountConversionsValue                     gensupport.JSONFloat64 `json:"clientAccountConversionsValue"`
		ClientAccountCrossSellUnitsSold                   gensupport.JSONFloat64 `json:"clientAccountCrossSellUnitsSold"`
		ClientAccountLeadUnitsSold                        gensupport.JSONFloat64 `json:"clientAccountLeadUnitsSold"`
		ContentBudgetLostImpressionShare                  gensupport.JSONFloat64 `json:"contentBudgetLostImpressionShare"`
		ContentImpressionShare                            gensupport.JSONFloat64 `json:"contentImpressionShare"`
		ContentRankLostImpressionShare                    gensupport.JSONFloat64 `json:"contentRankLostImpressionShare"`
		Conversions                                       gensupport.JSONFloat64 `json:"conversions"`
		ConversionsByConversionDate                       gensupport.JSONFloat64 `json:"conversionsByConversionDate"`
		ConversionsFromInteractionsRate                   gensupport.JSONFloat64 `json:"conversionsFromInteractionsRate"`
		ConversionsFromInteractionsValuePerInteraction    gensupport.JSONFloat64 `json:"conversionsFromInteractionsValuePerInteraction"`
		ConversionsValue                                  gensupport.JSONFloat64 `json:"conversionsValue"`
		ConversionsValueByConversionDate                  gensupport.JSONFloat64 `json:"conversionsValueByConversionDate"`
		ConversionsValuePerCost                           gensupport.JSONFloat64 `json:"conversionsValuePerCost"`
		CostPerAllConversions                             gensupport.JSONFloat64 `json:"costPerAllConversions"`
		CostPerConversion                                 gensupport.JSONFloat64 `json:"costPerConversion"`
		CostPerCurrentModelAttributedConversion           gensupport.JSONFloat64 `json:"costPerCurrentModelAttributedConversion"`
		CrossDeviceConversions                            gensupport.JSONFloat64 `json:"crossDeviceConversions"`
		CrossDeviceConversionsByConversionDate            gensupport.JSONFloat64 `json:"crossDeviceConversionsByConversionDate"`
		CrossDeviceConversionsValue                       gensupport.JSONFloat64 `json:"crossDeviceConversionsValue"`
		CrossDeviceConversionsValueByConversionDate       gensupport.JSONFloat64 `json:"crossDeviceConversionsValueByConversionDate"`
		CrossSellUnitsSold                                gensupport.JSONFloat64 `json:"crossSellUnitsSold"`
		Ctr                                               gensupport.JSONFloat64 `json:"ctr"`
		GeneralInvalidClickRate                           gensupport.JSONFloat64 `json:"generalInvalidClickRate"`
		GrossProfitMargin                                 gensupport.JSONFloat64 `json:"grossProfitMargin"`
		InteractionRate                                   gensupport.JSONFloat64 `json:"interactionRate"`
		InvalidClickRate                                  gensupport.JSONFloat64 `json:"invalidClickRate"`
		LeadUnitsSold                                     gensupport.JSONFloat64 `json:"leadUnitsSold"`
		MobileFriendlyClicksPercentage                    gensupport.JSONFloat64 `json:"mobileFriendlyClicksPercentage"`
		Orders                                            gensupport.JSONFloat64 `json:"orders"`
		SearchAbsoluteTopImpressionShare                  gensupport.JSONFloat64 `json:"searchAbsoluteTopImpressionShare"`
		SearchBudgetLostAbsoluteTopImpressionShare        gensupport.JSONFloat64 `json:"searchBudgetLostAbsoluteTopImpressionShare"`
		SearchBudgetLostImpressionShare                   gensupport.JSONFloat64 `json:"searchBudgetLostImpressionShare"`
		SearchBudgetLostTopImpressionShare                gensupport.JSONFloat64 `json:"searchBudgetLostTopImpressionShare"`
		SearchClickShare                                  gensupport.JSONFloat64 `json:"searchClickShare"`
		SearchExactMatchImpressionShare                   gensupport.JSONFloat64 `json:"searchExactMatchImpressionShare"`
		SearchImpressionShare                             gensupport.JSONFloat64 `json:"searchImpressionShare"`
		SearchRankLostAbsoluteTopImpressionShare          gensupport.JSONFloat64 `json:"searchRankLostAbsoluteTopImpressionShare"`
		SearchRankLostImpressionShare                     gensupport.JSONFloat64 `json:"searchRankLostImpressionShare"`
		SearchRankLostTopImpressionShare                  gensupport.JSONFloat64 `json:"searchRankLostTopImpressionShare"`
		SearchTopImpressionShare                          gensupport.JSONFloat64 `json:"searchTopImpressionShare"`
		TopImpressionPercentage                           gensupport.JSONFloat64 `json:"topImpressionPercentage"`
		UnitsSold                                         gensupport.JSONFloat64 `json:"unitsSold"`
		ValuePerAllConversions                            gensupport.JSONFloat64 `json:"valuePerAllConversions"`
		ValuePerAllConversionsByConversionDate            gensupport.JSONFloat64 `json:"valuePerAllConversionsByConversionDate"`
		ValuePerConversion                                gensupport.JSONFloat64 `json:"valuePerConversion"`
		ValuePerConversionsByConversionDate               gensupport.JSONFloat64 `json:"valuePerConversionsByConversionDate"`
		Visits                                            gensupport.JSONFloat64 `json:"visits"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AbsoluteTopImpressionPercentage = float64(s1.AbsoluteTopImpressionPercentage)
	s.AllConversions = float64(s1.AllConversions)
	s.AllConversionsByConversionDate = float64(s1.AllConversionsByConversionDate)
	s.AllConversionsFromClickToCall = float64(s1.AllConversionsFromClickToCall)
	s.AllConversionsFromDirections = float64(s1.AllConversionsFromDirections)
	s.AllConversionsFromInteractionsRate = float64(s1.AllConversionsFromInteractionsRate)
	s.AllConversionsFromInteractionsValuePerInteraction = float64(s1.AllConversionsFromInteractionsValuePerInteraction)
	s.AllConversionsFromMenu = float64(s1.AllConversionsFromMenu)
	s.AllConversionsFromOrder = float64(s1.AllConversionsFromOrder)
	s.AllConversionsFromOtherEngagement = float64(s1.AllConversionsFromOtherEngagement)
	s.AllConversionsFromStoreVisit = float64(s1.AllConversionsFromStoreVisit)
	s.AllConversionsFromStoreWebsite = float64(s1.AllConversionsFromStoreWebsite)
	s.AllConversionsValue = float64(s1.AllConversionsValue)
	s.AllConversionsValueByConversionDate = float64(s1.AllConversionsValueByConversionDate)
	s.AllConversionsValuePerCost = float64(s1.AllConversionsValuePerCost)
	s.AverageCartSize = float64(s1.AverageCartSize)
	s.AverageCost = float64(s1.AverageCost)
	s.AverageCpc = float64(s1.AverageCpc)
	s.AverageCpm = float64(s1.AverageCpm)
	s.AverageImpressionFrequencyPerUser = float64(s1.AverageImpressionFrequencyPerUser)
	s.AverageQualityScore = float64(s1.AverageQualityScore)
	s.ClientAccountConversions = float64(s1.ClientAccountConversions)
	s.ClientAccountConversionsValue = float64(s1.ClientAccountConversionsValue)
	s.ClientAccountCrossSellUnitsSold = float64(s1.ClientAccountCrossSellUnitsSold)
	s.ClientAccountLeadUnitsSold = float64(s1.ClientAccountLeadUnitsSold)
	s.ContentBudgetLostImpressionShare = float64(s1.ContentBudgetLostImpressionShare)
	s.ContentImpressionShare = float64(s1.ContentImpressionShare)
	s.ContentRankLostImpressionShare = float64(s1.ContentRankLostImpressionShare)
	s.Conversions = float64(s1.Conversions)
	s.ConversionsByConversionDate = float64(s1.ConversionsByConversionDate)
	s.ConversionsFromInteractionsRate = float64(s1.ConversionsFromInteractionsRate)
	s.ConversionsFromInteractionsValuePerInteraction = float64(s1.ConversionsFromInteractionsValuePerInteraction)
	s.ConversionsValue = float64(s1.ConversionsValue)
	s.ConversionsValueByConversionDate = float64(s1.ConversionsValueByConversionDate)
	s.ConversionsValuePerCost = float64(s1.ConversionsValuePerCost)
	s.CostPerAllConversions = float64(s1.CostPerAllConversions)
	s.CostPerConversion = float64(s1.CostPerConversion)
	s.CostPerCurrentModelAttributedConversion = float64(s1.CostPerCurrentModelAttributedConversion)
	s.CrossDeviceConversions = float64(s1.CrossDeviceConversions)
	s.CrossDeviceConversionsByConversionDate = float64(s1.CrossDeviceConversionsByConversionDate)
	s.CrossDeviceConversionsValue = float64(s1.CrossDeviceConversionsValue)
	s.CrossDeviceConversionsValueByConversionDate = float64(s1.CrossDeviceConversionsValueByConversionDate)
	s.CrossSellUnitsSold = float64(s1.CrossSellUnitsSold)
	s.Ctr = float64(s1.Ctr)
	s.GeneralInvalidClickRate = float64(s1.GeneralInvalidClickRate)
	s.GrossProfitMargin = float64(s1.GrossProfitMargin)
	s.InteractionRate = float64(s1.InteractionRate)
	s.InvalidClickRate = float64(s1.InvalidClickRate)
	s.LeadUnitsSold = float64(s1.LeadUnitsSold)
	s.MobileFriendlyClicksPercentage = float64(s1.MobileFriendlyClicksPercentage)
	s.Orders = float64(s1.Orders)
	s.SearchAbsoluteTopImpressionShare = float64(s1.SearchAbsoluteTopImpressionShare)
	s.SearchBudgetLostAbsoluteTopImpressionShare = float64(s1.SearchBudgetLostAbsoluteTopImpressionShare)
	s.SearchBudgetLostImpressionShare = float64(s1.SearchBudgetLostImpressionShare)
	s.SearchBudgetLostTopImpressionShare = float64(s1.SearchBudgetLostTopImpressionShare)
	s.SearchClickShare = float64(s1.SearchClickShare)
	s.SearchExactMatchImpressionShare = float64(s1.SearchExactMatchImpressionShare)
	s.SearchImpressionShare = float64(s1.SearchImpressionShare)
	s.SearchRankLostAbsoluteTopImpressionShare = float64(s1.SearchRankLostAbsoluteTopImpressionShare)
	s.SearchRankLostImpressionShare = float64(s1.SearchRankLostImpressionShare)
	s.SearchRankLostTopImpressionShare = float64(s1.SearchRankLostTopImpressionShare)
	s.SearchTopImpressionShare = float64(s1.SearchTopImpressionShare)
	s.TopImpressionPercentage = float64(s1.TopImpressionPercentage)
	s.UnitsSold = float64(s1.UnitsSold)
	s.ValuePerAllConversions = float64(s1.ValuePerAllConversions)
	s.ValuePerAllConversionsByConversionDate = float64(s1.ValuePerAllConversionsByConversionDate)
	s.ValuePerConversion = float64(s1.ValuePerConversion)
	s.ValuePerConversionsByConversionDate = float64(s1.ValuePerConversionsByConversionDate)
	s.Visits = float64(s1.Visits)
	return nil
}

// GoogleAdsSearchads360V23Common__MobileAppAsset: An asset representing a
// mobile app.
type GoogleAdsSearchads360V23Common__MobileAppAsset struct {
	// AppId: Required. A string that uniquely identifies a mobile application. It
	// should just contain the platform native id, like "com.android.ebay" for
	// Android or "12345689" for iOS.
	AppId string `json:"appId,omitempty"`
	// AppStore: Required. The application store that distributes this specific
	// app.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Mobile app vendor for Apple app store.
	//   "GOOGLE_APP_STORE" - Mobile app vendor for Google app store.
	AppStore string `json:"appStore,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// LinkText: Required. The visible text displayed when the link is rendered in
	// an ad. The length of this string should be between 1 and 25, inclusive.
	LinkText string `json:"linkText,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MobileAppAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MobileAppAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MobileAppCategoryInfo: A mobile app category
// criterion.
type GoogleAdsSearchads360V23Common__MobileAppCategoryInfo struct {
	// MobileAppCategoryConstant: The mobile app category constant resource name.
	MobileAppCategoryConstant string `json:"mobileAppCategoryConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MobileAppCategoryConstant")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MobileAppCategoryConstant") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MobileAppCategoryInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MobileAppCategoryInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MobileApplicationInfo: A mobile application
// criterion.
type GoogleAdsSearchads360V23Common__MobileApplicationInfo struct {
	// AppId: A string that uniquely identifies a mobile application to Google Ads
	// API. The format of this string is "{platform}-{platform_native_id}", where
	// platform is "1" for iOS apps and "2" for Android apps, and where
	// platform_native_id is the mobile application identifier native to the
	// corresponding platform. For iOS, this native identifier is the 9 digit
	// string that appears at the end of an App Store URL (for example, "476943146"
	// for "Flood-It! 2" whose App Store link is
	// "http://itunes.apple.com/us/app/flood-it!-2/id476943146"). For Android, this
	// native identifier is the application's package name (for example,
	// "com.labpixies.colordrips" for "Color Drips" given Google Play link
	// "https://play.google.com/store/apps/details?id=com.labpixies.colordrips"). A
	// well formed app id for Google Ads API would thus be "1-476943146" for iOS
	// and "2-com.labpixies.colordrips" for Android. This field is required and
	// must be set in CREATE operations.
	AppId string `json:"appId,omitempty"`
	// Name: Name of this mobile application.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MobileApplicationInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MobileApplicationInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MobileDeviceInfo: A mobile device criterion.
type GoogleAdsSearchads360V23Common__MobileDeviceInfo struct {
	// MobileDeviceConstant: The mobile device constant resource name.
	MobileDeviceConstant string `json:"mobileDeviceConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MobileDeviceConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MobileDeviceConstant") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MobileDeviceInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MobileDeviceInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Money: Represents a price in a particular
// currency.
type GoogleAdsSearchads360V23Common__Money struct {
	// AmountMicros: Amount in micros. One million is equivalent to one unit.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// CurrencyCode: Three-character ISO 4217 currency code.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Money) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Money
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__MonthlySearchVolume: Monthly search volume.
type GoogleAdsSearchads360V23Common__MonthlySearchVolume struct {
	// Month: The month of the search volume.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "JANUARY" - January.
	//   "FEBRUARY" - February.
	//   "MARCH" - March.
	//   "APRIL" - April.
	//   "MAY" - May.
	//   "JUNE" - June.
	//   "JULY" - July.
	//   "AUGUST" - August.
	//   "SEPTEMBER" - September.
	//   "OCTOBER" - October.
	//   "NOVEMBER" - November.
	//   "DECEMBER" - December.
	Month string `json:"month,omitempty"`
	// MonthlySearches: Approximate number of searches for the month. A null value
	// indicates the search volume is unavailable for that month.
	MonthlySearches int64 `json:"monthlySearches,omitempty,string"`
	// Year: The year of the search volume (for example, 2020).
	Year int64 `json:"year,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Month") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Month") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__MonthlySearchVolume) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__MonthlySearchVolume
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__NegativeKeywordListInfo: A Negative Keyword
// List criterion. Represents a shared set of negative keywords that can be
// excluded at the account-level. Only one negative keyword list criterion can
// be attached per account.
type GoogleAdsSearchads360V23Common__NegativeKeywordListInfo struct {
	// SharedSet: The NegativeKeywordListInfo shared set resource name.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SharedSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__NegativeKeywordListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__NegativeKeywordListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__OfflineUserAddressInfo: Address identifier
// of offline data.
type GoogleAdsSearchads360V23Common__OfflineUserAddressInfo struct {
	// City: City of the address. Only accepted for Store Sales.
	City string `json:"city,omitempty"`
	// CountryCode: 2-letter country code in ISO-3166-1 alpha-2 of the user's
	// address.
	CountryCode string `json:"countryCode,omitempty"`
	// HashedFirstName: First name of the user, which is hashed as SHA-256 after
	// normalized (Lowercase all characters; Remove any extra spaces before, after,
	// and in between).
	HashedFirstName string `json:"hashedFirstName,omitempty"`
	// HashedLastName: Last name of the user, which is hashed as SHA-256 after
	// normalized (lower case only and no punctuation).
	HashedLastName string `json:"hashedLastName,omitempty"`
	// HashedStreetAddress: The street address of the user hashed using SHA-256
	// hash function after normalization (lower case only). Only accepted for
	// ConversionAdjustmentUploadService.
	HashedStreetAddress string `json:"hashedStreetAddress,omitempty"`
	// PostalCode: Postal code of the user's address.
	PostalCode string `json:"postalCode,omitempty"`
	// State: State code of the address. Only accepted for Store Sales.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "City") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "City") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__OfflineUserAddressInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__OfflineUserAddressInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo: Represents an
// operating system version to be targeted.
type GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo struct {
	// OperatingSystemVersionConstant: The operating system version constant
	// resource name.
	OperatingSystemVersionConstant string `json:"operatingSystemVersionConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "OperatingSystemVersionConstant") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OperatingSystemVersionConstant")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PageFeedAsset: A Page Feed asset.
type GoogleAdsSearchads360V23Common__PageFeedAsset struct {
	// Labels: Labels used to group the page urls.
	Labels []string `json:"labels,omitempty"`
	// PageUrl: Required. The webpage that advertisers want to target.
	PageUrl string `json:"pageUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PageFeedAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PageFeedAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ParentalStatusDimension: Dimension
// specifying users by their parental status.
type GoogleAdsSearchads360V23Common__ParentalStatusDimension struct {
	// IncludeUndetermined: Include users whose parental status is undetermined.
	IncludeUndetermined bool `json:"includeUndetermined,omitempty"`
	// ParentalStatuses: Included parental status demographic segments.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PARENT" - Parent.
	//   "NOT_A_PARENT" - Not a parent.
	//   "UNDETERMINED" - Undetermined parental status.
	ParentalStatuses []string `json:"parentalStatuses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeUndetermined") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeUndetermined") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ParentalStatusDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ParentalStatusDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ParentalStatusInfo: A parental status
// criterion.
type GoogleAdsSearchads360V23Common__ParentalStatusInfo struct {
	// Type: Type of the parental status.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PARENT" - Parent.
	//   "NOT_A_PARENT" - Not a parent.
	//   "UNDETERMINED" - Undetermined parental status.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Type") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ParentalStatusInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ParentalStatusInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PercentCpc: A bidding strategy where bids
// are a fraction of the advertised price for some good or service.
type GoogleAdsSearchads360V23Common__PercentCpc struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// This is an optional field entered by the advertiser and specified in local
	// micros. Note: A zero value is interpreted in the same way as having
	// bid_ceiling undefined.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// EnhancedCpcEnabled: Adjusts the bid for each auction upward or downward,
	// depending on the likelihood of a conversion. Individual bids may exceed
	// cpc_bid_ceiling_micros, but the average bid amount for a campaign should
	// not.
	EnhancedCpcEnabled bool `json:"enhancedCpcEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PercentCpc) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PercentCpc
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint: Projected
// metrics for a specific percent CPC amount. Only Hotel advertising channel
// type supports this field.
type GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint struct {
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions in
	// local currency.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// PercentCpcBidMicros: The simulated percent CPC upon which projected metrics
	// are based. Percent CPC expressed as fraction of the advertised price for
	// some good or service. The value stored here is 1,000,000 * [fraction].
	PercentCpcBidMicros int64 `json:"percentCpcBidMicros,omitempty,string"`
	// TopSlotImpressions: Projected number of top slot impressions.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BiddableConversions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddableConversions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint
	var s1 struct {
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	return nil
}

// GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList: A
// container for simulation points for simulations of type PERCENT_CPC_BID.
type GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList struct {
	// Points: Projected metrics for a series of percent CPC bid amounts.
	Points []*GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PlacementInfo: A placement criterion. This
// can be used to modify bids for sites when targeting the content network.
type GoogleAdsSearchads360V23Common__PlacementInfo struct {
	// Url: URL of the placement. For example, "http://www.domain.com".
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Url") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Url") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PlacementInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PlacementInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PlacementListInfo: A Placement List
// criterion. Represents a shared set of placements that can be excluded at the
// account-level.
type GoogleAdsSearchads360V23Common__PlacementListInfo struct {
	// SharedSet: The PlacementListInfo shared set resource name.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SharedSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PlacementListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PlacementListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicySummary: Contains policy summary
// information.
type GoogleAdsSearchads360V23Common__PolicySummary struct {
	// ApprovalStatus: The overall approval status, which is calculated based on
	// the status of its individual policy topic entries.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISAPPROVED" - Will not serve.
	//   "APPROVED_LIMITED" - Serves with restrictions.
	//   "APPROVED" - Serves without restrictions.
	//   "AREA_OF_INTEREST_ONLY" - Will not serve in targeted countries, but may
	// serve for users who are searching for information about the targeted
	// countries.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// PolicyTopicEntries: The list of policy findings.
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ReviewStatus: Where in the review process the resource is.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "REVIEW_IN_PROGRESS" - Currently under review.
	//   "REVIEWED" - Primary review complete. Other reviews may be continuing.
	//   "UNDER_APPEAL" - The resource has been resubmitted for approval or its
	// policy decision has been appealed.
	//   "ELIGIBLE_MAY_SERVE" - The resource is eligible and may be serving but
	// could still undergo further review.
	ReviewStatus string `json:"reviewStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicConstraint: Describes the effect
// on serving that a policy topic entry will have.
type GoogleAdsSearchads360V23Common__PolicyTopicConstraint struct {
	// CertificateDomainMismatchInCountryList: Countries where the resource's
	// domain is not covered by the certificates associated with it.
	CertificateDomainMismatchInCountryList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"certificateDomainMismatchInCountryList,omitempty"`
	// CertificateMissingInCountryList: Countries where a certificate is required
	// for serving.
	CertificateMissingInCountryList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"certificateMissingInCountryList,omitempty"`
	// CountryConstraintList: Countries where the resource cannot serve.
	CountryConstraintList *GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList `json:"countryConstraintList,omitempty"`
	// ResellerConstraint: Reseller constraint.
	ResellerConstraint *GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint `json:"resellerConstraint,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CertificateDomainMismatchInCountryList") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "CertificateDomainMismatchInCountryList") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted from
	// API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields
	// for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicEntry: Policy finding attached to
// a resource (for example, alcohol policy associated with a site that sells
// alcohol). Each PolicyTopicEntry has a topic that indicates the specific ads
// policy the entry is about and a type to indicate the effect that the entry
// will have on serving. It may optionally have one or more evidences that
// indicate the reason for the finding. It may also optionally have one or more
// constraints that provide details about how serving may be restricted.
type GoogleAdsSearchads360V23Common__PolicyTopicEntry struct {
	// Constraints: Indicates how serving of this resource may be affected (for
	// example, not serving in a country).
	Constraints []*GoogleAdsSearchads360V23Common__PolicyTopicConstraint `json:"constraints,omitempty"`
	// Evidences: Additional information that explains policy finding (for example,
	// the brand name for a trademark finding).
	Evidences []*GoogleAdsSearchads360V23Common__PolicyTopicEvidence `json:"evidences,omitempty"`
	// Topic: Policy topic this finding refers to. For example, "ALCOHOL",
	// "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible
	// policy topics is not fixed for a particular API version and may change at
	// any time.
	Topic string `json:"topic,omitempty"`
	// Type: Describes the negative or positive effect this policy will have on
	// serving.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "PROHIBITED" - The resource will not be served.
	//   "LIMITED" - The resource will not be served under some circumstances.
	//   "FULLY_LIMITED" - The resource cannot serve at all because of the current
	// targeting criteria.
	//   "DESCRIPTIVE" - May be of interest, but does not limit how the resource is
	// served.
	//   "BROADENING" - Could increase coverage beyond normal.
	//   "AREA_OF_INTEREST_ONLY" - Constrained for all targeted countries, but may
	// serve in other countries through area of interest.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Constraints") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Constraints") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicEntry) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicEntry
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyTopicEvidence: Additional information
// that explains a policy finding.
type GoogleAdsSearchads360V23Common__PolicyTopicEvidence struct {
	// DestinationMismatch: Mismatch between the destinations of a resource's URLs.
	DestinationMismatch *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch `json:"destinationMismatch,omitempty"`
	// DestinationNotWorking: Details when the destination is returning an HTTP
	// error code or isn't functional in all locations for commonly used devices.
	DestinationNotWorking *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking `json:"destinationNotWorking,omitempty"`
	// DestinationTextList: The text in the destination of the resource that is
	// causing a policy finding.
	DestinationTextList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList `json:"destinationTextList,omitempty"`
	// LanguageCode: The language the resource was detected to be written in. This
	// is an IETF language tag such as "en-US".
	LanguageCode string `json:"languageCode,omitempty"`
	// TextList: List of evidence found in the text of a resource.
	TextList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList `json:"textList,omitempty"`
	// WebsiteList: List of websites linked with this resource.
	WebsiteList *GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList `json:"websiteList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationMismatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationMismatch") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyTopicEvidence) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyTopicEvidence
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyValidationParameter: Parameter for
// controlling how policy exemption is done.
type GoogleAdsSearchads360V23Common__PolicyValidationParameter struct {
	// ExemptPolicyViolationKeys: The list of policy violation keys that should not
	// cause a `PolicyViolationError` to be reported. Not all policy violations are
	// exemptable. Refer to the `is_exemptible` field in the returned
	// `PolicyViolationError`. This field is used for keyword policy exemptions. If
	// this field is populated, then `ignorable_policy_topics` must be empty.
	// Resources that violate these policies will be saved, but will not be
	// eligible to serve. They may begin serving at a later time due to a change in
	// policies, re-review of the resource, or a change in advertiser certificates.
	ExemptPolicyViolationKeys []*GoogleAdsSearchads360V23Common__PolicyViolationKey `json:"exemptPolicyViolationKeys,omitempty"`
	// IgnorablePolicyTopics: The list of policy topics that should not cause a
	// `PolicyFindingError` to be reported. This field is used for ad policy
	// exemptions. It corresponds to the `PolicyTopicEntry.topic` field. If this
	// field is populated, then `exempt_policy_violation_keys` must be empty.
	// Resources that violate these policies will be saved, but will not be
	// eligible to serve. They may begin serving at a later time due to a change in
	// policies, re-review of the resource, or a change in advertiser certificates.
	IgnorablePolicyTopics []string `json:"ignorablePolicyTopics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExemptPolicyViolationKeys")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExemptPolicyViolationKeys") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyValidationParameter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyValidationParameter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PolicyViolationKey: Key of the violation.
// The key is used for referring to a violation when filing an exemption
// request.
type GoogleAdsSearchads360V23Common__PolicyViolationKey struct {
	// PolicyName: Unique ID of the violated policy.
	PolicyName string `json:"policyName,omitempty"`
	// ViolatingText: The text that violates the policy if specified. Otherwise,
	// refers to the policy in general (for example, when requesting to be exempt
	// from the whole policy). If not specified for criterion exemptions, the whole
	// policy is implied. Must be specified for ad exemptions.
	ViolatingText string `json:"violatingText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PolicyViolationKey) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PolicyViolationKey
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PriceAsset: An asset representing a list of
// price offers.
type GoogleAdsSearchads360V23Common__PriceAsset struct {
	// LanguageCode: Required. The language of the price asset. Represented as BCP
	// 47 language tag.
	LanguageCode string `json:"languageCode,omitempty"`
	// PriceOfferings: The price offerings of the price asset. The size of this
	// collection should be between 3 and 8, inclusive.
	PriceOfferings []*GoogleAdsSearchads360V23Common__PriceOffering `json:"priceOfferings,omitempty"`
	// PriceQualifier: The price qualifier of the price asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "FROM" - 'From' qualifier for the price.
	//   "UP_TO" - 'Up to' qualifier for the price.
	//   "AVERAGE" - 'Average' qualifier for the price.
	PriceQualifier string `json:"priceQualifier,omitempty"`
	// Type: Required. The type of the price asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BRANDS" - The type for showing a list of brands.
	//   "EVENTS" - The type for showing a list of events.
	//   "LOCATIONS" - The type for showing locations relevant to your business.
	//   "NEIGHBORHOODS" - The type for showing sub-regions or districts within a
	// city or region.
	//   "PRODUCT_CATEGORIES" - The type for showing a collection of product
	// categories.
	//   "PRODUCT_TIERS" - The type for showing a collection of related product
	// tiers.
	//   "SERVICES" - The type for showing a collection of services offered by your
	// business.
	//   "SERVICE_CATEGORIES" - The type for showing a collection of service
	// categories.
	//   "SERVICE_TIERS" - The type for showing a collection of related service
	// tiers.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PriceAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PriceAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PriceOffering: A single price offering
// within a PriceAsset.
type GoogleAdsSearchads360V23Common__PriceOffering struct {
	// Description: Required. The description of the price offering. The length of
	// this string should be between 1 and 25, inclusive.
	Description string `json:"description,omitempty"`
	// FinalMobileUrl: The final mobile URL after all cross domain redirects.
	FinalMobileUrl string `json:"finalMobileUrl,omitempty"`
	// FinalUrl: Required. The final URL after all cross domain redirects.
	FinalUrl string `json:"finalUrl,omitempty"`
	// Header: Required. The header of the price offering. The length of this
	// string should be between 1 and 25, inclusive.
	Header string `json:"header,omitempty"`
	// Price: Required. The price value of the price offering.
	Price *GoogleAdsSearchads360V23Common__Money `json:"price,omitempty"`
	// Unit: The price unit of the price offering.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PER_HOUR" - Per hour.
	//   "PER_DAY" - Per day.
	//   "PER_WEEK" - Per week.
	//   "PER_MONTH" - Per month.
	//   "PER_YEAR" - Per year.
	//   "PER_NIGHT" - Per night.
	Unit string `json:"unit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PriceOffering) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PriceOffering
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductBrandInfo: Brand of the product.
type GoogleAdsSearchads360V23Common__ProductBrandInfo struct {
	// Value: String value of the product brand.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductBrandInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductBrandInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductCategoryInfo: Category of a product
// offer.
type GoogleAdsSearchads360V23Common__ProductCategoryInfo struct {
	// CategoryId: ID of the product category. This ID is equivalent to the
	// google_product_category ID as described in this article:
	// https://support.google.com/merchants/answer/6324436
	CategoryId int64 `json:"categoryId,omitempty,string"`
	// Level: Level of the product category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductCategoryInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductCategoryInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo: Availability
// of a product offer.
type GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo struct {
	// ChannelExclusivity: Value of the availability.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SINGLE_CHANNEL" - The item is sold through one channel only, either local
	// stores or online as indicated by its ProductChannel.
	//   "MULTI_CHANNEL" - The item is matched to its online or local stores
	// counterpart, indicating it is available for purchase in both
	// ShoppingProductChannels.
	ChannelExclusivity string `json:"channelExclusivity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelExclusivity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelExclusivity") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductChannelExclusivityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductChannelInfo: Locality of a product
// offer.
type GoogleAdsSearchads360V23Common__ProductChannelInfo struct {
	// Channel: Value of the locality.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	Channel string `json:"channel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Channel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductChannelInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductChannelInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductConditionInfo: Condition of a product
// offer.
type GoogleAdsSearchads360V23Common__ProductConditionInfo struct {
	// Condition: Value of the condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Condition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Condition") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductConditionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductConditionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo: Custom attribute
// of a product offer.
type GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo struct {
	// Index: Indicates the index of the custom attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INDEX0" - First product custom attribute.
	//   "INDEX1" - Second product custom attribute.
	//   "INDEX2" - Third product custom attribute.
	//   "INDEX3" - Fourth product custom attribute.
	//   "INDEX4" - Fifth product custom attribute.
	Index string `json:"index,omitempty"`
	// Value: String value of the product custom attribute.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Index") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Index") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductCustomAttributeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductGroupingInfo: Grouping of a product
// offer. This listing dimension is deprecated and it is supported only in
// Display campaigns.
type GoogleAdsSearchads360V23Common__ProductGroupingInfo struct {
	// Value: String value of the product grouping.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductGroupingInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductGroupingInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductItemIdInfo: Item id of a product
// offer.
type GoogleAdsSearchads360V23Common__ProductItemIdInfo struct {
	// Value: Value of the id.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductItemIdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductItemIdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductLabelsInfo: Labels of a product
// offer. This listing dimension is deprecated and it is supported only in
// Display campaigns.
type GoogleAdsSearchads360V23Common__ProductLabelsInfo struct {
	// Value: String value of the product labels.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductLabelsInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductLabelsInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo: Legacy condition
// of a product offer. This listing dimension is deprecated and it is supported
// only in Display campaigns.
type GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo struct {
	// Value: String value of the product legacy condition.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductLegacyConditionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductTypeFullInfo: Full type of a product
// offer. This listing dimension is deprecated and it is supported only in
// Display campaigns.
type GoogleAdsSearchads360V23Common__ProductTypeFullInfo struct {
	// Value: String value of the product full type.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductTypeFullInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductTypeFullInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProductTypeInfo: Type of a product offer.
type GoogleAdsSearchads360V23Common__ProductTypeInfo struct {
	// Level: Level of the type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// Value: Value of the type.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Level") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Level") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProductTypeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProductTypeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PromotionAsset: A Promotion asset.
type GoogleAdsSearchads360V23Common__PromotionAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// DiscountModifier: A modifier for qualification of the discount.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UP_TO" - 'Up to'.
	DiscountModifier string `json:"discountModifier,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// LanguageCode: The language of the promotion. Represented as BCP 47 language
	// tag.
	LanguageCode string `json:"languageCode,omitempty"`
	// MoneyAmountOff: Money amount off for discount in the promotion. Either this
	// or percent_off is required.
	MoneyAmountOff *GoogleAdsSearchads360V23Common__Money `json:"moneyAmountOff,omitempty"`
	// Occasion: The occasion the promotion was intended for. If an occasion is
	// set, the redemption window will need to fall within the date range
	// associated with the occasion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW_YEARS" - New Year's.
	//   "CHINESE_NEW_YEAR" - Chinese New Year.
	//   "VALENTINES_DAY" - Valentine's Day.
	//   "EASTER" - Easter.
	//   "MOTHERS_DAY" - Mother's Day.
	//   "FATHERS_DAY" - Father's Day.
	//   "LABOR_DAY" - Labor Day.
	//   "BACK_TO_SCHOOL" - Back To School.
	//   "HALLOWEEN" - Halloween.
	//   "BLACK_FRIDAY" - Black Friday.
	//   "CYBER_MONDAY" - Cyber Monday.
	//   "CHRISTMAS" - Christmas.
	//   "BOXING_DAY" - Boxing Day.
	//   "INDEPENDENCE_DAY" - Independence Day in any country.
	//   "NATIONAL_DAY" - National Day in any country.
	//   "END_OF_SEASON" - End of any season.
	//   "WINTER_SALE" - Winter Sale.
	//   "SUMMER_SALE" - Summer sale.
	//   "FALL_SALE" - Fall Sale.
	//   "SPRING_SALE" - Spring Sale.
	//   "RAMADAN" - Ramadan.
	//   "EID_AL_FITR" - Eid al-Fitr.
	//   "EID_AL_ADHA" - Eid al-Adha.
	//   "SINGLES_DAY" - Singles Day.
	//   "WOMENS_DAY" - Women's Day.
	//   "HOLI" - Holi.
	//   "PARENTS_DAY" - Parent's Day.
	//   "ST_NICHOLAS_DAY" - St. Nicholas Day.
	//   "CARNIVAL" - Carnival.
	//   "EPIPHANY" - Epiphany, also known as Three Kings' Day.
	//   "ROSH_HASHANAH" - Rosh Hashanah.
	//   "PASSOVER" - Passover.
	//   "HANUKKAH" - Hanukkah.
	//   "DIWALI" - Diwali.
	//   "NAVRATRI" - Navratri.
	//   "SONGKRAN" - Available in Thai: Songkran.
	//   "YEAR_END_GIFT" - Available in Japanese: Year-end Gift.
	Occasion string `json:"occasion,omitempty"`
	// OrdersOverAmount: The amount the total order needs to be for the user to be
	// eligible for the promotion.
	OrdersOverAmount *GoogleAdsSearchads360V23Common__Money `json:"ordersOverAmount,omitempty"`
	// PercentOff: Percentage off discount in the promotion. 1,000,000 = 100%.
	// Either this or money_amount_off is required.
	PercentOff int64 `json:"percentOff,omitempty,string"`
	// PromotionBarcodeInfo: Barcode info used to generate promotion barcode for
	// user to be eligible for the promotion.
	PromotionBarcodeInfo *GoogleAdsSearchads360V23Common__PromotionBarcodeInfo `json:"promotionBarcodeInfo,omitempty"`
	// PromotionCode: A code the user should use in order to be eligible for the
	// promotion.
	PromotionCode string `json:"promotionCode,omitempty"`
	// PromotionQrCodeInfo: QR code info used to generate promotion QR code for
	// user to be eligible for the promotion.
	PromotionQrCodeInfo *GoogleAdsSearchads360V23Common__PromotionQrCodeInfo `json:"promotionQrCodeInfo,omitempty"`
	// PromotionTarget: Required. A freeform description of what the promotion is
	// targeting.
	PromotionTarget string `json:"promotionTarget,omitempty"`
	// RedemptionEndDate: Last date of when the promotion is eligible to be
	// redeemed, in yyyy-MM-dd format.
	RedemptionEndDate string `json:"redemptionEndDate,omitempty"`
	// RedemptionStartDate: Start date of when the promotion is eligible to be
	// redeemed, in yyyy-MM-dd format.
	RedemptionStartDate string `json:"redemptionStartDate,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// TermsAndConditionsText: Terms and conditions of the promotion.
	TermsAndConditionsText string `json:"termsAndConditionsText,omitempty"`
	// TermsAndConditionsUri: URI to the terms and conditions of the promotion.
	TermsAndConditionsUri string `json:"termsAndConditionsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PromotionAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PromotionAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PromotionBarcodeInfo: Barcode info to
// generate promotion barcode.
type GoogleAdsSearchads360V23Common__PromotionBarcodeInfo struct {
	// BarcodeContent: Promotion message to be encoded in the barcode.
	BarcodeContent string `json:"barcodeContent,omitempty"`
	// Type: Barcode type used to generate barcode with the correct format.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AZTEC" - Aztec 2D barcode format. Max 350 characters and no links
	//   "CODABAR" - CODABAR 1D format. Max 12 characters and no links. Supported
	// characters include 0123456789-$:/.+ and optional start and end guards from
	// ABCD.
	//   "CODE39" - Code 39 1D format. Max 8 characters and no links. Supported
	// characters include 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%.
	//   "CODE128" - Code 128 1D format. Max 18 ASCII characters only and no links
	//   "DATA_MATRIX" - Data Matrix 2D barcode format. Max 525 ISO-8859-1
	// characters only and no links
	//   "EAN8" - EAN-8 1D format. The barcode value should be 7 digits (the check
	// digit will be computed automatically) or 8 digits (if you are providing your
	// own check digit).
	//   "EAN13" - EAN-13 1D format. The barcode value should be 12 digits (the
	// check digit will be computed automatically) or 13 digits (if you are
	// providing your own check digit).
	//   "ITF" - ITF (Interleaved Two of Five) 1D format. Must be 14 digits long
	//   "PDF417" - PDF417 format. Max 140 characters and no links
	//   "UPC_A" - UPC-A 1D format. The barcode value should be 11 digits (the
	// check digit will be computed automatically) or 12 digits (if you are
	// providing your own check digit).
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BarcodeContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BarcodeContent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PromotionBarcodeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PromotionBarcodeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__PromotionQrCodeInfo: QR code info to
// generate promotion QR code.
type GoogleAdsSearchads360V23Common__PromotionQrCodeInfo struct {
	// QrCodeContent: Promotion message to be encoded in the QR code.
	QrCodeContent string `json:"qrCodeContent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QrCodeContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QrCodeContent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__PromotionQrCodeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__PromotionQrCodeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ProximityInfo: A Proximity criterion. The
// geo point and radius determine what geographical area is included. The
// address is a description of the geo point that does not affect ad serving.
// There are two ways to create a proximity. First, by setting an address and
// radius. The geo point will be automatically computed. Second, by setting a
// geo point and radius. The address is an optional label that won't be
// validated.
type GoogleAdsSearchads360V23Common__ProximityInfo struct {
	// Address: Full address.
	Address *GoogleAdsSearchads360V23Common__AddressInfo `json:"address,omitempty"`
	// GeoPoint: Latitude and longitude.
	GeoPoint *GoogleAdsSearchads360V23Common__GeoPointInfo `json:"geoPoint,omitempty"`
	// Radius: The radius of the proximity.
	Radius float64 `json:"radius,omitempty"`
	// RadiusUnits: The unit of measurement of the radius. Default is KILOMETERS.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MILES" - Miles
	//   "KILOMETERS" - Kilometers
	RadiusUnits string `json:"radiusUnits,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ProximityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ProximityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__ProximityInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__ProximityInfo
	var s1 struct {
		Radius gensupport.JSONFloat64 `json:"radius"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Radius = float64(s1.Radius)
	return nil
}

// GoogleAdsSearchads360V23Common__RealTimeBiddingSetting: Settings for
// Real-Time Bidding, a feature only available for campaigns targeting the Ad
// Exchange network.
type GoogleAdsSearchads360V23Common__RealTimeBiddingSetting struct {
	// OptIn: Whether the campaign is opted in to real-time bidding.
	OptIn bool `json:"optIn,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OptIn") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OptIn") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__RealTimeBiddingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__RealTimeBiddingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec:
// Specification for various creative controls for a responsive display ad.
type GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec struct {
	// EnableAssetEnhancements: Whether the advertiser has opted into the asset
	// enhancements feature.
	EnableAssetEnhancements bool `json:"enableAssetEnhancements,omitempty"`
	// EnableAutogenVideo: Whether the advertiser has opted into auto-gen video
	// feature.
	EnableAutogenVideo bool `json:"enableAutogenVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableAssetEnhancements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableAssetEnhancements") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo: A responsive
// display ad.
type GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo struct {
	// AccentColor: The accent color of the ad in hexadecimal, for example, #ffffff
	// for white. If one of `main_color` and `accent_color` is set, the other is
	// required as well.
	AccentColor string `json:"accentColor,omitempty"`
	// AllowFlexibleColor: Advertiser's consent to allow flexible color. When true,
	// the ad may be served with different color if necessary. When false, the ad
	// will be served with the specified colors or a neutral color. The default
	// value is `true`. Must be true if `main_color` and `accent_color` are not
	// set.
	AllowFlexibleColor bool `json:"allowFlexibleColor,omitempty"`
	// BusinessName: The advertiser/brand name. Maximum display width is 25.
	BusinessName string `json:"businessName,omitempty"`
	// CallToActionText: The call-to-action text for the ad. Maximum display width
	// is 30.
	CallToActionText string `json:"callToActionText,omitempty"`
	// ControlSpec: Specification for various creative controls.
	ControlSpec *GoogleAdsSearchads360V23Common__ResponsiveDisplayAdControlSpec `json:"controlSpec,omitempty"`
	// Descriptions: Descriptive texts for the ad. The maximum length is 90
	// characters. At least 1 and max 5 headlines can be specified.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// FormatSetting: Specifies which format the ad will be served in. Default is
	// ALL_FORMATS.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ALL_FORMATS" - Text, image and native formats.
	//   "NON_NATIVE" - Text and image formats.
	//   "NATIVE" - Native format, for example, the format rendering is controlled
	// by the publisher and not by Google.
	FormatSetting string `json:"formatSetting,omitempty"`
	// Headlines: Short format headlines for the ad. The maximum length is 30
	// characters. At least 1 and max 5 headlines can be specified.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// LogoImages: Logo images to be used in the ad. Valid image types are GIF,
	// JPEG, and PNG. The minimum size is 512x128 and the aspect ratio must be 4:1
	// (+-1%). Combined with `square_logo_images`, the maximum is 5.
	LogoImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"logoImages,omitempty"`
	// LongHeadline: A required long format headline. The maximum length is 90
	// characters.
	LongHeadline *GoogleAdsSearchads360V23Common__AdTextAsset `json:"longHeadline,omitempty"`
	// MainColor: The main color of the ad in hexadecimal, for example, #ffffff for
	// white. If one of `main_color` and `accent_color` is set, the other is
	// required as well.
	MainColor string `json:"mainColor,omitempty"`
	// MarketingImages: Marketing images to be used in the ad. Valid image types
	// are GIF, JPEG, and PNG. The minimum size is 600x314 and the aspect ratio
	// must be 1.91:1 (+-1%). At least one `marketing_image` is required. Combined
	// with `square_marketing_images`, the maximum is 15.
	MarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"marketingImages,omitempty"`
	// PricePrefix: Prefix before price. For example, 'as low as'.
	PricePrefix string `json:"pricePrefix,omitempty"`
	// PromoText: Promotion text used for dynamic formats of responsive ads. For
	// example 'Free two-day shipping'.
	PromoText string `json:"promoText,omitempty"`
	// SquareLogoImages: Square logo images to be used in the ad. Valid image types
	// are GIF, JPEG, and PNG. The minimum size is 128x128 and the aspect ratio
	// must be 1:1 (+-1%). Combined with `logo_images`, the maximum is 5.
	SquareLogoImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"squareLogoImages,omitempty"`
	// SquareMarketingImages: Square marketing images to be used in the ad. Valid
	// image types are GIF, JPEG, and PNG. The minimum size is 300x300 and the
	// aspect ratio must be 1:1 (+-1%). At least one square `marketing_image` is
	// required. Combined with `marketing_images`, the maximum is 15.
	SquareMarketingImages []*GoogleAdsSearchads360V23Common__AdImageAsset `json:"squareMarketingImages,omitempty"`
	// YoutubeVideos: Optional YouTube videos for the ad. A maximum of 5 videos can
	// be specified.
	YoutubeVideos []*GoogleAdsSearchads360V23Common__AdVideoAsset `json:"youtubeVideos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccentColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccentColor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo: A responsive search
// ad. Responsive search ads let you create an ad that adapts to show more
// text, and more relevant messages, to your customers. Enter multiple
// headlines and descriptions when creating a responsive search ad, and over
// time, Google Ads will automatically test different combinations and learn
// which combinations perform best. By adapting your ad's content to more
// closely match potential customers' search terms, responsive search ads may
// improve your campaign's performance. More information at
// https://support.google.com/google-ads/answer/7684791
type GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo struct {
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// Path1: First part of text that can be appended to the URL in the ad.
	Path1 string `json:"path1,omitempty"`
	// Path2: Second part of text that can be appended to the URL in the ad. This
	// field can only be set when `path1` is also set.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Descriptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Descriptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__RuleBasedUserListInfo: Representation of a
// userlist that is generated by a rule.
type GoogleAdsSearchads360V23Common__RuleBasedUserListInfo struct {
	// FlexibleRuleUserList: Flexible rule representation of visitors with one or
	// multiple actions. The flexible user list is defined by two lists of operands
	// – inclusive_operands and exclusive_operands; each operand represents a set
	// of users based on actions they took in a given timeframe. These lists of
	// operands are combined with the AND_NOT operator, so that users represented
	// by the inclusive operands are included in the user list, minus the users
	// represented by the exclusive operands.
	FlexibleRuleUserList *GoogleAdsSearchads360V23Common__FlexibleRuleUserListInfo `json:"flexibleRuleUserList,omitempty"`
	// PrepopulationStatus: The status of pre-population. The field is default to
	// NONE if not set which means the previous users will not be considered. If
	// set to REQUESTED, past site visitors or app users who match the list
	// definition will be included in the list (works on the Display Network only).
	// This will only add past users from within the last 30 days, depending on the
	// list's membership duration and the date when the remarketing tag is added.
	// The status will be updated to FINISHED once request is processed, or FAILED
	// if the request fails.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "REQUESTED" - Prepopoulation is being requested.
	//   "FINISHED" - Prepopulation is finished.
	//   "FAILED" - Prepopulation failed.
	PrepopulationStatus string `json:"prepopulationStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FlexibleRuleUserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FlexibleRuleUserList") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__RuleBasedUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__RuleBasedUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo: An
// expanded dynamic search ad.
type GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo: A Search Ads
// 360 expanded text ad.
type GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// Headline2: The second headline of the ad.
	Headline2 string `json:"headline2,omitempty"`
	// Headline3: The third headline of the ad.
	Headline3 string `json:"headline3,omitempty"`
	// Path1: Text appended to the auto-generated visible URL with a delimiter.
	Path1 string `json:"path1,omitempty"`
	// Path2: Text appended to path1 with a delimiter.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo: A Search Ads 360
// product ad.
type GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo struct {
}

// GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo: A Search
// Ads 360 responsive search ad.
type GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Descriptions: List of text assets for descriptions. When the ad serves the
	// descriptions will be selected from this list.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets for headlines. When the ad serves the
	// headlines will be selected from this list.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// Path1: Text appended to the auto-generated visible URL with a delimiter.
	Path1 string `json:"path1,omitempty"`
	// Path2: Text appended to path1 with a delimiter.
	Path2 string `json:"path2,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo: A Search Ads 360
// text ad.
type GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo struct {
	// AdTrackingId: The tracking id of the ad.
	AdTrackingId int64 `json:"adTrackingId,omitempty,string"`
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// DisplayMobileUrl: The displayed mobile URL of the ad.
	DisplayMobileUrl string `json:"displayMobileUrl,omitempty"`
	// DisplayUrl: The displayed URL of the ad.
	DisplayUrl string `json:"displayUrl,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdTrackingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdTrackingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SearchThemeInfo: A Search Theme criterion
// only on Performance Max campaign. Represents a keyword-like advertiser
// input.
type GoogleAdsSearchads360V23Common__SearchThemeInfo struct {
	// Text: Each Search Theme has a value of a simple string, like keywords. There
	// are limits on overall length, allowed characters, and number of words.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Text") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Text") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SearchThemeInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SearchThemeInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Segments: Segment only fields.
type GoogleAdsSearchads360V23Common__Segments struct {
	// AdFormatType: Ad Format type.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OTHER" - Value assigned to formats (such as experimental formats) which
	// don't support format segmentation in Video and Demand Gen campaigns. Note
	// that these formats may change categories in the future, for example if an
	// experimental format is exposed or a new format is added. We strongly
	// recommend to not rely on this field for long term decisions.
	//   "UNSEGMENTED" - Value assigned for Video TrueView for Action campaigns
	// statistics. Note that statistics with this value may change categories in
	// the future, for example if format segmentation support is added for new
	// campaign types. We strongly recommend to not rely on this field for long
	// term decisions.
	//   "INSTREAM_SKIPPABLE" - Skippable in-stream ads.
	//   "INSTREAM_NON_SKIPPABLE" - Non-skippable in-stream ads.
	//   "INFEED" - In-feed YouTube or image ads served on feed surfaces (e.g.
	// Discover Feed, YouTube Home, etc.).
	//   "BUMPER" - Short (<7 secs) in-stream non-skippable YouTube ads.
	//   "OUTSTREAM" - Outstream ads.
	//   "MASTHEAD" - Masthead ads.
	//   "AUDIO" - Audio ads.
	//   "SHORTS" - Vertical full-screen video or image ads served on YouTube
	// Shorts or BrandConnect ads served as organic YouTube Shorts.
	//   "PAUSE" - Image ads served when a user pauses an organic YouTube video on
	// a TV screen. These ads are displayed directly next to the static video frame
	// on the pause screen itself. Note that this does not include Demand Gen image
	// ads served on the ad panel below or on top of a paused organic video. Those
	// are reported under INFEED.
	//   "VERTICAL_ADS_PROMOTION" - An ad format that promotes a specific entity
	// within a vertical, for example, a hotel ad in the Travel vertical on Search.
	//   "VERTICAL_ADS_BOOKING_LINK" - An ad format for a booking link
	// call-to-action within a vertical ad, for example a 'Book Now' link for a
	// hotel ad.
	//   "TEXT" - A standard text ad format. This is currently only used for ads on
	// the Search network.
	AdFormatType string `json:"adFormatType,omitempty"`
	// AdNetworkType: Ad network type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "SEARCH" - Google search.
	//   "SEARCH_PARTNERS" - Search partners.
	//   "CONTENT" - Display Network.
	//   "MIXED" - Cross-network.
	//   "YOUTUBE" - YouTube
	//   "GOOGLE_TV" - Google TV
	//   "GOOGLE_OWNED_CHANNELS"
	//   "GMAIL" - Gmail
	//   "DISCOVER" - Discover Feed
	//   "MAPS" - Maps
	AdNetworkType string `json:"adNetworkType,omitempty"`
	// AssetInteractionTarget: Only used with CustomerAsset, CampaignAsset and
	// AdGroupAsset metrics. Indicates whether the interaction metrics occurred on
	// the asset itself or a different asset or ad unit. Interactions (for example,
	// clicks) are counted across all the parts of the served ad (for example, Ad
	// itself and other components like Sitelinks) when they are served together.
	// When interaction_on_this_asset is true, it means the interactions are on
	// this specific asset and when interaction_on_this_asset is false, it means
	// the interactions is not on this specific asset but on other parts of the
	// served ad this asset is served with.
	AssetInteractionTarget *GoogleAdsSearchads360V23Common__AssetInteractionTarget `json:"assetInteractionTarget,omitempty"`
	// ConversionAction: Resource name of the conversion action.
	ConversionAction string `json:"conversionAction,omitempty"`
	// ConversionActionCategory: Conversion action category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	ConversionActionCategory string `json:"conversionActionCategory,omitempty"`
	// ConversionActionName: Conversion action name.
	ConversionActionName string `json:"conversionActionName,omitempty"`
	// ConversionCustomDimensions: The conversion custom dimensions.
	ConversionCustomDimensions []*GoogleAdsSearchads360V23Common__Value `json:"conversionCustomDimensions,omitempty"`
	// Date: Date to which metrics apply. yyyy-MM-dd format, for example,
	// 2018-04-17.
	Date string `json:"date,omitempty"`
	// DayOfWeek: Day of the week, for example, MONDAY.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MONDAY" - Monday.
	//   "TUESDAY" - Tuesday.
	//   "WEDNESDAY" - Wednesday.
	//   "THURSDAY" - Thursday.
	//   "FRIDAY" - Friday.
	//   "SATURDAY" - Saturday.
	//   "SUNDAY" - Sunday.
	DayOfWeek string `json:"dayOfWeek,omitempty"`
	// Device: Device to which metrics apply.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Device string `json:"device,omitempty"`
	// GeoTargetCity: Resource name of the geo target constant that represents a
	// city.
	GeoTargetCity string `json:"geoTargetCity,omitempty"`
	// GeoTargetCountry: Resource name of the geo target constant that represents a
	// country.
	GeoTargetCountry string `json:"geoTargetCountry,omitempty"`
	// GeoTargetMetro: Resource name of the geo target constant that represents a
	// metro.
	GeoTargetMetro string `json:"geoTargetMetro,omitempty"`
	// GeoTargetPostalCode: Resource name of the geo target constant that
	// represents a postal code.
	GeoTargetPostalCode string `json:"geoTargetPostalCode,omitempty"`
	// GeoTargetRegion: Resource name of the geo target constant that represents a
	// region.
	GeoTargetRegion string `json:"geoTargetRegion,omitempty"`
	// Hour: Hour of day as a number between 0 and 23, inclusive.
	Hour int64 `json:"hour,omitempty"`
	// Keyword: Keyword criterion.
	Keyword *GoogleAdsSearchads360V23Common__Keyword `json:"keyword,omitempty"`
	// Month: Month as represented by the date of the first day of a month.
	// Formatted as yyyy-MM-dd.
	Month string `json:"month,omitempty"`
	// ProductBiddingCategoryLevel1: Bidding category (level 1) of the product.
	ProductBiddingCategoryLevel1 string `json:"productBiddingCategoryLevel1,omitempty"`
	// ProductBiddingCategoryLevel2: Bidding category (level 2) of the product.
	ProductBiddingCategoryLevel2 string `json:"productBiddingCategoryLevel2,omitempty"`
	// ProductBiddingCategoryLevel3: Bidding category (level 3) of the product.
	ProductBiddingCategoryLevel3 string `json:"productBiddingCategoryLevel3,omitempty"`
	// ProductBiddingCategoryLevel4: Bidding category (level 4) of the product.
	ProductBiddingCategoryLevel4 string `json:"productBiddingCategoryLevel4,omitempty"`
	// ProductBiddingCategoryLevel5: Bidding category (level 5) of the product.
	ProductBiddingCategoryLevel5 string `json:"productBiddingCategoryLevel5,omitempty"`
	// ProductBrand: Brand of the product.
	ProductBrand string `json:"productBrand,omitempty"`
	// ProductChannel: Channel of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductChannelExclusivity: Channel exclusivity of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SINGLE_CHANNEL" - The item is sold through one channel only, either local
	// stores or online as indicated by its ProductChannel.
	//   "MULTI_CHANNEL" - The item is matched to its online or local stores
	// counterpart, indicating it is available for purchase in both
	// ShoppingProductChannels.
	ProductChannelExclusivity string `json:"productChannelExclusivity,omitempty"`
	// ProductCondition: Condition of the product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	ProductCondition string `json:"productCondition,omitempty"`
	// ProductCountry: Resource name of the geo target constant for the country of
	// sale of the product.
	ProductCountry string `json:"productCountry,omitempty"`
	// ProductCustomAttribute0: Custom attribute 0 of the product.
	ProductCustomAttribute0 string `json:"productCustomAttribute0,omitempty"`
	// ProductCustomAttribute1: Custom attribute 1 of the product.
	ProductCustomAttribute1 string `json:"productCustomAttribute1,omitempty"`
	// ProductCustomAttribute2: Custom attribute 2 of the product.
	ProductCustomAttribute2 string `json:"productCustomAttribute2,omitempty"`
	// ProductCustomAttribute3: Custom attribute 3 of the product.
	ProductCustomAttribute3 string `json:"productCustomAttribute3,omitempty"`
	// ProductCustomAttribute4: Custom attribute 4 of the product.
	ProductCustomAttribute4 string `json:"productCustomAttribute4,omitempty"`
	// ProductItemId: Item ID of the product.
	ProductItemId string `json:"productItemId,omitempty"`
	// ProductLanguage: Resource name of the language constant for the language of
	// the product.
	ProductLanguage string `json:"productLanguage,omitempty"`
	// ProductSoldBiddingCategoryLevel1: Bidding category (level 1) of the product
	// sold.
	ProductSoldBiddingCategoryLevel1 string `json:"productSoldBiddingCategoryLevel1,omitempty"`
	// ProductSoldBiddingCategoryLevel2: Bidding category (level 2) of the product
	// sold.
	ProductSoldBiddingCategoryLevel2 string `json:"productSoldBiddingCategoryLevel2,omitempty"`
	// ProductSoldBiddingCategoryLevel3: Bidding category (level 3) of the product
	// sold.
	ProductSoldBiddingCategoryLevel3 string `json:"productSoldBiddingCategoryLevel3,omitempty"`
	// ProductSoldBiddingCategoryLevel4: Bidding category (level 4) of the product
	// sold.
	ProductSoldBiddingCategoryLevel4 string `json:"productSoldBiddingCategoryLevel4,omitempty"`
	// ProductSoldBiddingCategoryLevel5: Bidding category (level 5) of the product
	// sold.
	ProductSoldBiddingCategoryLevel5 string `json:"productSoldBiddingCategoryLevel5,omitempty"`
	// ProductSoldBrand: Brand of the product sold.
	ProductSoldBrand string `json:"productSoldBrand,omitempty"`
	// ProductSoldCondition: Condition of the product sold.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	ProductSoldCondition string `json:"productSoldCondition,omitempty"`
	// ProductSoldCustomAttribute0: Custom attribute 0 of the product sold.
	ProductSoldCustomAttribute0 string `json:"productSoldCustomAttribute0,omitempty"`
	// ProductSoldCustomAttribute1: Custom attribute 1 of the product sold.
	ProductSoldCustomAttribute1 string `json:"productSoldCustomAttribute1,omitempty"`
	// ProductSoldCustomAttribute2: Custom attribute 2 of the product sold.
	ProductSoldCustomAttribute2 string `json:"productSoldCustomAttribute2,omitempty"`
	// ProductSoldCustomAttribute3: Custom attribute 3 of the product sold.
	ProductSoldCustomAttribute3 string `json:"productSoldCustomAttribute3,omitempty"`
	// ProductSoldCustomAttribute4: Custom attribute 4 of the product sold.
	ProductSoldCustomAttribute4 string `json:"productSoldCustomAttribute4,omitempty"`
	// ProductSoldItemId: Item ID of the product sold.
	ProductSoldItemId string `json:"productSoldItemId,omitempty"`
	// ProductSoldTitle: Title of the product sold.
	ProductSoldTitle string `json:"productSoldTitle,omitempty"`
	// ProductSoldTypeL1: Type (level 1) of the product sold.
	ProductSoldTypeL1 string `json:"productSoldTypeL1,omitempty"`
	// ProductSoldTypeL2: Type (level 2) of the product sold.
	ProductSoldTypeL2 string `json:"productSoldTypeL2,omitempty"`
	// ProductSoldTypeL3: Type (level 3) of the product sold.
	ProductSoldTypeL3 string `json:"productSoldTypeL3,omitempty"`
	// ProductSoldTypeL4: Type (level 4) of the product sold.
	ProductSoldTypeL4 string `json:"productSoldTypeL4,omitempty"`
	// ProductSoldTypeL5: Type (level 5) of the product sold.
	ProductSoldTypeL5 string `json:"productSoldTypeL5,omitempty"`
	// ProductStoreId: Store ID of the product.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ProductTitle: Title of the product.
	ProductTitle string `json:"productTitle,omitempty"`
	// ProductTypeL1: Type (level 1) of the product.
	ProductTypeL1 string `json:"productTypeL1,omitempty"`
	// ProductTypeL2: Type (level 2) of the product.
	ProductTypeL2 string `json:"productTypeL2,omitempty"`
	// ProductTypeL3: Type (level 3) of the product.
	ProductTypeL3 string `json:"productTypeL3,omitempty"`
	// ProductTypeL4: Type (level 4) of the product.
	ProductTypeL4 string `json:"productTypeL4,omitempty"`
	// ProductTypeL5: Type (level 5) of the product.
	ProductTypeL5 string `json:"productTypeL5,omitempty"`
	// Quarter: Quarter as represented by the date of the first day of a quarter.
	// Uses the calendar year for quarters, for example, the second quarter of 2018
	// starts on 2018-04-01. Formatted as yyyy-MM-dd.
	Quarter string `json:"quarter,omitempty"`
	// RawEventConversionDimensions: The raw event conversion dimensions.
	RawEventConversionDimensions []*GoogleAdsSearchads360V23Common__Value `json:"rawEventConversionDimensions,omitempty"`
	// VerticalAdsEventParticipantDisplayNames: The display names of participants
	// in an event listing, like performers, speakers, or teams.
	VerticalAdsEventParticipantDisplayNames string `json:"verticalAdsEventParticipantDisplayNames,omitempty"`
	// VerticalAdsHotelClass: The class of the hotel. Generally in the range of 1
	// to 5 stars, but fully customizable in the hotel feed.
	VerticalAdsHotelClass int64 `json:"verticalAdsHotelClass,omitempty,string"`
	// VerticalAdsListing: The listing associated with a listing impression, click
	// or conversion.
	VerticalAdsListing string `json:"verticalAdsListing,omitempty"`
	// VerticalAdsListingBrand: The brand associated with a specific listing within
	// a Vertical Ads context, for example, the brand of a car rental, a vacation
	// home, or an event.
	VerticalAdsListingBrand string `json:"verticalAdsListingBrand,omitempty"`
	// VerticalAdsListingCity: The city where the vertical ads listing is located.
	VerticalAdsListingCity string `json:"verticalAdsListingCity,omitempty"`
	// VerticalAdsListingCountry: The country where the vertical ads listing is
	// located.
	VerticalAdsListingCountry string `json:"verticalAdsListingCountry,omitempty"`
	// VerticalAdsListingRegion: The region where the vertical ads listing is
	// located.
	VerticalAdsListingRegion string `json:"verticalAdsListingRegion,omitempty"`
	// VerticalAdsPartnerAccount: A specific partner account within a Partner
	// Center (for example, Hotel Center) that supplies inventory feed data for
	// Vertical Ads.
	VerticalAdsPartnerAccount int64 `json:"verticalAdsPartnerAccount,omitempty,string"`
	// VerticalAdsVertical: Type of vertical ad, such as Vacation Rentals, Car
	// Rentals, or Events, used to categorize and segment data in the context of
	// Vertical Ads.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HOTELS" - Hotels travel vertical.
	//   "VACATION_RENTALS" - Vacation rentals travel vertical.
	//   "RENTAL_CARS" - Rental cars travel vertical.
	//   "EVENTS" - Events travel vertical.
	//   "THINGS_TO_DO" - Things to do travel vertical.
	//   "FLIGHTS" - Flights travel vertical.
	VerticalAdsVertical string `json:"verticalAdsVertical,omitempty"`
	// Week: Week as defined as Monday through Sunday, and represented by the date
	// of Monday. Formatted as yyyy-MM-dd.
	Week string `json:"week,omitempty"`
	// Year: Year, formatted as yyyy.
	Year int64 `json:"year,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdFormatType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdFormatType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Segments) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Segments
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo: A Shopping
// Comparison Listing ad.
type GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo struct {
	// Headline: Headline of the ad. This field is required. Allowed length is
	// between 25 and 45 characters.
	Headline string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Headline") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Headline") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ShoppingLoyalty: The shopping loyalty
// related data. Shopping utilizes this data to provide users with a better
// experience. Accessible only to merchants on the allow-list.
type GoogleAdsSearchads360V23Common__ShoppingLoyalty struct {
	// LoyaltyTier: The membership tier. It is a free-form string as each merchant
	// may have their own loyalty system. For example, it could be a number from 1
	// to 10, or a string such as "Golden" or "Silver", or even empty string "".
	LoyaltyTier string `json:"loyaltyTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LoyaltyTier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LoyaltyTier") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ShoppingLoyalty) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ShoppingLoyalty
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ShoppingProductAdInfo: A standard Shopping
// ad.
type GoogleAdsSearchads360V23Common__ShoppingProductAdInfo struct {
}

// GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo: A Smart Shopping ad.
type GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo struct {
}

// GoogleAdsSearchads360V23Common__SimilarUserListInfo: SimilarUserList is a
// list of users which are similar to users from another UserList. These lists
// are read-only and automatically created by Google.
type GoogleAdsSearchads360V23Common__SimilarUserListInfo struct {
	// SeedUserList: Seed UserList from which this list is derived.
	SeedUserList string `json:"seedUserList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SeedUserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SeedUserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SimilarUserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SimilarUserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SitelinkAsset: A Sitelink asset.
type GoogleAdsSearchads360V23Common__SitelinkAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// Description1: First line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description2 must also be
	// set.
	Description1 string `json:"description1,omitempty"`
	// Description2: Second line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description1 must also be
	// set.
	Description2 string `json:"description2,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// LinkText: Required. URL display text for the sitelink. The length of this
	// string should be between 1 and 25, inclusive.
	LinkText string `json:"linkText,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SitelinkAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SitelinkAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SitelinkFeedItem: Represents a sitelink.
type GoogleAdsSearchads360V23Common__SitelinkFeedItem struct {
	// FinalMobileUrls: A list of possible final mobile URLs after all cross domain
	// redirects.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: Final URL suffix to be appended to landing page URLs served
	// with parallel tracking.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: A list of possible final URLs after all cross domain redirects.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Line1: First line of the description for the sitelink. If this value is set,
	// line2 must also be set. The length of this string should be between 0 and
	// 35, inclusive.
	Line1 string `json:"line1,omitempty"`
	// Line2: Second line of the description for the sitelink. If this value is
	// set, line1 must also be set. The length of this string should be between 0
	// and 35, inclusive.
	Line2 string `json:"line2,omitempty"`
	// LinkText: URL display text for the sitelink. The length of this string
	// should be between 1 and 25, inclusive.
	LinkText string `json:"linkText,omitempty"`
	// TrackingUrlTemplate: URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// UrlCustomParameters: A list of mappings to be used for substituting URL
	// custom parameter tags in the tracking_url_template, final_urls, and/or
	// final_mobile_urls.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FinalMobileUrls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FinalMobileUrls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SitelinkFeedItem) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SitelinkFeedItem
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__SmartCampaignAdInfo: A Smart campaign ad.
type GoogleAdsSearchads360V23Common__SmartCampaignAdInfo struct {
	// Descriptions: List of text assets, each of which corresponds to a
	// description when the ad serves. This list consists of a minimum of 2 and up
	// to 4 text assets.
	Descriptions []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"descriptions,omitempty"`
	// Headlines: List of text assets, each of which corresponds to a headline when
	// the ad serves. This list consists of a minimum of 3 and up to 15 text
	// assets.
	Headlines []*GoogleAdsSearchads360V23Common__AdTextAsset `json:"headlines,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Descriptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Descriptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__SmartCampaignAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__SmartCampaignAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__StoreAttribute: Store attributes of the
// transaction.
type GoogleAdsSearchads360V23Common__StoreAttribute struct {
	// StoreCode: Store code from
	// https://support.google.com/business/answer/3370250#storecode
	StoreCode string `json:"storeCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StoreCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StoreCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__StoreAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__StoreAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__StoreSalesMetadata: Metadata for Store Sales
// Direct.
type GoogleAdsSearchads360V23Common__StoreSalesMetadata struct {
	// CustomKey: Name of the store sales custom variable key. A predefined key
	// that can be applied to the transaction and then later used for custom
	// segmentation in reporting. Accessible only to customers on the allow-list.
	CustomKey string `json:"customKey,omitempty"`
	// LoyaltyFraction: This is the fraction of all transactions that are
	// identifiable (for example, associated with any form of customer
	// information). Required. The fraction needs to be between 0 and 1 (excluding
	// 0).
	LoyaltyFraction float64 `json:"loyaltyFraction,omitempty"`
	// ThirdPartyMetadata: Metadata for a third party Store Sales upload.
	ThirdPartyMetadata *GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata `json:"thirdPartyMetadata,omitempty"`
	// TransactionUploadFraction: This is the ratio of sales being uploaded
	// compared to the overall sales that can be associated with a customer.
	// Required. The fraction needs to be between 0 and 1 (excluding 0). For
	// example, if you upload half the sales that you are able to associate with a
	// customer, this would be 0.5.
	TransactionUploadFraction float64 `json:"transactionUploadFraction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__StoreSalesMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__StoreSalesMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__StoreSalesMetadata) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__StoreSalesMetadata
	var s1 struct {
		LoyaltyFraction           gensupport.JSONFloat64 `json:"loyaltyFraction"`
		TransactionUploadFraction gensupport.JSONFloat64 `json:"transactionUploadFraction"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.LoyaltyFraction = float64(s1.LoyaltyFraction)
	s.TransactionUploadFraction = float64(s1.TransactionUploadFraction)
	return nil
}

// GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata: Metadata for a
// third party Store Sales. This product is only for customers on the
// allow-list. Contact your Google business development representative for
// details on the upload configuration.
type GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata struct {
	// AdvertiserUploadDateTime: Time the advertiser uploaded the data to the
	// partner. Required. The format is "YYYY-MM-DD HH:MM:SS". Examples:
	// "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	AdvertiserUploadDateTime string `json:"advertiserUploadDateTime,omitempty"`
	// BridgeMapVersionId: Version of partner IDs to be used for uploads. Required.
	BridgeMapVersionId string `json:"bridgeMapVersionId,omitempty"`
	// PartnerId: ID of the third party partner updating the transaction feed.
	PartnerId int64 `json:"partnerId,omitempty,string"`
	// PartnerMatchFraction: The fraction of valid transactions that are matched to
	// a third party assigned user ID on the partner side. Required. The fraction
	// needs to be between 0 and 1 (excluding 0).
	PartnerMatchFraction float64 `json:"partnerMatchFraction,omitempty"`
	// PartnerUploadFraction: The fraction of valid transactions that are uploaded
	// by the partner to Google. Required. The fraction needs to be between 0 and 1
	// (excluding 0).
	PartnerUploadFraction float64 `json:"partnerUploadFraction,omitempty"`
	// ValidTransactionFraction: The fraction of transactions that are valid.
	// Invalid transactions may include invalid formats or values. Required. The
	// fraction needs to be between 0 and 1 (excluding 0).
	ValidTransactionFraction float64 `json:"validTransactionFraction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertiserUploadDateTime")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertiserUploadDateTime") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__StoreSalesThirdPartyMetadata
	var s1 struct {
		PartnerMatchFraction     gensupport.JSONFloat64 `json:"partnerMatchFraction"`
		PartnerUploadFraction    gensupport.JSONFloat64 `json:"partnerUploadFraction"`
		ValidTransactionFraction gensupport.JSONFloat64 `json:"validTransactionFraction"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.PartnerMatchFraction = float64(s1.PartnerMatchFraction)
	s.PartnerUploadFraction = float64(s1.PartnerUploadFraction)
	s.ValidTransactionFraction = float64(s1.ValidTransactionFraction)
	return nil
}

// GoogleAdsSearchads360V23Common__StructuredSnippetAsset: A Structured Snippet
// asset.
type GoogleAdsSearchads360V23Common__StructuredSnippetAsset struct {
	// Header: Required. The header of the snippet. This string should be one of
	// the predefined values at
	// https://developers.google.com/google-ads/api/reference/data/structured-snippet-headers
	Header string `json:"header,omitempty"`
	// Values: Required. The values in the snippet. The size of this collection
	// should be between 3 and 10, inclusive. The length of each value should be
	// between 1 and 25 characters, inclusive.
	Values []string `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Header") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Header") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__StructuredSnippetAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__StructuredSnippetAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TagSnippet: The site tag and event snippet
// pair for a TrackingCodeType.
type GoogleAdsSearchads360V23Common__TagSnippet struct {
	// EventSnippet: The event snippet that works with the site tag to track
	// actions that should be counted as conversions.
	EventSnippet string `json:"eventSnippet,omitempty"`
	// GlobalSiteTag: The site tag that adds visitors to your basic remarketing
	// lists and sets new cookies on your domain.
	GlobalSiteTag string `json:"globalSiteTag,omitempty"`
	// PageFormat: The format of the web page where the tracking tag and snippet
	// will be installed, for example, HTML.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HTML" - Standard HTML page format.
	//   "AMP" - Google AMP page format.
	PageFormat string `json:"pageFormat,omitempty"`
	// Type: The type of the generated tag snippets for tracking conversions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBPAGE" - The snippet that is fired as a result of a website page
	// loading.
	//   "WEBPAGE_ONCLICK" - The snippet contains a JavaScript function which fires
	// the tag. This function is typically called from an onClick handler added to
	// a link or button element on the page.
	//   "CLICK_TO_CALL" - For embedding on a mobile webpage. The snippet contains
	// a JavaScript function which fires the tag.
	//   "WEBSITE_CALL" - The snippet that is used to replace the phone number on
	// your website with a Google forwarding number for call tracking purposes.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventSnippet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventSnippet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TagSnippet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TagSnippet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetCpa: An automated bid strategy that
// sets bids to help get as many conversions as possible at the target
// cost-per-acquisition (CPA) you set.
type GoogleAdsSearchads360V23Common__TargetCpa struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetCpaMicros: Average CPA target. This target should be greater than or
	// equal to minimum billable unit based on the currency for the account.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetCpa) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetCpa
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint: Projected metrics
// for a specific target CPA amount.
type GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint struct {
	// AppInstalls: Projected number of app installs.
	AppInstalls float64 `json:"appInstalls,omitempty"`
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// InAppActions: Projected number of in-app actions.
	InAppActions float64 `json:"inAppActions,omitempty"`
	// Interactions: Projected number of interactions. Only discovery advertising
	// channel type supports this field.
	Interactions int64 `json:"interactions,omitempty,string"`
	// RequiredBudgetAmountMicros: Projected required daily budget that the
	// advertiser must set in order to receive the estimated traffic, in micros of
	// advertiser currency.
	RequiredBudgetAmountMicros int64 `json:"requiredBudgetAmountMicros,omitempty,string"`
	// TargetCpaMicros: The simulated target CPA upon which projected metrics are
	// based.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// TargetCpaScalingModifier: The simulated scaling modifier upon which
	// projected metrics are based. All CPA targets relevant to the simulated
	// entity are scaled by this modifier.
	TargetCpaScalingModifier float64 `json:"targetCpaScalingModifier,omitempty"`
	// TopSlotImpressions: Projected number of top slot impressions. Only search
	// advertising channel type supports this field.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AppInstalls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppInstalls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint
	var s1 struct {
		AppInstalls              gensupport.JSONFloat64 `json:"appInstalls"`
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		InAppActions             gensupport.JSONFloat64 `json:"inAppActions"`
		TargetCpaScalingModifier gensupport.JSONFloat64 `json:"targetCpaScalingModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AppInstalls = float64(s1.AppInstalls)
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	s.InAppActions = float64(s1.InAppActions)
	s.TargetCpaScalingModifier = float64(s1.TargetCpaScalingModifier)
	return nil
}

// GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList: A container
// for simulation points for simulations of type TARGET_CPA.
type GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList struct {
	// Points: Projected metrics for a series of target CPA amounts.
	Points []*GoogleAdsSearchads360V23Common__TargetCpaSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetCpc: An automated bidding strategy
// that sets bids to help get as many clicks as possible at the target
// cost-per-click (CPC) you set.
type GoogleAdsSearchads360V23Common__TargetCpc struct {
	// TargetCpcMicros: Average CPC target. This target should be greater than or
	// equal to minimum billable unit based on the currency for the account.
	TargetCpcMicros int64 `json:"targetCpcMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TargetCpcMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpcMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetCpc) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetCpc
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetCpm: Target CPM (cost per thousand
// impressions) is an automated bidding strategy that sets bids to optimize
// performance given the target CPM you set.
type GoogleAdsSearchads360V23Common__TargetCpm struct {
}

// GoogleAdsSearchads360V23Common__TargetImpressionShare: An automated bidding
// strategy that sets bids so that a certain percentage of search ads are shown
// at the top of the first page (or other targeted location).
type GoogleAdsSearchads360V23Common__TargetImpressionShare struct {
	// CpcBidCeilingMicros: The highest CPC bid the automated bidding system is
	// permitted to specify. This is a required field entered by the advertiser
	// that sets the ceiling and specified in local micros.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// Location: The targeted location on the search results page.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANYWHERE_ON_PAGE" - Any location on the web page.
	//   "TOP_OF_PAGE" - Top box of ads.
	//   "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads.
	Location string `json:"location,omitempty"`
	// LocationFractionMicros: The chosen fraction of ads to be shown in the
	// targeted location in micros. For example, 1% equals 10,000.
	LocationFractionMicros int64 `json:"locationFractionMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetImpressionShare) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetImpressionShare
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint:
// Projected metrics for a specific target impression share value.
type GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint struct {
	// AbsoluteTopImpressions: Projected number of absolute top impressions. Only
	// search advertising channel type supports this field.
	AbsoluteTopImpressions int64 `json:"absoluteTopImpressions,omitempty,string"`
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// RequiredBudgetAmountMicros: Projected required daily budget that the
	// advertiser must set in order to receive the estimated traffic, in micros of
	// advertiser currency.
	RequiredBudgetAmountMicros int64 `json:"requiredBudgetAmountMicros,omitempty,string"`
	// RequiredCpcBidCeilingMicros: Projected required daily cpc bid ceiling that
	// the advertiser must set to realize this simulation, in micros of the
	// advertiser currency.
	RequiredCpcBidCeilingMicros int64 `json:"requiredCpcBidCeilingMicros,omitempty,string"`
	// TargetImpressionShareMicros: The simulated target impression share value (in
	// micros) upon which projected metrics are based. For example, 10% impression
	// share, which is equal to 0.1, is stored as 100_000. This value is validated
	// and will not exceed 1M (100%).
	TargetImpressionShareMicros int64 `json:"targetImpressionShareMicros,omitempty,string"`
	// TopSlotImpressions: Projected number of top slot impressions. Only search
	// advertising channel type supports this field.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AbsoluteTopImpressions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AbsoluteTopImpressions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint
	var s1 struct {
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	return nil
}

// GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList: A
// container for simulation points for simulations of type
// TARGET_IMPRESSION_SHARE.
type GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList struct {
	// Points: Projected metrics for a specific target impression share value.
	Points []*GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetRestriction: The list of
// per-targeting-dimension targeting settings.
type GoogleAdsSearchads360V23Common__TargetRestriction struct {
	// BidOnly: Indicates whether to restrict your ads to show only for the
	// criteria you have selected for this targeting_dimension, or to target all
	// values for this targeting_dimension and show ads based on your targeting in
	// other TargetingDimensions. A value of `true` means that these criteria will
	// only apply bid modifiers, and not affect targeting. A value of `false` means
	// that these criteria will restrict targeting as well as applying bid
	// modifiers.
	BidOnly bool `json:"bidOnly,omitempty"`
	// TargetingDimension: The targeting dimension that these settings apply to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword criteria, for example, 'mars cruise'. KEYWORD may be
	// used as a custom bid dimension. Keywords are always a targeting dimension,
	// so may not be set as a target "ALL" dimension with TargetRestriction.
	//   "AUDIENCE" - Audience criteria, which include user list, user interest,
	// custom affinity, and custom in market.
	//   "TOPIC" - Topic criteria for targeting categories of content, for example,
	// 'category::Animals>Pets' Used for Display and Video targeting.
	//   "GENDER" - Criteria for targeting gender.
	//   "AGE_RANGE" - Criteria for targeting age ranges.
	//   "PLACEMENT" - Placement criteria, which include websites like
	// 'www.flowers4sale.com', as well as mobile applications, mobile app
	// categories, YouTube videos, and YouTube channels.
	//   "PARENTAL_STATUS" - Criteria for parental status targeting.
	//   "INCOME_RANGE" - Criteria for income range targeting.
	TargetingDimension string `json:"targetingDimension,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BidOnly") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BidOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetRestriction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRestriction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetRestrictionOperation: Operation to be
// performed on a target restriction list in a mutate.
type GoogleAdsSearchads360V23Common__TargetRestrictionOperation struct {
	// Operator: Type of list operation to perform.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADD" - Add the restriction to the existing restrictions.
	//   "REMOVE" - Remove the restriction from the existing restrictions.
	Operator string `json:"operator,omitempty"`
	// Value: The target restriction being added to or removed from the list.
	Value *GoogleAdsSearchads360V23Common__TargetRestriction `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetRestrictionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRestrictionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetRoas: An automated bidding strategy
// that helps you maximize revenue while averaging a specific target return on
// ad spend (ROAS).
type GoogleAdsSearchads360V23Common__TargetRoas struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// CpcBidFloorMicros: Minimum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy. This should only
	// be set for portfolio bid strategies.
	CpcBidFloorMicros int64 `json:"cpcBidFloorMicros,omitempty,string"`
	// TargetRoas: Required. The chosen revenue (based on conversion data) per unit
	// of spend. Value must be between 0.01 and 1000.0, inclusive.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// TargetRoasTolerancePercentMillis: The percent of ROAS(return on advertising
	// spend) degradation tolerance allowed to increase traffic diversity and
	// conversion volume, specified in millis (for example, 10,000 = 10%). A value
	// of 10,000 means that the advertiser can expect ROAS degradation of up to 10%
	// of the specified target ROAS. This field is only mutable for portfolio
	// bidding strategies.
	TargetRoasTolerancePercentMillis int64 `json:"targetRoasTolerancePercentMillis,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetRoas) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRoas
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__TargetRoas) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRoas
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint: Projected metrics
// for a specific target ROAS amount.
type GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint struct {
	// BiddableConversions: Projected number of biddable conversions.
	BiddableConversions float64 `json:"biddableConversions,omitempty"`
	// BiddableConversionsValue: Projected total value of biddable conversions.
	BiddableConversionsValue float64 `json:"biddableConversionsValue,omitempty"`
	// Clicks: Projected number of clicks.
	Clicks int64 `json:"clicks,omitempty,string"`
	// CostMicros: Projected cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Projected number of impressions.
	Impressions int64 `json:"impressions,omitempty,string"`
	// RequiredBudgetAmountMicros: Projected required daily budget that the
	// advertiser must set in order to receive the estimated traffic, in micros of
	// advertiser currency.
	RequiredBudgetAmountMicros int64 `json:"requiredBudgetAmountMicros,omitempty,string"`
	// TargetRoas: The simulated target ROAS upon which projected metrics are
	// based.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// TopSlotImpressions: Projected number of top slot impressions. Only Search
	// advertising channel type supports this field.
	TopSlotImpressions int64 `json:"topSlotImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BiddableConversions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddableConversions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint
	var s1 struct {
		BiddableConversions      gensupport.JSONFloat64 `json:"biddableConversions"`
		BiddableConversionsValue gensupport.JSONFloat64 `json:"biddableConversionsValue"`
		TargetRoas               gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BiddableConversions = float64(s1.BiddableConversions)
	s.BiddableConversionsValue = float64(s1.BiddableConversionsValue)
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList: A container
// for simulation points for simulations of type TARGET_ROAS.
type GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList struct {
	// Points: Projected metrics for a series of target ROAS amounts.
	Points []*GoogleAdsSearchads360V23Common__TargetRoasSimulationPoint `json:"points,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Points") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Points") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetSpend: An automated bid strategy that
// sets your bids to help get as many clicks as possible within your budget.
type GoogleAdsSearchads360V23Common__TargetSpend struct {
	// CpcBidCeilingMicros: Maximum bid limit that can be set by the bid strategy.
	// The limit applies to all keywords managed by the strategy.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// TargetSpendMicros: Deprecated: The spend target under which to maximize
	// clicks. A TargetSpend bidder will attempt to spend the smaller of this value
	// or the natural throttling spend amount. If not specified, the budget is used
	// as the spend target. This field is deprecated and should no longer be used.
	// See
	// https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
	// for details.
	TargetSpendMicros int64 `json:"targetSpendMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetSpend) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetSpend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TargetingSetting: Settings for the
// targeting-related features, at the campaign and ad group levels. For more
// details about the targeting setting, visit
// https://support.google.com/google-ads/answer/7365594
type GoogleAdsSearchads360V23Common__TargetingSetting struct {
	// TargetRestrictionOperations: The list of operations changing the target
	// restrictions. Adding a target restriction with a targeting dimension that
	// already exists causes the existing target restriction to be replaced with
	// the new value.
	TargetRestrictionOperations []*GoogleAdsSearchads360V23Common__TargetRestrictionOperation `json:"targetRestrictionOperations,omitempty"`
	// TargetRestrictions: The per-targeting-dimension setting to restrict the
	// reach of your campaign or ad group.
	TargetRestrictions []*GoogleAdsSearchads360V23Common__TargetRestriction `json:"targetRestrictions,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "TargetRestrictionOperations") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRestrictionOperations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TargetingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TargetingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TextAdInfo: A text ad.
type GoogleAdsSearchads360V23Common__TextAdInfo struct {
	// Description1: The first line of the ad's description.
	Description1 string `json:"description1,omitempty"`
	// Description2: The second line of the ad's description.
	Description2 string `json:"description2,omitempty"`
	// Headline: The headline of the ad.
	Headline string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description1") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description1") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TextAdInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TextAdInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TextAsset: A Text asset.
type GoogleAdsSearchads360V23Common__TextAsset struct {
	// Text: Text content of the text asset.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Text") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Text") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TextAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TextAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TextLabel: A type of label displaying text
// on a colored background.
type GoogleAdsSearchads360V23Common__TextLabel struct {
	// BackgroundColor: Background color of the label in HEX format. This string
	// must match the regular expression '^\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'.
	// Note: The background color may not be visible for manager accounts.
	BackgroundColor string `json:"backgroundColor,omitempty"`
	// Description: A short description of the label. The length must be no more
	// than 200 characters.
	Description string `json:"description,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BackgroundColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BackgroundColor") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TextLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TextLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData: Contains
// third party measurement partner related data for video campaigns.
type GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData struct {
	// ClientId: The client ID that allows the measurement partner to join multiple
	// campaigns for a particular advertiser.
	ClientId string `json:"clientId,omitempty"`
	// ThirdPartyPlacementId: The third party placement ID that maps the
	// measurement partner data with a campaign (or a group of related campaigns)
	// specific data.
	ThirdPartyPlacementId string `json:"thirdPartyPlacementId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ThirdPartyIntegrationPartnerData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TopicInfo: A topic criterion. Use topics to
// target or exclude placements in the Google Display Network based on the
// category into which the placement falls (for example, "Pets &
// Animals/Pets/Dogs").
type GoogleAdsSearchads360V23Common__TopicInfo struct {
	// Path: The category to target or exclude. Each subsequent element in the
	// array describes a more specific sub-category. For example, "Pets & Animals",
	// "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" category.
	Path []string `json:"path,omitempty"`
	// TopicConstant: The Topic Constant resource name.
	TopicConstant string `json:"topicConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Path") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Path") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TopicInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TopicInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__TransactionAttribute: Attribute of the store
// sales transaction.
type GoogleAdsSearchads360V23Common__TransactionAttribute struct {
	// ConversionAction: The resource name of conversion action to report
	// conversions to. Required.
	ConversionAction string `json:"conversionAction,omitempty"`
	// CurrencyCode: Transaction currency code. ISO 4217 three-letter code is used.
	// Required.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// CustomValue: Value of the custom variable for each transaction. Allowed only
	// if a custom key is provided in the store sales metadata.
	CustomValue string `json:"customValue,omitempty"`
	// ItemAttribute: Item attributes of the transaction. Accessible only to
	// customers on the allow-list.
	ItemAttribute *GoogleAdsSearchads360V23Common__ItemAttribute `json:"itemAttribute,omitempty"`
	// OrderId: Transaction order id. Useful to group transactions which are part
	// of the same order.
	OrderId string `json:"orderId,omitempty"`
	// StoreAttribute: Store attributes of the transaction.
	StoreAttribute *GoogleAdsSearchads360V23Common__StoreAttribute `json:"storeAttribute,omitempty"`
	// TransactionAmountMicros: Transaction amount in micros. Required. Transaction
	// amount in micros needs to be greater than 1000. If item Attributes are
	// provided, it represents the total value of the items, after multiplying the
	// unit price per item by the quantity provided in the ItemAttributes.
	TransactionAmountMicros float64 `json:"transactionAmountMicros,omitempty"`
	// TransactionDateTime: Timestamp when transaction occurred. Required. The
	// format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an optional
	// timezone offset from UTC. If the offset is absent, the API will use the
	// account's timezone as default. Examples: "2018-03-05 09:15:00" or
	// "2018-02-01 14:34:30+03:00"
	TransactionDateTime string `json:"transactionDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionAction") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__TransactionAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__TransactionAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__TransactionAttribute) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__TransactionAttribute
	var s1 struct {
		TransactionAmountMicros gensupport.JSONFloat64 `json:"transactionAmountMicros"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TransactionAmountMicros = float64(s1.TransactionAmountMicros)
	return nil
}

// GoogleAdsSearchads360V23Common__TravelAdInfo: A travel ad.
type GoogleAdsSearchads360V23Common__TravelAdInfo struct {
}

// GoogleAdsSearchads360V23Common__UnifiedCallAsset: A unified call asset.
type GoogleAdsSearchads360V23Common__UnifiedCallAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CallConversionAction: The conversion action to attribute a call conversion
	// to. If not set, the default conversion action is used. This field only has
	// effect if call_conversion_reporting_state is set to
	// USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.
	CallConversionAction string `json:"callConversionAction,omitempty"`
	// CallConversionReportingState: Output only. Indicates whether this CallAsset
	// should use its own call conversion setting, follow the account level
	// setting, or disable call conversion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DISABLED" - Call conversion action is disabled.
	//   "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the account level.
	//   "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION" - Call conversion action will
	// use call conversion type set at the resource (call only ads/call extensions)
	// level.
	CallConversionReportingState string `json:"callConversionReportingState,omitempty"`
	// CallOnly: Whether the call only shows the phone number without a link to the
	// website. Applies to Microsoft Ads.
	CallOnly bool `json:"callOnly,omitempty"`
	// CallTrackingEnabled: Whether the call should be enabled on call tracking.
	// Applies to Microsoft Ads.
	CallTrackingEnabled bool `json:"callTrackingEnabled,omitempty"`
	// CountryCode: Two-letter country code of the phone number. Examples: 'US',
	// 'us'.
	CountryCode string `json:"countryCode,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// PhoneNumber: The advertiser's raw phone number. Examples: '1234567890',
	// '(123)456-7890'
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// UseSearcherTimeZone: Whether to show the call extension in search user's
	// time zone. Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UnifiedCallAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UnifiedCallAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UnifiedCalloutAsset: A unified callout
// asset.
type GoogleAdsSearchads360V23Common__UnifiedCalloutAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// CalloutText: The callout text. The length of this string should be between 1
	// and 25, inclusive.
	CalloutText string `json:"calloutText,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// UseSearcherTimeZone: Whether to show the asset in search user's time zone.
	// Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UnifiedCalloutAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UnifiedCalloutAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UnifiedLocationAsset: A unified location
// asset.
type GoogleAdsSearchads360V23Common__UnifiedLocationAsset struct {
	// BusinessProfileLocations: The list of business locations for the customer.
	// This will only be returned if the Location Asset is syncing from the
	// Business Profile account. It is possible to have multiple Business Profile
	// listings under the same account that point to the same Place ID.
	BusinessProfileLocations []*GoogleAdsSearchads360V23Common__BusinessProfileLocation `json:"businessProfileLocations,omitempty"`
	// LocationOwnershipType: The type of location ownership. If the type is
	// BUSINESS_OWNER, it will be served as a location extension. If the type is
	// AFFILIATE, it will be served as an affiliate location.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_OWNER" - Business Owner of location(legacy location extension -
	// LE).
	//   "AFFILIATE" - Affiliate location(Third party location extension - ALE).
	LocationOwnershipType string `json:"locationOwnershipType,omitempty"`
	// PlaceId: Place IDs uniquely identify a place in the Google Places database
	// and on Google Maps. This field is unique for a given customer ID and asset
	// type. See https://developers.google.com/places/web-service/place-id to learn
	// more about Place ID.
	PlaceId string `json:"placeId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessProfileLocations")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessProfileLocations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UnifiedLocationAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UnifiedLocationAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset: A Unified Page Feed
// asset.
type GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset struct {
	// Labels: Labels used to group the page urls.
	Labels []string `json:"labels,omitempty"`
	// PageUrl: The webpage that advertisers want to target.
	PageUrl string `json:"pageUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Labels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset: A unified sitelink
// asset.
type GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset struct {
	// AdScheduleTargets: List of non-overlapping schedules specifying all time
	// intervals for which the asset may serve. There can be a maximum of 6
	// schedules per day, 42 in total.
	AdScheduleTargets []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adScheduleTargets,omitempty"`
	// Description1: First line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description2 must also be
	// set.
	Description1 string `json:"description1,omitempty"`
	// Description2: Second line of the description for the sitelink. If set, the
	// length should be between 1 and 35, inclusive, and description1 must also be
	// set.
	Description2 string `json:"description2,omitempty"`
	// EndDate: Last date of when this asset is effective and still serving, in
	// yyyy-MM-dd format.
	EndDate string `json:"endDate,omitempty"`
	// LinkText: URL display text for the sitelink. The length of this string
	// should be between 1 and 25, inclusive.
	LinkText string `json:"linkText,omitempty"`
	// MobilePreferred: Whether the preference is for the sitelink asset to be
	// displayed on mobile devices. Applies to Microsoft Ads.
	MobilePreferred bool `json:"mobilePreferred,omitempty"`
	// StartDate: Start date of when this asset is effective and can begin serving,
	// in yyyy-MM-dd format.
	StartDate string `json:"startDate,omitempty"`
	// TrackingId: ID used for tracking clicks for the sitelink asset. This is a
	// Yahoo! Japan only field.
	TrackingId int64 `json:"trackingId,omitempty,string"`
	// UseSearcherTimeZone: Whether to show the sitelink asset in search user's
	// time zone. Applies to Microsoft Ads.
	UseSearcherTimeZone bool `json:"useSearcherTimeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdScheduleTargets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdScheduleTargets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo: Unknown listing
// dimension.
type GoogleAdsSearchads360V23Common__UnknownListingDimensionInfo struct {
}

// GoogleAdsSearchads360V23Common__UrlCollection: Collection of urls that is
// tagged with a unique identifier.
type GoogleAdsSearchads360V23Common__UrlCollection struct {
	// FinalMobileUrls: A list of possible final mobile URLs.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrls: A list of possible final URLs.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// TrackingUrlTemplate: URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// UrlCollectionId: Unique identifier for this UrlCollection instance.
	UrlCollectionId string `json:"urlCollectionId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FinalMobileUrls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FinalMobileUrls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UrlCollection) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UrlCollection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserAttribute: User attribute, can only be
// used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.
type GoogleAdsSearchads360V23Common__UserAttribute struct {
	// AcquisitionDateTime: Timestamp when the user was acquired. The format is
	// YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone
	// offset from UTC. If the offset is absent, the API will use the account's
	// timezone as default.
	AcquisitionDateTime string `json:"acquisitionDateTime,omitempty"`
	// AveragePurchaseCount: Advertiser defined average number of purchases that
	// are made by the user in a 30 day period.
	AveragePurchaseCount int64 `json:"averagePurchaseCount,omitempty"`
	// AveragePurchaseValueMicros: Advertiser defined average purchase value in
	// micros for the user.
	AveragePurchaseValueMicros int64 `json:"averagePurchaseValueMicros,omitempty,string"`
	// EventAttribute: Optional. Advertiser defined events and their attributes.
	// All the values in the nested fields are required. Currently this field is in
	// beta.
	EventAttribute []*GoogleAdsSearchads360V23Common__EventAttribute `json:"eventAttribute,omitempty"`
	// FirstPurchaseDateTime: Optional. Timestamp of the first purchase made by the
	// user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an
	// optional timezone offset from UTC. If the offset is absent, the API will use
	// the account's timezone as default.
	FirstPurchaseDateTime string `json:"firstPurchaseDateTime,omitempty"`
	// LastPurchaseDateTime: Timestamp of the last purchase made by the user. The
	// format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional
	// timezone offset from UTC. If the offset is absent, the API will use the
	// account's timezone as default.
	LastPurchaseDateTime string `json:"lastPurchaseDateTime,omitempty"`
	// LifecycleStage: Optional. Advertiser defined lifecycle stage for the user.
	// The accepted values are "Lead", "Active" and "Churned".
	LifecycleStage string `json:"lifecycleStage,omitempty"`
	// LifetimeValueBucket: Advertiser defined lifetime value bucket for the user.
	// The valid range for a lifetime value bucket is from 1 (low) to 10 (high),
	// except for remove operation where 0 will also be accepted.
	LifetimeValueBucket int64 `json:"lifetimeValueBucket,omitempty"`
	// LifetimeValueMicros: Advertiser defined lifetime value for the user.
	LifetimeValueMicros int64 `json:"lifetimeValueMicros,omitempty,string"`
	// ShoppingLoyalty: The shopping loyalty related data. Shopping utilizes this
	// data to provide users with a better experience. Accessible only to merchants
	// on the allow-list with the user's consent.
	ShoppingLoyalty *GoogleAdsSearchads360V23Common__ShoppingLoyalty `json:"shoppingLoyalty,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcquisitionDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcquisitionDateTime") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserData: User data holding user identifiers
// and attributes.
type GoogleAdsSearchads360V23Common__UserData struct {
	// Consent: The consent setting for the user. If set, will override the job
	// level consent for this user.
	Consent *GoogleAdsSearchads360V23Common__Consent `json:"consent,omitempty"`
	// TransactionAttribute: Additional transactions/attributes associated with the
	// user. Required when updating store sales data.
	TransactionAttribute *GoogleAdsSearchads360V23Common__TransactionAttribute `json:"transactionAttribute,omitempty"`
	// UserAttribute: Additional attributes associated with the user. Required when
	// updating customer match attributes. These have an expiration of 540 days.
	UserAttribute *GoogleAdsSearchads360V23Common__UserAttribute `json:"userAttribute,omitempty"`
	// UserIdentifiers: User identification info.
	UserIdentifiers []*GoogleAdsSearchads360V23Common__UserIdentifier `json:"userIdentifiers,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Consent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Consent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserIdentifier: identifying information.
type GoogleAdsSearchads360V23Common__UserIdentifier struct {
	// AddressInfo: Address information.
	AddressInfo *GoogleAdsSearchads360V23Common__OfflineUserAddressInfo `json:"addressInfo,omitempty"`
	// HashedEmail: Hashed email address using SHA-256 hash function after
	// normalization.
	HashedEmail string `json:"hashedEmail,omitempty"`
	// HashedPhoneNumber: Hashed phone number using SHA-256 hash function after
	// normalization (E164 standard).
	HashedPhoneNumber string `json:"hashedPhoneNumber,omitempty"`
	// MobileId: Mobile device ID (advertising ID/IDFA).
	MobileId string `json:"mobileId,omitempty"`
	// ThirdPartyUserId: Advertiser-assigned user ID for Customer Match upload, or
	// third-party-assigned user ID for
	ThirdPartyUserId string `json:"thirdPartyUserId,omitempty"`
	// UserIdentifierSource: Source of the user identifier when the upload is from
	// Store Sales
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version
	//   "FIRST_PARTY" - Indicates that the user identifier was provided by the
	// first party (advertiser).
	//   "THIRD_PARTY" - Indicates that the user identifier was provided by the
	// third party (partner).
	UserIdentifierSource string `json:"userIdentifierSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AddressInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AddressInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata: Metadata
// associated with a User Interest attribute.
type GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata struct {
	// UserInterestDescription: English language text description of the user
	// interest category (200 characters max).
	UserInterestDescription string `json:"userInterestDescription,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterestDescription") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterestDescription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserInterestAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserInterestInfo: Represents a particular
// interest-based topic to be targeted.
type GoogleAdsSearchads360V23Common__UserInterestInfo struct {
	// UserInterestCategory: The UserInterest resource name.
	UserInterestCategory string `json:"userInterestCategory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterestCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterestCategory") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserInterestInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserInterestInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserInterestSegment: User interest segment.
type GoogleAdsSearchads360V23Common__UserInterestSegment struct {
	// UserInterestCategory: The user interest resource.
	UserInterestCategory string `json:"userInterestCategory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterestCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterestCategory") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserInterestSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserInterestSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListActionInfo: Represents an action
// type used for building remarketing user lists.
type GoogleAdsSearchads360V23Common__UserListActionInfo struct {
	// ConversionAction: A conversion action that's not generated from remarketing.
	ConversionAction string `json:"conversionAction,omitempty"`
	// RemarketingAction: A remarketing action.
	RemarketingAction string `json:"remarketingAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionAction") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListActionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListActionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListAttributeMetadata: Metadata
// associated with a User List attribute.
type GoogleAdsSearchads360V23Common__UserListAttributeMetadata struct {
	// UserListType: The user list type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "REMARKETING" - UserList represented as a collection of conversion types.
	//   "LOGICAL" - UserList represented as a combination of other user
	// lists/interests.
	//   "EXTERNAL_REMARKETING" - UserList created in the Google Ad Manager
	// platform.
	//   "RULE_BASED" - UserList associated with a rule.
	//   "SIMILAR" - UserList with users similar to users of another UserList.
	//   "CRM_BASED" - UserList of first-party CRM data provided by advertiser in
	// the form of emails or other formats.
	//   "LOOKALIKE" - LookalikeUserlist, composed of users similar to those of a
	// configurable seed (set of UserLists)
	UserListType string `json:"userListType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserListType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserListType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo: A rule item
// composed of a date operation.
type GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo struct {
	// OffsetInDays: The relative date value of the right hand side denoted by
	// number of days offset from now. The value field will override this field
	// when both are present.
	OffsetInDays int64 `json:"offsetInDays,omitempty,string"`
	// Operator: Date comparison operator. This field is required and must be
	// populated when creating new date rule item.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EQUALS" - Equals.
	//   "NOT_EQUALS" - Not Equals.
	//   "BEFORE" - Before.
	//   "AFTER" - After.
	Operator string `json:"operator,omitempty"`
	// Value: String representing date value to be compared with the rule variable.
	// Supported date format is YYYY-MM-DD. Times are reported in the customer's
	// time zone.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OffsetInDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OffsetInDays") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListInfo: A User List criterion.
// Represents a user list that is defined by the advertiser to be targeted.
type GoogleAdsSearchads360V23Common__UserListInfo struct {
	// UserList: The User List resource name.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo: A user list logical
// rule. A rule has a logical operator (and/or/not) and a list of user lists as
// operands.
type GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo struct {
	// Operator: The logical operator of the rule.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ALL" - And - all of the operands.
	//   "ANY" - Or - at least one of the operands.
	//   "NONE" - Not - none of the operands.
	Operator string `json:"operator,omitempty"`
	// RuleOperands: The list of operands of the rule.
	RuleOperands []*GoogleAdsSearchads360V23Common__LogicalUserListOperandInfo `json:"ruleOperands,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListLogicalRuleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo: A rule item
// composed of a number operation.
type GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo struct {
	// Operator: Number comparison operator. This field is required and must be
	// populated when creating a new number rule item.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "GREATER_THAN" - Greater than.
	//   "GREATER_THAN_OR_EQUAL" - Greater than or equal.
	//   "EQUALS" - Equals.
	//   "NOT_EQUALS" - Not equals.
	//   "LESS_THAN" - Less than.
	//   "LESS_THAN_OR_EQUAL" - Less than or equal.
	Operator string `json:"operator,omitempty"`
	// Value: Number value to be compared with the variable. This field is required
	// and must be populated when creating a new number rule item.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo
	var s1 struct {
		Value gensupport.JSONFloat64 `json:"value"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Value = float64(s1.Value)
	return nil
}

// GoogleAdsSearchads360V23Common__UserListRuleInfo: A client defined rule
// based on custom parameters sent by web sites or uploaded by the advertiser.
type GoogleAdsSearchads360V23Common__UserListRuleInfo struct {
	// RuleItemGroups: List of rule item groups that defines this rule. Rule item
	// groups are grouped together based on rule_type.
	RuleItemGroups []*GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo `json:"ruleItemGroups,omitempty"`
	// RuleType: Rule type is used to determine how to group rule items. The
	// default is OR of ANDs (disjunctive normal form). That is, rule items will be
	// ANDed together within rule item groups and the groups themselves will be
	// ORed together. OR of ANDs is the only supported type for
	// FlexibleRuleUserList.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AND_OF_ORS" - Conjunctive normal form.
	//   "OR_OF_ANDS" - Disjunctive normal form.
	RuleType string `json:"ruleType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RuleItemGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RuleItemGroups") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListRuleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListRuleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo: A group of rule
// items.
type GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo struct {
	// RuleItems: Rule items that will be grouped together based on rule_type.
	RuleItems []*GoogleAdsSearchads360V23Common__UserListRuleItemInfo `json:"ruleItems,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RuleItems") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RuleItems") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListRuleItemGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListRuleItemInfo: An atomic rule item.
type GoogleAdsSearchads360V23Common__UserListRuleItemInfo struct {
	// DateRuleItem: An atomic rule item composed of a date operation.
	DateRuleItem *GoogleAdsSearchads360V23Common__UserListDateRuleItemInfo `json:"dateRuleItem,omitempty"`
	// Name: Rule variable name. It should match the corresponding key name fired
	// by the pixel. A name must begin with US-ascii letters or underscore or UTF8
	// code that is greater than 127 and consist of US-ascii letters or digits or
	// underscore or UTF8 code that is greater than 127. For websites, there are
	// two built-in variable URL (name = 'url__') and referrer URL (name =
	// 'ref_url__'). This field must be populated when creating a new rule item.
	Name string `json:"name,omitempty"`
	// NumberRuleItem: An atomic rule item composed of a number operation.
	NumberRuleItem *GoogleAdsSearchads360V23Common__UserListNumberRuleItemInfo `json:"numberRuleItem,omitempty"`
	// StringRuleItem: An atomic rule item composed of a string operation.
	StringRuleItem *GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo `json:"stringRuleItem,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DateRuleItem") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DateRuleItem") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListRuleItemInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListRuleItemInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListSegment: User list segment.
type GoogleAdsSearchads360V23Common__UserListSegment struct {
	// UserList: The user list resource.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserList") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListSegment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListSegment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo: A rule item
// composed of a string operation.
type GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo struct {
	// Operator: String comparison operator. This field is required and must be
	// populated when creating a new string rule item.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CONTAINS" - Contains.
	//   "EQUALS" - Equals.
	//   "STARTS_WITH" - Starts with.
	//   "ENDS_WITH" - Ends with.
	//   "NOT_EQUALS" - Not equals.
	//   "NOT_CONTAINS" - Not contains.
	//   "NOT_STARTS_WITH" - Not starts with.
	//   "NOT_ENDS_WITH" - Not ends with.
	Operator string `json:"operator,omitempty"`
	// Value: The right hand side of the string rule item. For URLs or referrer
	// URLs, the value can not contain illegal URL chars such as newlines, quotes,
	// tabs, or parentheses. This field is required and must be populated when
	// creating a new string rule item.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operator") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operator") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__UserListStringRuleItemInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__Value: A generic data container.
type GoogleAdsSearchads360V23Common__Value struct {
	// BooleanValue: A boolean.
	BooleanValue bool `json:"booleanValue,omitempty"`
	// DoubleValue: A double.
	DoubleValue float64 `json:"doubleValue,omitempty"`
	// FloatValue: A float.
	FloatValue float64 `json:"floatValue,omitempty"`
	// Int64Value: An int64.
	Int64Value int64 `json:"int64Value,omitempty,string"`
	// StringValue: A string.
	StringValue string `json:"stringValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BooleanValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BooleanValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__Value) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__Value
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__Value) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__Value
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		FloatValue  gensupport.JSONFloat64 `json:"floatValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	s.FloatValue = float64(s1.FloatValue)
	return nil
}

// GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo: A criterion to
// represent a single item group rule in Vertical Ads.
type GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo struct {
	// CityCriterionId: The resource name of the Geo Target Constant for the city.
	CityCriterionId string `json:"cityCriterionId,omitempty"`
	// CountryCriterionId: The resource name of the Geo Target Constant for the
	// country.
	CountryCriterionId string `json:"countryCriterionId,omitempty"`
	// HotelClass: Integer value specifying the class rating for a hotel. Ranges
	// from 1 to 5 stars.
	HotelClass int64 `json:"hotelClass,omitempty,string"`
	// ItemCode: The id specifying a particular Vertical Ad listing.
	ItemCode string `json:"itemCode,omitempty"`
	// RegionCriterionId: The resource name of the Geo Target Constant for the
	// region.
	RegionCriterionId string `json:"regionCriterionId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CityCriterionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CityCriterionId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo: A
// criterion for targeting a shared set of rules for item groups in Vertical
// Ads (e.g., for hotel ads).
type GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo struct {
	// SharedSet: The shared set resource name of the vertical ads item group rule
	// list.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SharedSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__VideoLineupInfo: A Video lineup criterion.
type GoogleAdsSearchads360V23Common__VideoLineupInfo struct {
	// VideoLineupId: ID for a Video lineup. Contact your Google business
	// development representative for details.
	VideoLineupId int64 `json:"videoLineupId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "VideoLineupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VideoLineupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__VideoLineupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__VideoLineupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__WebhookDelivery: Google notifies the
// advertiser of leads by making HTTP calls to an endpoint they specify. The
// requests contain JSON matching a schema that Google publishes as part of
// form ads documentation.
type GoogleAdsSearchads360V23Common__WebhookDelivery struct {
	// AdvertiserWebhookUrl: Webhook url specified by advertiser to send the lead.
	AdvertiserWebhookUrl string `json:"advertiserWebhookUrl,omitempty"`
	// GoogleSecret: Anti-spoofing secret set by the advertiser as part of the
	// webhook payload.
	GoogleSecret string `json:"googleSecret,omitempty"`
	// PayloadSchemaVersion: The schema version that this delivery instance will
	// use.
	PayloadSchemaVersion int64 `json:"payloadSchemaVersion,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdvertiserWebhookUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertiserWebhookUrl") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WebhookDelivery) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WebhookDelivery
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__WebpageConditionInfo: Logical expression for
// targeting webpages of an advertiser's website.
type GoogleAdsSearchads360V23Common__WebpageConditionInfo struct {
	// Argument: Argument of webpage targeting condition.
	Argument string `json:"argument,omitempty"`
	// Operand: Operand of webpage targeting condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "URL" - Operand denoting a webpage URL targeting condition.
	//   "CATEGORY" - Operand denoting a webpage category targeting condition.
	//   "PAGE_TITLE" - Operand denoting a webpage title targeting condition.
	//   "PAGE_CONTENT" - Operand denoting a webpage content targeting condition.
	//   "CUSTOM_LABEL" - Operand denoting a webpage custom label targeting
	// condition.
	Operand string `json:"operand,omitempty"`
	// Operator: Operator of webpage targeting condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EQUALS" - The argument web condition is equal to the compared web
	// condition.
	//   "CONTAINS" - The argument web condition is part of the compared web
	// condition.
	Operator string `json:"operator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Argument") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Argument") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WebpageConditionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WebpageConditionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__WebpageInfo: Represents a criterion for
// targeting webpages of an advertiser's website.
type GoogleAdsSearchads360V23Common__WebpageInfo struct {
	// Conditions: Conditions, or logical expressions, for webpage targeting. The
	// list of webpage targeting conditions are and-ed together when evaluated for
	// targeting. An empty list of conditions indicates all pages of the campaign's
	// website are targeted. This field is required for CREATE operations and is
	// prohibited on UPDATE operations.
	Conditions []*GoogleAdsSearchads360V23Common__WebpageConditionInfo `json:"conditions,omitempty"`
	// CoveragePercentage: Website criteria coverage percentage. This is the
	// computed percentage of website coverage based on the website target,
	// negative website target and negative keywords in the ad group and campaign.
	// For instance, when coverage returns as 1, it indicates it has 100% coverage.
	// This field is read-only.
	CoveragePercentage float64 `json:"coveragePercentage,omitempty"`
	// CriterionName: The name of the criterion that is defined by this parameter.
	// The name value will be used for identifying, sorting and filtering criteria
	// with this type of parameters. This field is required for CREATE operations
	// and is prohibited on UPDATE operations.
	CriterionName string `json:"criterionName,omitempty"`
	// Sample: List of sample urls that match the website target. This field is
	// read-only.
	Sample *GoogleAdsSearchads360V23Common__WebpageSampleInfo `json:"sample,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Conditions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conditions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WebpageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WebpageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Common__WebpageInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Common__WebpageInfo
	var s1 struct {
		CoveragePercentage gensupport.JSONFloat64 `json:"coveragePercentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.CoveragePercentage = float64(s1.CoveragePercentage)
	return nil
}

// GoogleAdsSearchads360V23Common__WebpageListInfo: Represents a list of
// webpage criteria.
type GoogleAdsSearchads360V23Common__WebpageListInfo struct {
	// SharedSet: Shared set resource name of the webpage list.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SharedSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WebpageListInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WebpageListInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__WebpageSampleInfo: List of sample urls that
// match the website target
type GoogleAdsSearchads360V23Common__WebpageSampleInfo struct {
	// SampleUrls: Webpage sample urls
	SampleUrls []string `json:"sampleUrls,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SampleUrls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SampleUrls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WebpageSampleInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WebpageSampleInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo: Whatsapp
// information to use for messaging.
type GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo struct {
	// CountryCode: Required. Two-letter country code of the phone number.
	// Examples: 'US', 'us'.
	CountryCode string `json:"countryCode,omitempty"`
	// PhoneNumber: Required. Whatsapp phone number of the business. Examples:
	// '1234567890', '(123)456-7890'.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__WhatsappBusinessMessageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YearMonth: Year month.
type GoogleAdsSearchads360V23Common__YearMonth struct {
	// Month: The month of the year. (for example, FEBRUARY).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "JANUARY" - January.
	//   "FEBRUARY" - February.
	//   "MARCH" - March.
	//   "APRIL" - April.
	//   "MAY" - May.
	//   "JUNE" - June.
	//   "JULY" - July.
	//   "AUGUST" - August.
	//   "SEPTEMBER" - September.
	//   "OCTOBER" - October.
	//   "NOVEMBER" - November.
	//   "DECEMBER" - December.
	Month string `json:"month,omitempty"`
	// Year: The year (for example, 2020).
	Year int64 `json:"year,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Month") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Month") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YearMonth) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YearMonth
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YearMonthRange: The year month range
// inclusive of the start and end months. Eg: A year month range to represent
// Jan 2020 would be: (Jan 2020, Jan 2020).
type GoogleAdsSearchads360V23Common__YearMonthRange struct {
	// End: The inclusive end year month.
	End *GoogleAdsSearchads360V23Common__YearMonth `json:"end,omitempty"`
	// Start: The inclusive start year month.
	Start *GoogleAdsSearchads360V23Common__YearMonth `json:"start,omitempty"`
	// ForceSendFields is a list of field names (e.g. "End") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "End") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YearMonthRange) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YearMonthRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata: Metadata
// associated with a YouTube channel attribute.
type GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata struct {
	// SubscriberCount: The approximate number of subscribers to the YouTube
	// channel.
	SubscriberCount int64 `json:"subscriberCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "SubscriberCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SubscriberCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YouTubeChannelAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YouTubeChannelInfo: A YouTube Channel
// criterion.
type GoogleAdsSearchads360V23Common__YouTubeChannelInfo struct {
	// ChannelId: The YouTube uploader channel id or the channel code of a YouTube
	// channel.
	ChannelId string `json:"channelId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YouTubeChannelInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YouTubeChannelInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata: Metadata for
// a YouTube video attribute.
type GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata struct {
	// CommentsCount: The total number of comments.
	CommentsCount int64 `json:"commentsCount,omitempty,string"`
	// LikesCount: The total number of likes.
	LikesCount int64 `json:"likesCount,omitempty,string"`
	// PublishDate: The date that the video was created. Formatted as "yyyy-mm-dd".
	PublishDate string `json:"publishDate,omitempty"`
	// ThumbnailUrl: The URL of the video thumbnail, prefixed by
	// "https://img.youtube.com/".
	ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
	// VideoProperties: The properties of this video (such as shorts, live stream).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "LIVE_STREAM" - Video is a live stream.
	//   "SHORTS" - Video is Shorts eligible.
	VideoProperties []string `json:"videoProperties,omitempty"`
	// VideoUrl: The URL of the video, prefixed by "https://www.youtube.com/".
	VideoUrl string `json:"videoUrl,omitempty"`
	// ViewsCount: The total number of views.
	ViewsCount int64 `json:"viewsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CommentsCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CommentsCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YouTubeVideoAttributeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YouTubeVideoInfo: A YouTube Video criterion.
type GoogleAdsSearchads360V23Common__YouTubeVideoInfo struct {
	// VideoId: YouTube video id as it appears on the YouTube watch page.
	VideoId string `json:"videoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VideoId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VideoId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YouTubeVideoInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YouTubeVideoInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__YoutubeVideoAsset: A YouTube asset.
type GoogleAdsSearchads360V23Common__YoutubeVideoAsset struct {
	// YoutubeVideoId: YouTube video id. This is the 11 character string value used
	// in the YouTube video URL.
	YoutubeVideoId string `json:"youtubeVideoId,omitempty"`
	// YoutubeVideoTitle: YouTube video title.
	YoutubeVideoTitle string `json:"youtubeVideoTitle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "YoutubeVideoId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "YoutubeVideoId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__YoutubeVideoAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__YoutubeVideoAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo: Zalo information to
// use for messaging.
type GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo struct {
	// CustomName: Custom name generated by the advertiser for their Zalo Account.
	// These names will usually be registered brands or trademarks.
	CustomName string `json:"customName,omitempty"`
	// OaId: Zalo Official Account ID of the advertiser.
	OaId int64 `json:"oaId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CustomName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Common__ZaloBusinessMessageInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement: A part of a
// field path.
type GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement struct {
	// FieldName: The name of a field or a oneof
	FieldName string `json:"fieldName,omitempty"`
	// Index: If field_name is a repeated field, this is the element that failed
	Index int64 `json:"index,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails: Error
// details for a budget below per-day minimum error.
type GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails struct {
	// BudgetPerDayMinimumMicros: The minimum budget required by the campaign per
	// day, in micros of the advertiser currency. Applies to both daily and custom
	// budgets.
	BudgetPerDayMinimumMicros int64 `json:"budgetPerDayMinimumMicros,omitempty,string"`
	// CurrencyCode: The advertiser's currency, represented as a three-letter ISO
	// 4217 currency code (such as "USD").
	CurrencyCode string `json:"currencyCode,omitempty"`
	// FailedBudgetAmountMicros: The budget amount value that was rejected as too
	// low, in micros of the advertiser currency. Only set if this error is caused
	// by the amount field value.
	FailedBudgetAmountMicros int64 `json:"failedBudgetAmountMicros,omitempty,string"`
	// FailedBudgetTotalAmountMicros: The budget total_amount value that was
	// rejected as too low, in micros of the advertiser currency. Only set if this
	// error is caused by the total_amount field value.
	FailedBudgetTotalAmountMicros int64 `json:"failedBudgetTotalAmountMicros,omitempty,string"`
	// MinimumBudgetAmountMicros: The minimum value for the budget's amount field
	// required by the campaign, in micros of the advertiser currency. Only set if
	// this error is caused by the amount field value.
	MinimumBudgetAmountMicros int64 `json:"minimumBudgetAmountMicros,omitempty,string"`
	// MinimumBudgetTotalAmountMicros: The minimum value for the budget's
	// total_amount field required by the campaign given its configured start and
	// end time, in micros of the advertiser currency. Only set if this error is
	// caused by the total_amount field value.
	MinimumBudgetTotalAmountMicros int64 `json:"minimumBudgetTotalAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BudgetPerDayMinimumMicros")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetPerDayMinimumMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorCode: The error reason represented by
// type and enum.
type GoogleAdsSearchads360V23Errors__ErrorCode struct {
	// AccessInvitationError: The reasons for the access invitation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_EMAIL_ADDRESS" - The email address is invalid for sending an
	// invitation.
	//   "EMAIL_ADDRESS_ALREADY_HAS_ACCESS" - Email address already has access to
	// this customer.
	//   "INVALID_INVITATION_STATUS" - Invalid invitation status for the operation.
	//   "GOOGLE_CONSUMER_ACCOUNT_NOT_ALLOWED" - Email address cannot be like
	// abc+foo@google.com.
	//   "INVALID_INVITATION_ID" - Invalid invitation ID.
	//   "EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION" - Email address already has
	// a pending invitation.
	//   "PENDING_INVITATIONS_LIMIT_EXCEEDED" - Pending invitation limit exceeded
	// for the customer.
	//   "EMAIL_DOMAIN_POLICY_VIOLATED" - Email address doesn't conform to the
	// email domain policy. See
	// https://support.google.com/google-ads/answer/2375456
	AccessInvitationError string `json:"accessInvitationError,omitempty"`
	// AccountBudgetProposalError: The reasons for account budget proposal errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FIELD_MASK_NOT_ALLOWED" - The field mask must be empty for
	// create/end/remove proposals.
	//   "IMMUTABLE_FIELD" - The field cannot be set because of the proposal type.
	//   "REQUIRED_FIELD_MISSING" - The field is required because of the proposal
	// type.
	//   "CANNOT_CANCEL_APPROVED_PROPOSAL" - Proposals that have been approved
	// cannot be cancelled.
	//   "CANNOT_REMOVE_UNAPPROVED_BUDGET" - Budgets that haven't been approved
	// cannot be removed.
	//   "CANNOT_REMOVE_RUNNING_BUDGET" - Budgets that are currently running cannot
	// be removed.
	//   "CANNOT_END_UNAPPROVED_BUDGET" - Budgets that haven't been approved cannot
	// be truncated.
	//   "CANNOT_END_INACTIVE_BUDGET" - Only budgets that are currently running can
	// be truncated.
	//   "BUDGET_NAME_REQUIRED" - All budgets must have names.
	//   "CANNOT_UPDATE_OLD_BUDGET" - Expired budgets cannot be edited after a
	// sufficient amount of time has passed.
	//   "CANNOT_END_IN_PAST" - It is not permissible a propose a new budget that
	// ends in the past.
	//   "CANNOT_EXTEND_END_TIME" - An expired budget cannot be extended to overlap
	// with the running budget.
	//   "PURCHASE_ORDER_NUMBER_REQUIRED" - A purchase order number is required.
	//   "PENDING_UPDATE_PROPOSAL_EXISTS" - Budgets that have a pending update
	// cannot be updated.
	//   "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP" - Cannot
	// propose more than one budget when the corresponding billing setup hasn't
	// been approved.
	//   "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET" - Cannot update the start
	// time of a budget that has already started.
	//   "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED" - Cannot update the
	// spending limit of a budget with an amount lower than what has already been
	// spent.
	//   "UPDATE_IS_NO_OP" - Cannot propose a budget update without actually
	// changing any fields.
	//   "END_TIME_MUST_FOLLOW_START_TIME" - The end time must come after the start
	// time.
	//   "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP" - The budget's date
	// range must fall within the date range of its billing setup.
	//   "NOT_AUTHORIZED" - The user is not authorized to mutate budgets for the
	// given billing setup.
	//   "INVALID_BILLING_SETUP" - Mutates are not allowed for the given billing
	// setup.
	//   "OVERLAPS_EXISTING_BUDGET" - Budget creation failed as it overlaps with a
	// pending budget proposal or an approved budget.
	//   "CANNOT_CREATE_BUDGET_THROUGH_API" - The control setting in user's
	// payments profile doesn't allow budget creation through API. Log in to Google
	// Ads to create budget.
	//   "INVALID_MASTER_SERVICE_AGREEMENT" - Master service agreement has not been
	// signed yet for the Payments Profile.
	//   "CANCELED_BILLING_SETUP" - Budget mutates are not allowed because the
	// given billing setup is canceled.
	AccountBudgetProposalError string `json:"accountBudgetProposalError,omitempty"`
	// AccountLinkError: The reasons for the account link status change error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_STATUS" - The new link status is invalid.
	//   "PERMISSION_DENIED" - The authenticated user doesn't have the permission
	// to do the change.
	AccountLinkError string `json:"accountLinkError,omitempty"`
	// AdCustomizerError: The reasons for the ad customizer error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "COUNTDOWN_INVALID_DATE_FORMAT" - Invalid date argument in countdown
	// function.
	//   "COUNTDOWN_DATE_IN_PAST" - Countdown end date is in the past.
	//   "COUNTDOWN_INVALID_LOCALE" - Invalid locale string in countdown function.
	//   "COUNTDOWN_INVALID_START_DAYS_BEFORE" - Days-before argument to countdown
	// function is not positive.
	//   "UNKNOWN_USER_LIST" - A user list referenced in an IF function does not
	// exist.
	AdCustomizerError string `json:"adCustomizerError,omitempty"`
	// AdError: An error with an Ad Group Ad mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE" - Ad customizers are not
	// supported for ad type.
	//   "APPROXIMATELY_TOO_LONG" - Estimating character sizes the string is too
	// long.
	//   "APPROXIMATELY_TOO_SHORT" - Estimating character sizes the string is too
	// short.
	//   "BAD_SNIPPET" - There is a problem with the snippet.
	//   "CANNOT_MODIFY_AD" - Cannot modify an ad.
	//   "CANNOT_SET_BUSINESS_NAME_IF_URL_SET" - business name and url cannot be
	// set at the same time
	//   "CANNOT_SET_FIELD" - The specified field is incompatible with this ad's
	// type or settings.
	//   "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET" - Cannot set field when
	// originAdId is set.
	//   "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING" - Cannot set field when an
	// existing ad id is set for sharing.
	//   "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE" - Cannot set allowFlexibleColor
	// false if no color is provided by user.
	//   "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING" - When user select
	// native, no color control is allowed because we will always respect publisher
	// color for native format serving.
	//   "CANNOT_SET_URL" - Cannot specify a url for the ad type
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Cannot specify a tracking or mobile url
	// without also setting final urls
	//   "CANNOT_SET_WITH_FINAL_URLS" - Cannot specify a legacy url and a final url
	// simultaneously
	//   "CANNOT_SET_WITH_URL_DATA" - Cannot specify a urls in UrlData and in
	// template fields simultaneously.
	//   "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR" - This operator cannot be used with
	// a subclass of Ad.
	//   "CUSTOMER_NOT_APPROVED_MOBILEADS" - Customer is not approved for mobile
	// ads.
	//   "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS" - Customer is not approved for 3PAS
	// richmedia ads.
	//   "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS" - Customer is not approved
	// for 3PAS redirect richmedia (Ad Exchange) ads.
	//   "CUSTOMER_NOT_ELIGIBLE" - Not an eligible customer
	//   "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL" - Customer is not eligible
	// for updating beacon url
	//   "DIMENSION_ALREADY_IN_UNION" - There already exists an ad with the same
	// dimensions in the union.
	//   "DIMENSION_MUST_BE_SET" - Ad's dimension must be set before setting union
	// dimension.
	//   "DIMENSION_NOT_IN_UNION" - Ad's dimension must be included in the union
	// dimensions.
	//   "DISPLAY_URL_CANNOT_BE_SPECIFIED" - Display Url cannot be specified
	// (applies to Ad Exchange Ads)
	//   "DOMESTIC_PHONE_NUMBER_FORMAT" - Telephone number contains invalid
	// characters or invalid format. Re-enter your number using digits (0-9),
	// dashes (-), and parentheses only.
	//   "EMERGENCY_PHONE_NUMBER" - Emergency telephone numbers are not allowed.
	// Enter a valid domestic phone number to connect customers to your business.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID" - A feed attribute
	// referenced in an ad customizer tag is not in the ad customizer mapping for
	// the feed.
	//   "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH" - The ad customizer field mapping
	// for the feed attribute does not match the expected field type.
	//   "ILLEGAL_AD_CUSTOMIZER_TAG_USE" - The use of ad customizer tags in the ad
	// text is disallowed. Details in trigger.
	//   "ILLEGAL_TAG_USE" - Tags of the form {PH_x}, where x is a number, are
	// disallowed in ad text.
	//   "INCONSISTENT_DIMENSIONS" - The dimensions of the ad are specified or
	// derived in multiple ways and are not consistent.
	//   "INCONSISTENT_STATUS_IN_TEMPLATE_UNION" - The status cannot differ among
	// template ads of the same union.
	//   "INCORRECT_LENGTH" - The length of the string is not valid.
	//   "INELIGIBLE_FOR_UPGRADE" - The ad is ineligible for upgrade.
	//   "INVALID_AD_ADDRESS_CAMPAIGN_TARGET" - User cannot create mobile ad for
	// countries targeted in specified campaign.
	//   "INVALID_AD_TYPE" - Invalid Ad type. A specific type of Ad is required.
	//   "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE" - Headline, description or phone
	// cannot be present when creating mobile image ad.
	//   "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT" - Image cannot be present when
	// creating mobile text ad.
	//   "INVALID_CALL_TO_ACTION_TEXT" - Invalid call to action text.
	//   "INVALID_CHARACTER_FOR_URL" - Invalid character in URL.
	//   "INVALID_COUNTRY_CODE" - Creative's country code is not valid.
	//   "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG" - Invalid use of Expanded Dynamic
	// Search Ads tags ({lpurl} etc.)
	//   "INVALID_INPUT" - An input error whose real reason was not properly mapped
	// (should not happen).
	//   "INVALID_MARKUP_LANGUAGE" - An invalid markup language was entered.
	//   "INVALID_MOBILE_CARRIER" - An invalid mobile carrier was entered.
	//   "INVALID_MOBILE_CARRIER_TARGET" - Specified mobile carriers target a
	// country not targeted by the campaign.
	//   "INVALID_NUMBER_OF_ELEMENTS" - Wrong number of elements for given element
	// type
	//   "INVALID_PHONE_NUMBER_FORMAT" - The format of the telephone number is
	// incorrect. Re-enter the number using the correct format.
	//   "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID" - The certified vendor
	// format id is incorrect.
	//   "INVALID_TEMPLATE_DATA" - The template ad data contains validation errors.
	//   "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE" - The template field doesn't have
	// have the correct type.
	//   "INVALID_TEMPLATE_ID" - Invalid template id.
	//   "LINE_TOO_WIDE" - After substituting replacement strings, the line is too
	// wide.
	//   "MISSING_AD_CUSTOMIZER_MAPPING" - The feed referenced must have ad
	// customizer mapping to be used in a customizer tag.
	//   "MISSING_ADDRESS_COMPONENT" - Missing address component in template
	// element address field.
	//   "MISSING_ADVERTISEMENT_NAME" - An ad name must be entered.
	//   "MISSING_BUSINESS_NAME" - Business name must be entered.
	//   "MISSING_DESCRIPTION1" - Description (line 2) must be entered.
	//   "MISSING_DESCRIPTION2" - Description (line 3) must be entered.
	//   "MISSING_DESTINATION_URL_TAG" - The destination url must contain at least
	// one tag (for example, {lpurl})
	//   "MISSING_LANDING_PAGE_URL_TAG" - The tracking url template of
	// ExpandedDynamicSearchAd must contain at least one tag. (for example,
	// {lpurl})
	//   "MISSING_DIMENSION" - A valid dimension must be specified for this ad.
	//   "MISSING_DISPLAY_URL" - A display URL must be entered.
	//   "MISSING_HEADLINE" - Headline must be entered.
	//   "MISSING_HEIGHT" - A height must be entered.
	//   "MISSING_IMAGE" - An image must be entered.
	//   "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS" - Marketing image or product
	// videos are required.
	//   "MISSING_MARKUP_LANGUAGES" - The markup language in which your site is
	// written must be entered.
	//   "MISSING_MOBILE_CARRIER" - A mobile carrier must be entered.
	//   "MISSING_PHONE" - Phone number must be entered.
	//   "MISSING_REQUIRED_TEMPLATE_FIELDS" - Missing required template fields
	//   "MISSING_TEMPLATE_FIELD_VALUE" - Missing a required field value
	//   "MISSING_TEXT" - The ad must have text.
	//   "MISSING_VISIBLE_URL" - A visible URL must be entered.
	//   "MISSING_WIDTH" - A width must be entered.
	//   "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED" - Only 1 feed can be used as the
	// source of ad customizer substitutions in a single ad.
	//   "MUST_USE_TEMP_AD_UNION_ID_ON_ADD" - TempAdUnionId must be use when adding
	// template ads.
	//   "TOO_LONG" - The string has too many characters.
	//   "TOO_SHORT" - The string has too few characters.
	//   "UNION_DIMENSIONS_CANNOT_CHANGE" - Ad union dimensions cannot change for
	// saved ads.
	//   "UNKNOWN_ADDRESS_COMPONENT" - Address component is not {country, lat,
	// lng}.
	//   "UNKNOWN_FIELD_NAME" - Unknown unique field name
	//   "UNKNOWN_UNIQUE_NAME" - Unknown unique name (template element type
	// specifier)
	//   "UNSUPPORTED_DIMENSIONS" - Unsupported ad dimension
	//   "URL_INVALID_SCHEME" - URL starts with an invalid scheme.
	//   "URL_INVALID_TOP_LEVEL_DOMAIN" - URL ends with an invalid top-level domain
	// name.
	//   "URL_MALFORMED" - URL contains illegal characters.
	//   "URL_NO_HOST" - URL must contain a host name.
	//   "URL_NOT_EQUIVALENT" - URL not equivalent during upgrade.
	//   "URL_HOST_NAME_TOO_LONG" - URL host name too long to be stored as visible
	// URL (applies to Ad Exchange ads)
	//   "URL_NO_SCHEME" - URL must start with a scheme.
	//   "URL_NO_TOP_LEVEL_DOMAIN" - URL should end in a valid domain extension,
	// such as .com or .net.
	//   "URL_PATH_NOT_ALLOWED" - URL must not end with a path.
	//   "URL_PORT_NOT_ALLOWED" - URL must not specify a port.
	//   "URL_QUERY_NOT_ALLOWED" - URL must not contain a query.
	//   "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG" - A url scheme is not
	// allowed in front of tag in tracking url template (for example,
	// http://{lpurl})
	//   "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE" - The user does not have
	// permissions to create a template ad for the given template.
	//   "INCONSISTENT_EXPANDABLE_SETTINGS" - Expandable setting is
	// inconsistent/wrong. For example, an AdX ad is invalid if it has a expandable
	// vendor format but no expanding directions specified, or expanding directions
	// is specified, but the vendor format is not expandable.
	//   "INVALID_FORMAT" - Format is invalid
	//   "INVALID_FIELD_TEXT" - The text of this field did not match a pattern of
	// allowed values.
	//   "ELEMENT_NOT_PRESENT" - Template element is mising
	//   "IMAGE_ERROR" - Error occurred during image processing
	//   "VALUE_NOT_IN_RANGE" - The value is not within the valid range
	//   "FIELD_NOT_PRESENT" - Template element field is not present
	//   "ADDRESS_NOT_COMPLETE" - Address is incomplete
	//   "ADDRESS_INVALID" - Invalid address
	//   "VIDEO_RETRIEVAL_ERROR" - Error retrieving specified video
	//   "AUDIO_ERROR" - Error processing audio
	//   "INVALID_YOUTUBE_DISPLAY_URL" - Display URL is incorrect for YouTube PYV
	// ads
	//   "TOO_MANY_PRODUCT_IMAGES" - Too many product Images in GmailAd
	//   "TOO_MANY_PRODUCT_VIDEOS" - Too many product Videos in GmailAd
	//   "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE" - The device preference is
	// not compatible with the ad type
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for specified country.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Carrier specific short
	// number is not allowed.
	//   "DISALLOWED_NUMBER_TYPE" - Specified phone number type is disallowed.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number not supported for
	// country.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// not supported with call tracking enabled for country.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate phone number is not
	// allowed.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone number is not allowed.
	//   "INVALID_CALL_CONVERSION_TYPE_ID" - Invalid call conversion type id.
	//   "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID" - Cannot
	// disable call conversion and set conversion type id.
	//   "CANNOT_SET_PATH2_WITHOUT_PATH1" - Cannot set path2 without path1.
	//   "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME" - Missing domain name in
	// campaign setting when adding expanded dynamic search ad.
	//   "INCOMPATIBLE_WITH_RESTRICTION_TYPE" - The associated ad is not compatible
	// with restriction type.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Consent for call
	// recording is required for creating/updating call only ads. See
	// https://support.google.com/google-ads/answer/7412639.
	//   "MISSING_IMAGE_OR_MEDIA_BUNDLE" - Either an image or a media bundle is
	// required in a display upload ad.
	//   "PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN" - The display upload product
	// type is not supported in this campaign.
	//   "PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE" - The default value of an ad
	// placeholder can not be the empty string.
	//   "PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE" - Ad
	// placeholders with countdown functions must not have a default value.
	//   "PLACEHOLDER_DEFAULT_VALUE_MISSING" - A previous ad placeholder that had a
	// default value was found which means that all (non-countdown) placeholders
	// must have a default value. This ad placeholder does not have a default
	// value.
	//   "UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE" - A previous ad placeholder that
	// did not have a default value was found which means that no placeholders may
	// have a default value. This ad placeholder does have a default value.
	//   "AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT" - Two ad customizers may not be
	// directly adjacent in an ad text. They must be separated by at least one
	// character.
	//   "UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION" - The ad is not associated with
	// any enabled AdGroupAd, and cannot be updated.
	//   "CALL_AD_VERIFICATION_URL_FINAL_URL_DOES_NOT_HAVE_SAME_DOMAIN" - Call Ad
	// verification url and final url don't have same domain.
	//   "CALL_AD_FINAL_URL_AND_VERIFICATION_URL_CANNOT_BOTH_BE_EMPTY" - Final url
	// and verification url cannot both be empty for call ads.
	//   "TOO_MANY_AD_CUSTOMIZERS" - Too many ad customizers in one asset.
	//   "INVALID_AD_CUSTOMIZER_FORMAT" - The ad customizer tag is recognized, but
	// the format is invalid.
	//   "NESTED_AD_CUSTOMIZER_SYNTAX" - Customizer tags cannot be nested.
	//   "UNSUPPORTED_AD_CUSTOMIZER_SYNTAX" - The ad customizer syntax used in the
	// ad is not supported.
	//   "UNPAIRED_BRACE_IN_AD_CUSTOMIZER_TAG" - There exists unpaired brace in the
	// ad customizer tag.
	//   "MORE_THAN_ONE_COUNTDOWN_TAG_TYPE_EXISTS" - More than one type of
	// countdown tag exists among all text lines.
	//   "DATE_TIME_IN_COUNTDOWN_TAG_IS_INVALID" - Date time in the countdown tag
	// is invalid.
	//   "DATE_TIME_IN_COUNTDOWN_TAG_IS_PAST" - Date time in the countdown tag is
	// in the past.
	//   "UNRECOGNIZED_AD_CUSTOMIZER_TAG_FOUND" - Cannot recognize the ad
	// customizer tag.
	//   "CUSTOMIZER_TYPE_FORBIDDEN_FOR_FIELD" - Customizer type forbidden for this
	// field.
	//   "INVALID_CUSTOMIZER_ATTRIBUTE_NAME" - Customizer attribute name is
	// invalid.
	//   "STORE_MISMATCH" - App store value does not match the value of the app
	// store in the app specified in the campaign.
	//   "MISSING_REQUIRED_IMAGE_ASPECT_RATIO" - Missing required image aspect
	// ratio.
	//   "MISMATCHED_ASPECT_RATIOS" - Aspect ratios mismatch between different
	// assets.
	//   "DUPLICATE_IMAGE_ACROSS_CAROUSEL_CARDS" - Images must be unique between
	// different carousel card assets.
	//   "INVALID_YOUTUBE_VIDEO_ASSET_ID_FOR_VIDEO_ADS_SEQUENCING" - For video ads
	// sequencing, YouTube video asset ID has to be defined in
	// `campaign.video_campaign_settings.video_ad_sequence.steps.asset_id`.
	AdError string `json:"adError,omitempty"`
	// AdGroupAdError: The reasons for the ad group ad error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_AD_LABEL_DOES_NOT_EXIST" - No link found between the adgroup ad
	// and the label.
	//   "AD_GROUP_AD_LABEL_ALREADY_EXISTS" - The label has already been attached
	// to the adgroup ad.
	//   "AD_NOT_UNDER_ADGROUP" - The specified ad was not found in the adgroup
	//   "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD" - Removed ads may not be modified
	//   "CANNOT_CREATE_DEPRECATED_ADS" - An ad of this type is deprecated and
	// cannot be created. Only deletions are permitted.
	//   "CANNOT_CREATE_TEXT_ADS" - Text ads are deprecated and cannot be created.
	// Use expanded text ads instead.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "RESOURCE_REFERENCED_IN_MULTIPLE_OPS" - An ad may only be modified once
	// per call
	//   "AD_TYPE_CANNOT_BE_PAUSED" - AdGroupAds with the given ad type cannot be
	// paused.
	//   "AD_TYPE_CANNOT_BE_REMOVED" - AdGroupAds with the given ad type cannot be
	// removed.
	//   "CANNOT_UPDATE_DEPRECATED_ADS" - An ad of this type is deprecated and
	// cannot be updated. Only removals are permitted.
	//   "AD_SHARING_NOT_ALLOWED" - Ad sharing is not allowed.
	AdGroupAdError string `json:"adGroupAdError,omitempty"`
	// AdGroupBidModifierError: The reasons for the ad group bid modifier error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_ID_NOT_SUPPORTED" - The criterion ID does not support bid
	// modification.
	//   "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER" - Cannot
	// override the bid modifier for the given criterion ID if the parent campaign
	// is opted out of the same criterion.
	AdGroupBidModifierError string `json:"adGroupBidModifierError,omitempty"`
	// AdGroupCriterionCustomizerError: The reasons for the ad group criterion
	// customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_IS_NOT_KEYWORD" - Only keyword type criterion is allowed to
	// link customizer attribute.
	AdGroupCriterionCustomizerError string `json:"adGroupCriterionCustomizerError,omitempty"`
	// AdGroupCriterionError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST" - No link found between the
	// AdGroupCriterion and the label.
	//   "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS" - The label has already been
	// attached to the AdGroupCriterion.
	//   "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION" - Negative AdGroupCriterion
	// cannot have labels.
	//   "TOO_MANY_OPERATIONS" - Too many operations for a single call.
	//   "CANT_UPDATE_NEGATIVE" - Negative ad group criteria are not updateable.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion (keyword v.s.
	// placement) is required for ADD and SET operations.
	//   "BID_INCOMPATIBLE_WITH_ADGROUP" - Bid is incompatible with ad group's
	// bidding settings.
	//   "CANNOT_TARGET_AND_EXCLUDE" - Cannot target and exclude the same criterion
	// at once.
	//   "ILLEGAL_URL" - The URL of a placement is invalid.
	//   "INVALID_KEYWORD_TEXT" - Keyword text was invalid.
	//   "INVALID_DESTINATION_URL" - Destination URL was invalid.
	//   "MISSING_DESTINATION_URL_TAG" - The destination url must contain at least
	// one tag (for example, {lpurl})
	//   "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM" - Keyword-level cpm bid is
	// not supported
	//   "INVALID_USER_STATUS" - For example, cannot add a biddable ad group
	// criterion that had been removed.
	//   "CANNOT_ADD_CRITERIA_TYPE" - Criteria type cannot be targeted for the ad
	// group. Either the account is restricted to keywords only, the criteria type
	// is incompatible with the campaign's bidding strategy, or the criteria type
	// can only be applied to campaigns.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type cannot be excluded for the
	// ad group. Refer to the documentation for a specific criterion to check if it
	// is excludable.
	//   "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE" - Partial failure is
	// not supported for shopping campaign mutate operations.
	//   "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS" - Operations in the mutate
	// request changes too many shopping ad groups. Split requests for multiple
	// shopping ad groups across multiple requests.
	//   "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS" - Not allowed to modify
	// url fields of an ad group criterion if there are duplicate elements for that
	// ad group criterion in the request.
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Cannot set url fields without also
	// setting final urls.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST" - Cannot clear final
	// urls if final mobile urls exist.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST" - Cannot clear final
	// urls if final app urls exist.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS" - Cannot clear
	// final urls if tracking url template exists.
	//   "CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST" - Cannot clear
	// final urls if url custom parameters exist.
	//   "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS" - Cannot set both
	// destination url and final urls.
	//   "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE" - Cannot set
	// both destination url and tracking url template.
	//   "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE" - Final urls are not
	// supported for this criterion type.
	//   "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE" - Final mobile urls
	// are not supported for this criterion type.
	AdGroupCriterionError string `json:"adGroupCriterionError,omitempty"`
	// AdGroupCustomizerError: The reasons for the ad group customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	AdGroupCustomizerError string `json:"adGroupCustomizerError,omitempty"`
	// AdGroupError: An error with an Ad Group mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ADGROUP_NAME" - AdGroup with the same name already exists for
	// the campaign.
	//   "INVALID_ADGROUP_NAME" - AdGroup name is not valid.
	//   "ADVERTISER_NOT_ON_CONTENT_NETWORK" - Advertiser is not allowed to target
	// sites or set site bids that are not on the Google Search Network.
	//   "BID_TOO_BIG" - Bid amount is too big.
	//   "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH" - AdGroup bid does not match the
	// campaign's bidding strategy.
	//   "MISSING_ADGROUP_NAME" - AdGroup name is required for Add.
	//   "ADGROUP_LABEL_DOES_NOT_EXIST" - No link found between the ad group and
	// the label.
	//   "ADGROUP_LABEL_ALREADY_EXISTS" - The label has already been attached to
	// the ad group.
	//   "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP" - The CriterionTypeGroup is not
	// supported for the content bid dimension.
	//   "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE" - The ad group type
	// is not compatible with the campaign channel type.
	//   "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY" - The ad group
	// type is not supported in the country of sale of the campaign.
	//   "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING" - Ad
	// groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to campaigns that
	// have DynamicSearchAdsSetting attached.
	//   "PROMOTED_HOTEL_AD_GROUPS_NOT_AVAILABLE_FOR_CUSTOMER" - Promoted hotels ad
	// groups are only available to customers on the allow-list.
	//   "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE" - The field type cannot be
	// excluded because an active ad group-asset link of this type exists.
	//   "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE" - The asset set type is invalid
	// for setting the excluded_parent_asset_set_types field.
	//   "CANNOT_ADD_AD_GROUP_FOR_CAMPAIGN_TYPE" - Cannot add ad groups for the
	// campaign type.
	//   "INVALID_STATUS" - Invalid status for the ad group.
	//   "INVALID_STEP_ID_FOR_VIDEO_ADS_SEQUENCING" - For video ads sequencing,
	// AdGroup `step_id` has to use a `step_id` defined in
	// `campaign.video_campaign_settings.video_ad_sequence`.
	//   "INVALID_AD_GROUP_TYPE_FOR_VIDEO_ADS_SEQUENCING" - For video ads
	// sequencing, AdGroup type has to use a type defined in
	// `campaign.video_campaign_settings.video_ad_sequence`.
	//   "DUPLICATE_STEP_ID" - Only one AdGroup is allowed for each step ID in
	// video ads sequencing.
	//   "INVALID_VERTICAL_ADS_FORMAT_SETTING" - At least one Vertical Ads format
	// must be enabled for a campaign under Travel Ads in Search Campaigns.
	//   "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX" -
	// AI max setting must be enabled to enable Vertical Ads formats for a campaign
	// under Travel Ads in Search Campaigns.
	//
	// "VERTICAL_ADS_FORMAT_SETTING_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLED_TRAV
	// EL_FEED" - An enabled travel feed must be linked to enable Vertical Ads
	// formats for a campaign under Travel Ads in Search Campaigns.
	AdGroupError string `json:"adGroupError,omitempty"`
	// AdGroupFeedError: The reasons for the ad group feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this ad group and place holder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "ADGROUP_FEED_ALREADY_EXISTS" - The AdGroupFeed already exists. UPDATE
	// operation should be used to modify the existing AdGroupFeed.
	//   "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED" - Cannot operate on removed
	// AdGroupFeed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "NO_EXISTING_LOCATION_CUSTOMER_FEED" - Location AdGroupFeeds cannot be
	// created unless there is a location CustomerFeed for the specified feed.
	AdGroupFeedError string `json:"adGroupFeedError,omitempty"`
	// AdParameterError: The reasons for the ad parameter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_CRITERION_MUST_BE_KEYWORD" - The ad group criterion must be a
	// keyword criterion.
	//   "INVALID_INSERTION_TEXT_FORMAT" - The insertion text is invalid.
	AdParameterError string `json:"adParameterError,omitempty"`
	// AdSharingError: The reasons for the ad sharing error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_GROUP_ALREADY_CONTAINS_AD" - Error resulting in attempting to add an
	// Ad to an AdGroup that already contains the Ad.
	//   "INCOMPATIBLE_AD_UNDER_AD_GROUP" - Ad is not compatible with the AdGroup
	// it is being shared with.
	//   "CANNOT_SHARE_INACTIVE_AD" - Cannot add AdGroupAd on inactive Ad.
	AdSharingError string `json:"adSharingError,omitempty"`
	// AdxError: The reasons for the adx error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED_FEATURE" - Attempt to use non-AdX feature by AdX customer.
	AdxError string `json:"adxError,omitempty"`
	// AssetError: The reasons for the asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_ASSET_TYPE" - The customer is not on the
	// allow-list for this asset type.
	//   "DUPLICATE_ASSET" - Assets are duplicated across operations.
	//   "DUPLICATE_ASSET_NAME" - The asset name is duplicated, either across
	// operations or with an existing asset.
	//   "ASSET_DATA_IS_MISSING" - The `Asset.asset_data` oneof is empty.
	//   "CANNOT_MODIFY_ASSET_NAME" - The asset has a name which is different from
	// an existing duplicate that represents the same content.
	//   "FIELD_INCOMPATIBLE_WITH_ASSET_TYPE" - The field cannot be set for this
	// asset type.
	//   "INVALID_CALL_TO_ACTION_TEXT" - Call to action must come from the list of
	// supported values.
	//   "LEAD_FORM_INVALID_FIELDS_COMBINATION" - A lead form asset is created with
	// an invalid combination of input fields.
	//   "LEAD_FORM_MISSING_AGREEMENT" - Lead forms require that the Terms of
	// Service have been agreed to before mutates can be executed.
	//   "INVALID_ASSET_STATUS" - Asset status is invalid in this operation.
	//   "FIELD_CANNOT_BE_MODIFIED_FOR_ASSET_TYPE" - The field cannot be modified
	// by this asset type.
	//   "SCHEDULES_CANNOT_OVERLAP" - Ad schedules for the same asset cannot
	// overlap.
	//   "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF" - Cannot set both
	// percent off and money amount off fields of promotion asset.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Cannot set
	// both promotion code and orders over amount fields of promotion asset.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - The field has too many decimal
	// places specified.
	//   "DUPLICATE_ASSETS_WITH_DIFFERENT_FIELD_VALUE" - Duplicate assets across
	// operations, which have identical `Asset.asset_data` oneof, cannot have
	// different asset level fields for asset types which are deduped.
	//   "CALL_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Carrier-specific short
	// number is not allowed.
	//   "CALL_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer consent
	// required for call recording Terms of Service.
	//   "CALL_DISALLOWED_NUMBER_TYPE" - The type of the specified phone number is
	// not allowed.
	//   "CALL_INVALID_CONVERSION_ACTION" - If the default `call_conversion_action`
	// is not used, the customer must have a `ConversionAction` with the same id
	// and the `ConversionAction` must be call conversion type.
	//   "CALL_INVALID_COUNTRY_CODE" - The country code of the phone number is
	// invalid.
	//   "CALL_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - The format of the phone
	// number is incorrect.
	//   "CALL_INVALID_PHONE_NUMBER" - The input phone number is not a valid phone
	// number.
	//   "CALL_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - The phone number is not
	// supported for this country.
	//   "CALL_PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate phone number is not
	// allowed.
	//   "CALL_VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone number is not
	// allowed.
	//   "PRICE_HEADER_SAME_AS_DESCRIPTION" - `PriceOffering` cannot have the same
	// value for header and description.
	//   "MOBILE_APP_INVALID_APP_ID" - `AppId` is invalid.
	//   "MOBILE_APP_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL" - Invalid App download
	// URL in final URLs.
	//   "NAME_REQUIRED_FOR_ASSET_TYPE" - Asset name is required for the asset
	// type.
	//   "LEAD_FORM_LEGACY_QUALIFYING_QUESTIONS_DISALLOWED" - Legacy qualifying
	// questions cannot be in the same Lead Form as custom questions.
	//   "NAME_CONFLICT_FOR_ASSET_TYPE" - Unique name is required for this asset
	// type.
	//   "CANNOT_MODIFY_ASSET_SOURCE" - Cannot modify asset source.
	//   "CANNOT_MODIFY_AUTOMATICALLY_CREATED_ASSET" - User can not modify the
	// automatically created asset.
	//   "LEAD_FORM_LOCATION_ANSWER_TYPE_DISALLOWED" - Lead Form is disallowed to
	// use `LOCATION` answer type.
	//   "PAGE_FEED_INVALID_LABEL_TEXT" - Page Feed label text contains invalid
	// characters.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_WHATSAPP_MESSAGE_ASSETS" - The customer is
	// not in the allow-list for whatsapp message asset type.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_APP_DEEP_LINK_ASSETS" - Only customers on
	// the allowlist can create `AppDeepLinkAsset`.
	//   "PROMOTION_BARCODE_CANNOT_CONTAIN_LINKS" - Promotion barcode cannot
	// contain links.
	//   "PROMOTION_BARCODE_INVALID_FORMAT" - Failed to encode promotion barcode:
	// Invalid format.
	//   "UNSUPPORTED_BARCODE_TYPE" - Barcode type is not supported.
	//   "PROMOTION_QR_CODE_CANNOT_CONTAIN_LINKS" - Promotion QR code cannot
	// contain links.
	//   "PROMOTION_QR_CODE_INVALID_FORMAT" - Failed to encode promotion QR code:
	// Invalid format.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_MESSAGE_ASSETS" - The customer is not in
	// the allow-list for Business message asset type.
	AssetError string `json:"assetError,omitempty"`
	// AssetGenerationError: The reasons for the GenAI asset generation error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_ASSETS_GENERATED" - No assets were generated for the given request.
	//   "FINAL_URL_REQUIRED" - A final URL is required but was not provided, and
	// could not be sourced from the existing generation context because no
	// existing generation context was provided.
	//   "GENERATION_CONTEXT_MISSING_FINAL_URL" - A final URL is required but was
	// not provided, and could not be sourced from the provided existing generation
	// context.
	//   "FINAL_URL_SENSITIVE" - The provided final URL is considered sensitive,
	// and assets cannot be generated.
	//   "FINAL_URL_UNSUPPORTED_LANGUAGE" - The language of the provided final URL
	// is not supported.
	//   "FINAL_URL_UNAVAILABLE" - The provided final URL was not indexed or could
	// otherwise not be processed.
	//   "CAMPAIGN_TYPE_REQUIRED" - Campaign type is required but was not provided,
	// and could not be sourced from the existing generation context because no
	// existing generation context was provided.
	//   "UNSUPPORTED_CAMPAIGN_TYPE" - The provided campaign type is not supported
	// for this asset generation operation.
	//   "UNSUPPORTED_FIELD_TYPE" - The provided field type is not supported for
	// this asset generation operation.
	//   "UNSUPPORTED_FIELD_TYPE_FOR_CAMPAIGN_TYPE" - The provided field type is
	// not supported for the given campaign type.
	//   "FREEFORM_PROMPT_UNSUPPORTED_LANGUAGE" - The language of the provided
	// freeform prompt is not supported.
	//   "FREEFORM_PROMPT_SENSITIVE" - The provided freeform prompt is considered
	// sensitive, and assets cannot be generated.
	//   "INPUT_IMAGE_FILE_SIZE_TOO_LARGE" - The provided image file size exceeds
	// the limit.
	//   "INPUT_IMAGE_EMPTY" - The provided image is empty.
	//   "GENERATION_TYPE_REQUIRED" - Exactly one generation type must be provided.
	//   "TOO_MANY_KEYWORDS" - Too many keywords provided in request.
	//   "KEYWORD_INVALID_LENGTH" - A provided keyword does not have a valid
	// length.
	//   "NO_VALID_KEYWORDS" - All keywords were filtered out.
	//   "FREEFORM_PROMPT_INVALID_LENGTH" - The provided freeform prompt does not
	// have a valid length.
	//   "FREEFORM_PROMPT_REFERENCES_CHILDREN" - The provided freeform prompt
	// references children.
	//   "FREEFORM_PROMPT_REFERENCES_SPECIFIC_PEOPLE" - The provided freeform
	// prompt references specific people.
	//   "FREEFORM_PROMPT_VIOLATES_ADS_POLICY" - The provided freeform prompt
	// violates Ads Policy.
	//   "FREEFORM_PROMPT_BRAND_CONTENT" - The provided freeform prompt contains
	// brand content.
	//   "INPUT_IMAGE_DEPICTS_CHILDREN" - The provided image depicts children.
	//   "INPUT_IMAGE_CONTAINS_BRAND_CONTENT" - The provided image contains brand
	// content.
	//   "INPUT_IMAGE_SENSITIVE" - The provided image contains sensitive subject
	// matter.
	//   "INPUT_IMAGE_VIOLATES_POLICY" - The provided image may violate Google Ads
	// policies.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT_CHILDREN_DEPICTION" - All output images
	// were filtered out because they included depictions of children.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT_SPECIFIC_PEOPLE" - All output images were
	// filtered out because they included depictions of specific people.
	//   "ALL_OUTPUT_IMAGES_FILTERED_OUT" - All output images were filtered out for
	// a reason not covered by a more specific error code.
	//   "INPUT_IMAGE_REQUIRED" - At least one input image is required for certain
	// requests.
	//   "INPUT_IMAGE_UNSUPPORTED_IMAGE_TYPE" - The provided image is of an
	// unsupported type.
	//   "CONTEXT_ASSET_GROUP_NOT_FOUND" - Asset Group could not be found with the
	// provided ID.
	//   "CONTEXT_AD_GROUP_AD_NOT_FOUND" - Ad Group Ad could not be found with the
	// provided ID combination.
	//   "CONTEXT_CAMPAIGN_NOT_FOUND" - Could not find Campaign associated with the
	// provided generation context.
	AssetGenerationError string `json:"assetGenerationError,omitempty"`
	// AssetGroupAssetError: The reasons for the asset group asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_RESOURCE" - Cannot add duplicated asset group asset.
	//   "EXPANDABLE_TAGS_NOT_ALLOWED_IN_DESCRIPTION" - Expandable tags are not
	// allowed in description assets.
	//   "AD_CUSTOMIZER_NOT_SUPPORTED" - Ad customizers are not supported in
	// assetgroup's text assets.
	//   "HOTEL_PROPERTY_ASSET_NOT_LINKED_TO_CAMPAIGN" - Cannot add a
	// HotelPropertyAsset to an AssetGroup that isn't linked to the parent
	// campaign's hotel_property_asset_set field.
	AssetGroupAssetError string `json:"assetGroupAssetError,omitempty"`
	// AssetGroupError: The reasons for the asset group error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - Each asset group in a single campaign must have a
	// unique name.
	//   "CANNOT_ADD_ASSET_GROUP_FOR_CAMPAIGN_TYPE" - Cannot add asset group for
	// the campaign type.
	//   "NOT_ENOUGH_HEADLINE_ASSET" - Not enough headline asset for a valid asset
	// group.
	//   "NOT_ENOUGH_LONG_HEADLINE_ASSET" - Not enough long headline asset for a
	// valid asset group.
	//   "NOT_ENOUGH_DESCRIPTION_ASSET" - Not enough description headline asset for
	// a valid asset group.
	//   "NOT_ENOUGH_BUSINESS_NAME_ASSET" - Not enough business name asset for a
	// valid asset group.
	//   "NOT_ENOUGH_MARKETING_IMAGE_ASSET" - Not enough marketing image asset for
	// a valid asset group.
	//   "NOT_ENOUGH_SQUARE_MARKETING_IMAGE_ASSET" - Not enough square marketing
	// image asset for a valid asset group.
	//   "NOT_ENOUGH_LOGO_ASSET" - Not enough logo asset for a valid asset group.
	//   "FINAL_URL_SHOPPING_MERCHANT_HOME_PAGE_URL_DOMAINS_DIFFER" - Final url and
	// shopping merchant url does not have the same domain.
	//   "PATH1_REQUIRED_WHEN_PATH2_IS_SET" - Path1 required when path2 is set.
	//   "SHORT_DESCRIPTION_REQUIRED" - At least one short description asset is
	// required for a valid asset group.
	//   "FINAL_URL_REQUIRED" - Final url field is required for asset group.
	//   "FINAL_URL_CONTAINS_INVALID_DOMAIN_NAME" - Final url contains invalid
	// domain name.
	//   "AD_CUSTOMIZER_NOT_SUPPORTED" - Ad customizers are not supported in asset
	// group's text field.
	//   "CANNOT_MUTATE_ASSET_GROUP_FOR_REMOVED_CAMPAIGN" - Cannot mutate asset
	// group for campaign with removed status.
	AssetGroupError string `json:"assetGroupError,omitempty"`
	// AssetGroupListingGroupFilterError: The reasons for the asset group listing
	// group filter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TREE_TOO_DEEP" - Listing group tree is too deep.
	//   "UNIT_CANNOT_HAVE_CHILDREN" - Listing Group UNIT node cannot have
	// children.
	//   "SUBDIVISION_MUST_HAVE_EVERYTHING_ELSE_CHILD" - Listing Group SUBDIVISION
	// node must have everything else child.
	//   "DIFFERENT_DIMENSION_TYPE_BETWEEN_SIBLINGS" - Dimension type of Listing
	// Group must be the same as that of its siblings.
	//   "SAME_DIMENSION_VALUE_BETWEEN_SIBLINGS" - The sibling Listing Groups
	// target exactly the same dimension value.
	//   "SAME_DIMENSION_TYPE_BETWEEN_ANCESTORS" - The dimension type is the same
	// as one of the ancestor Listing Groups.
	//   "MULTIPLE_ROOTS" - Each Listing Group tree must have a single root.
	//   "INVALID_DIMENSION_VALUE" - Invalid Listing Group dimension value.
	//   "MUST_REFINE_HIERARCHICAL_PARENT_TYPE" - Hierarchical dimension must
	// refine a dimension of the same type.
	//   "INVALID_PRODUCT_BIDDING_CATEGORY" - Invalid Product Bidding Category.
	//   "CHANGING_CASE_VALUE_WITH_CHILDREN" - Modifying case value is allowed only
	// while updating the entire subtree at the same time.
	//   "SUBDIVISION_HAS_CHILDREN" - Subdivision node has children which must be
	// removed first.
	//   "CANNOT_REFINE_HIERARCHICAL_EVERYTHING_ELSE" - Dimension can't subdivide
	// everything-else node in its own hierarchy.
	//   "DIMENSION_TYPE_NOT_ALLOWED" - This dimension type is not allowed in this
	// context.
	//   "DUPLICATE_WEBPAGE_FILTER_UNDER_ASSET_GROUP" - All the webpage filters
	// under an AssetGroup should be distinct.
	//   "LISTING_SOURCE_NOT_ALLOWED" - Filter of the listing source type is not
	// allowed in the context.
	//   "FILTER_EXCLUSION_NOT_ALLOWED" - Exclusion filters are not allowed in the
	// context.
	//   "MULTIPLE_LISTING_SOURCES" - All the filters under an AssetGroup should
	// have the same listing source.
	//   "MULTIPLE_WEBPAGE_CONDITION_TYPES_NOT_ALLOWED" - All the conditions in a
	// webpage needs to be of same type.
	//   "MULTIPLE_WEBPAGE_TYPES_PER_ASSET_GROUP" - All the webpage types of the
	// filters under an AssetGroup should be of same type. Example: All the webpage
	// types can be of type custom_label or url_contains but not both.
	//   "PAGE_FEED_FILTER_HAS_PARENT" - All page feed filter nodes are root nodes
	// and they can't have a parent.
	//   "MULTIPLE_OPERATIONS_ON_ONE_NODE" - There cannot be more than one mutate
	// operation per request that targets a single asset group listing group
	// filter.
	//   "TREE_WAS_INVALID_BEFORE_MUTATION" - The tree is in an invalid state in
	// the database. Any changes that don't fix its issues will fail validation.
	AssetGroupListingGroupFilterError string `json:"assetGroupListingGroupFilterError,omitempty"`
	// AssetGroupSignalError: The reasons for the asset group hint error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_MANY_WORDS" - The number of words in the Search Theme signal exceed
	// the allowed maximum. You can add up to 10 words in a keyword. See
	// https://support.google.com/google-ads/answer/7476658 for details.
	//   "SEARCH_THEME_POLICY_VIOLATION" - The search theme requested to be added
	// violates certain policy. See
	// https://support.google.com/adspolicy/answer/6008942.
	//   "AUDIENCE_WITH_WRONG_ASSET_GROUP_ID" - The asset group referenced by the
	// asset group signal does not match the asset group referenced by the audience
	// being used in the asset group signal.
	AssetGroupSignalError string `json:"assetGroupSignalError,omitempty"`
	// AssetLinkError: The reasons for the asset link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "PINNING_UNSUPPORTED" - Pinning is not supported for the given asset link
	// field.
	//   "UNSUPPORTED_FIELD_TYPE" - The given field type is not supported to be
	// added directly through asset links.
	//   "FIELD_TYPE_INCOMPATIBLE_WITH_ASSET_TYPE" - The given asset's type and the
	// specified field type are incompatible.
	//   "FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE" - The specified field type is
	// incompatible with the given campaign type.
	//   "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE" - The campaign advertising channel
	// type cannot be associated with the given asset due to channel-based
	// restrictions on the asset's fields.
	//   "IMAGE_NOT_WITHIN_SPECIFIED_DIMENSION_RANGE" - The image asset provided is
	// not within the dimension constraints specified for the submitted asset
	// field.
	//   "INVALID_PINNED_FIELD" - The pinned field is not valid for the submitted
	// asset field.
	//   "MEDIA_BUNDLE_ASSET_FILE_SIZE_TOO_LARGE" - The media bundle asset provided
	// is too large for the submitted asset field.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION" - Not enough
	// assets are available for use with other fields since other assets are pinned
	// to specific fields.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK" - Not enough assets with
	// fallback are available. When validating the minimum number of assets, assets
	// without fallback (for example, assets that contain location tag without
	// default value "{LOCATION(City)}") will not be counted.
	//   "NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK_FOR_VALID_COMBINATION" -
	// This is a combination of the
	// NOT_ENOUGH_AVAILABLE_ASSET_LINKS_FOR_VALID_COMBINATION and
	// NOT_ENOUGH_AVAILABLE_ASSET_LINKS_WITH_FALLBACK errors. Not enough assets
	// with fallback are available since some assets are pinned.
	//   "YOUTUBE_VIDEO_REMOVED" - The YouTube video referenced in the provided
	// asset has been removed.
	//   "YOUTUBE_VIDEO_TOO_LONG" - The YouTube video referenced in the provided
	// asset is too long for the field submitted.
	//   "YOUTUBE_VIDEO_TOO_SHORT" - The YouTube video referenced in the provided
	// asset is too short for the field submitted.
	//   "EXCLUDED_PARENT_FIELD_TYPE" - The specified field type is excluded for
	// given campaign or ad group.
	//   "INVALID_STATUS" - The status is invalid for the operation specified.
	//   "YOUTUBE_VIDEO_DURATION_NOT_DEFINED" - The YouTube video referenced in the
	// provided asset has unknown duration. This might be the case for a livestream
	// video or a video being currently uploaded to YouTube. In both cases, the
	// video duration should eventually get resolved.
	//   "CANNOT_CREATE_AUTOMATICALLY_CREATED_LINKS" - User cannot create
	// automatically created links.
	//   "CANNOT_LINK_TO_AUTOMATICALLY_CREATED_ASSET" - Advertiser links cannot
	// link to automatically created asset.
	//   "CANNOT_MODIFY_ASSET_LINK_SOURCE" - Automatically created links cannot be
	// changed into advertiser links or the reverse.
	//   "CANNOT_LINK_LOCATION_LEAD_FORM_WITHOUT_LOCATION_ASSET" - Lead Form asset
	// with Location answer type can't be linked to the Customer/Campaign because
	// there are no Location assets.
	//   "CUSTOMER_NOT_VERIFIED" - Customer is not verified.
	//   "UNSUPPORTED_CALL_TO_ACTION" - Call to action value is not supported.
	//   "BRAND_ASSETS_NOT_LINKED_AT_ASSET_GROUP_LEVEL" - For Performance Max
	// campaigns where brand_guidelines_enabled is false, business name and logo
	// assets must be linked as AssetGroupAssets.
	//   "BRAND_ASSETS_NOT_LINKED_AT_CAMPAIGN_LEVEL" - For Performance Max
	// campaigns where brand_guidelines_enabled is true, business name and logo
	// assets must be linked as CampaignAssets.
	AssetLinkError string `json:"assetLinkError,omitempty"`
	// AssetSetAssetError: The reasons for the asset set asset error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_ASSET_TYPE" - The asset type is not eligible to be linked to the
	// specific type of asset set.
	//   "INVALID_ASSET_SET_TYPE" - The asset set type is not eligible to contain
	// the specified type of assets.
	//   "DUPLICATE_EXTERNAL_KEY" - The asset contains duplicate external key with
	// another asset in the asset set.
	//   "PARENT_LINKAGE_DOES_NOT_EXIST" - When attaching a Location typed Asset to
	// a LocationGroup typed AssetSet, the AssetSetAsset linkage between the parent
	// LocationSync AssetSet and the Asset doesn't exist.
	AssetSetAssetError string `json:"assetSetAssetError,omitempty"`
	// AssetSetError: The reasons for the asset set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ASSET_SET_NAME" - The asset set name matches that of another
	// enabled asset set.
	//   "INVALID_PARENT_ASSET_SET_TYPE" - The type of AssetSet.asset_set_source
	// does not match the type of AssetSet.location_set.source in its parent
	// AssetSet.
	//   "ASSET_SET_SOURCE_INCOMPATIBLE_WITH_PARENT_ASSET_SET" - The asset set
	// source doesn't match its parent AssetSet's data.
	//   "ASSET_SET_TYPE_CANNOT_BE_LINKED_TO_CUSTOMER" - This AssetSet type cannot
	// be linked to CustomerAssetSet.
	//   "INVALID_CHAIN_IDS" - The chain id(s) in ChainSet of a LOCATION_SYNC typed
	// AssetSet is invalid.
	//   "LOCATION_SYNC_ASSET_SET_DOES_NOT_SUPPORT_RELATIONSHIP_TYPE" - The
	// relationship type in ChainSet of a LOCATION_SYNC typed AssetSet is not
	// supported.
	//   "NOT_UNIQUE_ENABLED_LOCATION_SYNC_TYPED_ASSET_SET" - There is more than
	// one enabled LocationSync typed AssetSet under one customer.
	//   "INVALID_PLACE_IDS" - The place id(s) in a LocationSync typed AssetSet is
	// invalid and can't be decoded.
	//   "OAUTH_INFO_INVALID" - The Google Business Profile OAuth info is invalid.
	//   "OAUTH_INFO_MISSING" - The Google Business Profile OAuth info is missing.
	//   "CANNOT_DELETE_AS_ENABLED_LINKAGES_EXIST" - Can't delete an AssetSet if it
	// has any enabled linkages (e.g. CustomerAssetSet), or AssetSet is a parent
	// AssetSet and has enabled child AssetSet associated.
	AssetSetError string `json:"assetSetError,omitempty"`
	// AssetSetLinkError: The reasons for the asset set link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INCOMPATIBLE_ADVERTISING_CHANNEL_TYPE" - Advertising channel type cannot
	// be attached to the asset set due to channel-based restrictions.
	//   "DUPLICATE_FEED_LINK" - For this asset set type, only one campaign to feed
	// linkage is allowed.
	//   "INCOMPATIBLE_ASSET_SET_TYPE_WITH_CAMPAIGN_TYPE" - The asset set type and
	// campaign type are incompatible.
	//   "DUPLICATE_ASSET_SET_LINK" - Cannot link duplicate asset sets to the same
	// campaign.
	//   "ASSET_SET_LINK_CANNOT_BE_REMOVED" - Cannot remove the asset set link. If
	// a campaign is linked with only one asset set and you attempt to unlink them,
	// this error will be triggered.
	AssetSetLinkError string `json:"assetSetLinkError,omitempty"`
	// AudienceError: The reasons for the audience error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_IN_USE" - An audience with this name already exists.
	//   "DIMENSION_INVALID" - A dimension within the audience definition is not
	// valid.
	//   "AUDIENCE_SEGMENT_NOT_FOUND" - One of the audience segment added is not
	// found.
	//   "AUDIENCE_SEGMENT_TYPE_NOT_SUPPORTED" - One of the audience segment type
	// is not supported.
	//   "DUPLICATE_AUDIENCE_SEGMENT" - The same segment already exists in this
	// audience.
	//   "TOO_MANY_SEGMENTS" - Audience can't have more than allowed number
	// segments.
	//   "TOO_MANY_DIMENSIONS_OF_SAME_TYPE" - Audience can't have multiple
	// dimensions of same type.
	//   "IN_USE" - The audience cannot be removed, because it is currently used in
	// an ad group criterion or asset group signal in an (enabled or paused) ad
	// group or campaign.
	//   "MISSING_ASSET_GROUP_ID" - Asset Group scoped audience requires an asset
	// group ID.
	//   "CANNOT_CHANGE_FROM_CUSTOMER_TO_ASSET_GROUP_SCOPE" - Audience scope may
	// not be changed from Customer to AssetGroup.
	AudienceError string `json:"audienceError,omitempty"`
	// AudienceInsightsError: The reasons for the Audience Insights error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DIMENSION_INCOMPATIBLE_WITH_TOPIC_AUDIENCE_COMBINATIONS" - The dimensions
	// cannot be used with topic audience combinations.
	AudienceInsightsError string `json:"audienceInsightsError,omitempty"`
	// AuthenticationError: Indicates failure to properly authenticate user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AUTHENTICATION_ERROR" - Authentication of the request failed.
	//   "CLIENT_CUSTOMER_ID_INVALID" - Client customer ID is not a number.
	//   "CUSTOMER_NOT_FOUND" - No customer found for the provided customer ID.
	//   "GOOGLE_ACCOUNT_DELETED" - Client's Google account is deleted.
	//   "GOOGLE_ACCOUNT_COOKIE_INVALID" - Account login token in the cookie is
	// invalid.
	//   "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED" - A problem occurred during Google
	// account authentication.
	//   "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH" - The user in the Google
	// account login token does not match the user ID in the cookie.
	//   "LOGIN_COOKIE_REQUIRED" - Login cookie is required for authentication.
	//   "NOT_ADS_USER" - The Google account that generated the OAuth access token
	// is not associated with a Search Ads 360 account. Create a new account, or
	// add the Google account to an existing Search Ads 360 account.
	//   "OAUTH_TOKEN_INVALID" - OAuth token in the header is not valid.
	//   "OAUTH_TOKEN_EXPIRED" - OAuth token in the header has expired.
	//   "OAUTH_TOKEN_DISABLED" - OAuth token in the header has been disabled.
	//   "OAUTH_TOKEN_REVOKED" - OAuth token in the header has been revoked.
	//   "OAUTH_TOKEN_HEADER_INVALID" - OAuth token HTTP header is malformed.
	//   "LOGIN_COOKIE_INVALID" - Login cookie is not valid.
	//   "INVALID_EMAIL_ADDRESS" - The email address provided is invalid or does
	// not exist.
	//   "USER_ID_INVALID" - User ID in the header is not a valid ID.
	//   "TWO_STEP_VERIFICATION_NOT_ENROLLED" - An account administrator changed
	// this account's authentication settings. To access this account, enable
	// 2-Step Verification in your Google account at
	// https://www.google.com/landing/2step.
	//   "ADVANCED_PROTECTION_NOT_ENROLLED" - An account administrator changed this
	// account's authentication settings. To access this account, enable Advanced
	// Protection in your Google account at
	// https://landing.google.com/advancedprotection.
	//   "ORGANIZATION_NOT_RECOGNIZED" - The Cloud organization associated with the
	// project is not recognized.
	//   "ORGANIZATION_NOT_APPROVED" - The Cloud organization associated with the
	// project is not approved for prod access.
	//   "ORGANIZATION_NOT_ASSOCIATED_WITH_DEVELOPER_TOKEN" - The Cloud
	// organization associated with the project is not associated with the
	// developer token.
	//   "DEVELOPER_TOKEN_INVALID" - The developer token is not valid.
	AuthenticationError string `json:"authenticationError,omitempty"`
	// AuthorizationError: An error encountered when trying to authorize a user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "USER_PERMISSION_DENIED" - User doesn't have permission to access
	// customer. Note: If you're accessing a client customer, the manager's
	// customer ID must be set in the `login-customer-id` header. Learn more at
	// https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header
	//   "DEVELOPER_TOKEN_NOT_ON_ALLOWLIST" - The developer token is not on the
	// allow-list.
	//   "DEVELOPER_TOKEN_PROHIBITED" - The developer token is not allowed with the
	// project sent in the request.
	//   "PROJECT_DISABLED" - The Google Cloud project sent in the request does not
	// have permission to access the api.
	//   "AUTHORIZATION_ERROR" - Authorization of the client failed.
	//   "ACTION_NOT_PERMITTED" - The user does not have permission to perform this
	// action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.
	//   "INCOMPLETE_SIGNUP" - Signup not complete.
	//   "CUSTOMER_NOT_ENABLED" - The customer account can't be accessed because it
	// is not yet enabled or has been deactivated.
	//   "MISSING_TOS" - The developer must sign the terms of service. They can be
	// found here: https://developers.google.com/terms
	//   "DEVELOPER_TOKEN_NOT_APPROVED" - The developer token is only approved for
	// use with test accounts. To access non-test accounts, apply for Basic or
	// Standard access.
	//   "INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION" - The login
	// customer specified does not have access to the account specified, so the
	// request is invalid.
	//   "SERVICE_ACCESS_DENIED" - The developer specified does not have access to
	// the service.
	//   "ACCESS_DENIED_FOR_ACCOUNT_TYPE" - The customer (or login customer) isn't
	// allowed in Search Ads 360 API. It belongs to another ads system.
	//   "METRIC_ACCESS_DENIED" - The developer does not have access to the metrics
	// queried.
	//   "CLOUD_PROJECT_NOT_UNDER_ORGANIZATION" - The Google Cloud project is not
	// under the required organization.
	//   "ACTION_NOT_PERMITTED_FOR_SUSPENDED_ACCOUNT" - The user does not have
	// permission to perform this action on the resource or method because the
	// Google Ads account is suspended.
	AuthorizationError string `json:"authorizationError,omitempty"`
	// AutomaticallyCreatedAssetRemovalError: The reasons for error in
	// automatically created asset removal action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "AD_DOES_NOT_EXIST" - The ad does not exist.
	//   "INVALID_AD_TYPE" - Ad type is not supported. Only Responsive Search Ad
	// type is supported.
	//   "ASSET_DOES_NOT_EXIST" - The asset does not exist.
	//   "ASSET_FIELD_TYPE_DOES_NOT_MATCH" - The asset field type does not match.
	//   "NOT_AN_AUTOMATICALLY_CREATED_ASSET" - Not an automatically created asset.
	AutomaticallyCreatedAssetRemovalError string `json:"automaticallyCreatedAssetRemovalError,omitempty"`
	// BatchJobError: The reasons for the batch job error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_MODIFY_JOB_AFTER_JOB_STARTS_RUNNING" - The batch job cannot add
	// more operations or run after it has started running.
	//   "EMPTY_OPERATIONS" - The operations for an AddBatchJobOperations request
	// were empty.
	//   "INVALID_SEQUENCE_TOKEN" - The sequence token for an AddBatchJobOperations
	// request was invalid.
	//   "RESULTS_NOT_READY" - Batch job results can only be retrieved once the job
	// is finished.
	//   "INVALID_PAGE_SIZE" - The page size for ListBatchJobResults was invalid.
	//   "CAN_ONLY_REMOVE_PENDING_JOB" - The batch job cannot be removed because it
	// has started running.
	//   "CANNOT_LIST_RESULTS" - The batch job cannot be listed due to unexpected
	// errors such as duplicate checkpoints.
	//   "ASSET_GROUP_AND_ASSET_GROUP_ASSET_TRANSACTION_FAILURE" - The request
	// contains interdependent AssetGroup and AssetGroupAsset operations that are
	// treated atomically as a single transaction, and one or more of the
	// operations in that transaction failed, which caused the entire transaction,
	// and therefore this mutate operation, to fail. The operations that caused the
	// transaction to fail can be found in the consecutive AssetGroup or
	// AssetGroupAsset results with the same asset group id. The mutate operation
	// will be successful once the remaining errors in the transaction are fixed.
	//   "ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE" - The request
	// contains interdependent AssetGroupListingGroupFilter operations that are
	// treated atomically as a single transaction, and one or more of the
	// operations in that transaction failed, which caused the entire transaction,
	// and therefore this mutate operation, to fail. The operations that caused the
	// transaction to fail can be found in the consecutive
	// AssetGroupListingGroupFilter results with the same asset group id. The
	// mutate operation will be successful once the remaining errors in the
	// transaction are fixed.
	//   "REQUEST_TOO_LARGE" - The AddBatchJobOperationsRequest is too large. Split
	// the request into smaller requests. The maximum allowed request size is
	// 10484504 bytes.
	//   "CAMPAIGN_AND_CAMPAIGN_ASSET_TRANSACTION_FAILURE" - This error indicates a
	// failed transaction involving interdependent Campaign and CampaignAsset
	// operations that are treated atomically as a single transaction. Because some
	// operations within the transaction failed, the entire set of changes was
	// rejected. Related error details are found in the results for the Campaign
	// and CampaignAssets sharing the same Campaign ID. The transaction will
	// succeed after all associated errors are resolved.
	BatchJobError string `json:"batchJobError,omitempty"`
	// BenchmarksError: The reasons for the Benchmarks error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MAX_QUERY_COMPLEXITY_EXCEEDED" - The combination of inputs to generate
	// benchmarks is too complex. To reduce complexity, try selecting a more
	// granular benchmarks source, a smaller date range, or a smaller set of
	// products.
	BenchmarksError string `json:"benchmarksError,omitempty"`
	// BiddingError: The reasons for the bidding errors
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED" - Cannot transition to new
	// bidding strategy.
	//   "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN" - Cannot attach bidding
	// strategy to campaign.
	//   "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE" - Bidding strategy is not
	// supported or cannot be used as anonymous.
	//   "INVALID_BIDDING_STRATEGY_TYPE" - The type does not match the named
	// strategy's type.
	//   "INVALID_BID" - The bid is invalid.
	//   "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE" - Bidding strategy is
	// not available for the account type.
	//   "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY" - Campaign can not be
	// created with given bidding strategy. It can be transitioned to the strategy,
	// once eligible.
	//
	// "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY"
	//  - Cannot target content network only as campaign uses Page One Promoted
	// bidding strategy.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE" - Budget Optimizer and
	// Target Spend bidding strategies are not supported for campaigns with
	// AdSchedule targeting.
	//   "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER" - Pay per conversion is
	// not available to all the customer, only few customers on the allow-list can
	// use this.
	//   "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA" - Pay per conversion is
	// not allowed with Target CPA.
	//   "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS" - Cannot set
	// bidding strategy to Manual CPM for search network only campaigns.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS" - The bidding
	// strategy is not supported for use in drafts or experiments.
	//   "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION" -
	// Bidding strategy type does not support product type ad group criterion.
	//   "BID_TOO_SMALL" - Bid amount is too small.
	//   "BID_TOO_BIG" - Bid amount is too big.
	//   "BID_TOO_MANY_FRACTIONAL_DIGITS" - Bid has too many fractional digit
	// precision.
	//   "INVALID_DOMAIN_NAME" - Invalid domain name specified.
	//   "NOT_COMPATIBLE_WITH_PAYMENT_MODE" - The field is not compatible with the
	// payment mode.
	//   "BIDDING_STRATEGY_TYPE_INCOMPATIBLE_WITH_SHARED_BUDGET" - Bidding strategy
	// type is incompatible with shared budget.
	//   "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED" - The attached bidding
	// strategy and budget must be aligned with each other if alignment is
	// specified on either entity.
	//
	// "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ATTACHED_TO_THE_SAME_CAMPAIGNS_TO_ALIGN"
	//  - The attached bidding strategy and budget must be attached to the same
	// campaigns to become aligned.
	//   "BIDDING_STRATEGY_AND_BUDGET_MUST_BE_REMOVED_TOGETHER" - The aligned
	// bidding strategy and budget must be removed at the same time.
	//   "CPC_BID_FLOOR_MICROS_GREATER_THAN_CPC_BID_CEILING_MICROS" -
	// cpc_bid_floor_micros is greater than cpc_bid_ceiling_micros.
	//   "TARGET_ROAS_TOLERANCE_PERCENT_MILLIS_MUST_BE_INTEGER" -
	// target_roas_tolerance_percent_millis must be integer.
	BiddingError string `json:"biddingError,omitempty"`
	// BiddingStrategyError: An error with a Bidding Strategy mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - Each bidding strategy must have a unique name.
	//   "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE" - Bidding strategy type is
	// immutable.
	//   "CANNOT_REMOVE_ASSOCIATED_STRATEGY" - Only bidding strategies not linked
	// to campaigns, adgroups or adgroup criteria can be removed.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED" - The specified bidding strategy is not
	// supported.
	//   "INCOMPATIBLE_BIDDING_STRATEGY_AND_BIDDING_STRATEGY_GOAL_TYPE" - The
	// bidding strategy is incompatible with the campaign's bidding strategy goal
	// type.
	BiddingStrategyError string `json:"biddingStrategyError,omitempty"`
	// BillingSetupError: The reasons for the billing setup error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT" - Cannot specify both an existing
	// payments account and a new payments account when setting up billing.
	//   "CANNOT_REMOVE_STARTED_BILLING_SETUP" - Cannot cancel an approved billing
	// setup whose start time has passed.
	//   "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT" - Cannot perform a Change
	// of Bill-To (CBT) to the same payments account.
	//   "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS" - Billing setups can
	// only be used by customers with ENABLED or DRAFT status.
	//   "INVALID_PAYMENTS_ACCOUNT" - Billing setups must either include a
	// correctly formatted existing payments account id, or a non-empty new
	// payments account name.
	//   "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY" - Only billable and
	// third-party customers can create billing setups.
	//   "INVALID_START_TIME_TYPE" - Billing setup creations can only use NOW for
	// start time type.
	//   "THIRD_PARTY_ALREADY_HAS_BILLING" - Billing setups can only be created for
	// a third-party customer if they do not already have a setup.
	//   "BILLING_SETUP_IN_PROGRESS" - Billing setups cannot be created if there is
	// already a pending billing in progress.
	//   "NO_SIGNUP_PERMISSION" - Billing setups can only be created by customers
	// who have permission to setup billings. Users can contact a representative
	// for help setting up permissions.
	//   "CHANGE_OF_BILL_TO_IN_PROGRESS" - Billing setups cannot be created if
	// there is already a future-approved billing.
	//   "PAYMENTS_PROFILE_NOT_FOUND" - Requested payments profile not found.
	//   "PAYMENTS_ACCOUNT_NOT_FOUND" - Requested payments account not found.
	//   "PAYMENTS_PROFILE_INELIGIBLE" - Billing setup creation failed because the
	// payments profile is ineligible.
	//   "PAYMENTS_ACCOUNT_INELIGIBLE" - Billing setup creation failed because the
	// payments account is ineligible.
	//   "CUSTOMER_NEEDS_INTERNAL_APPROVAL" - Billing setup creation failed because
	// the payments profile needs internal approval.
	//   "PAYMENTS_PROFILE_NEEDS_SERVICE_AGREEMENT_ACCEPTANCE" - Billing setup
	// creation failed because the user needs to accept master service agreement on
	// the payments profile.
	//   "PAYMENTS_ACCOUNT_INELIGIBLE_CURRENCY_CODE_MISMATCH" - Payments account
	// has different currency code than the current customer and hence cannot be
	// used to setup billing.
	//   "FUTURE_START_TIME_PROHIBITED" - A start time in the future cannot be used
	// because there is currently no active billing setup for this customer.
	//   "TOO_MANY_BILLING_SETUPS_FOR_PAYMENTS_ACCOUNT" - The payments account has
	// maximum number of billing setups.
	BillingSetupError string `json:"billingSetupError,omitempty"`
	// BrandGuidelinesMigrationError: The reasons for the brand guidelines
	// migration error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BRAND_GUIDELINES_ALREADY_ENABLED" - This campaign is already enabled for
	// Brand Guidelines.
	//   "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_REMOVED_CAMPAIGN" - Brand Guidelines
	// can only be enabled for active or suspended campaigns.
	//   "BRAND_GUIDELINES_LOGO_LIMIT_EXCEEDED" - Maximum of 5 square and landscape
	// logos can be specified for Brand Guidelines.
	//   "CANNOT_AUTO_POPULATE_BRAND_ASSETS_WHEN_BRAND_ASSETS_PROVIDED" - Either
	// auto_populate_brand_assets must be true or brand_assets must be provided,
	// but not both.
	//   "AUTO_POPULATE_BRAND_ASSETS_REQUIRED_WHEN_BRAND_ASSETS_OMITTED" - Either
	// auto_populate_brand_assets can be false or brand_assets can be omitted, but
	// not both.
	//   "TOO_MANY_ENABLE_OPERATIONS" - A maximum of 10 enable operations can be
	// executed in a request.
	BrandGuidelinesMigrationError string `json:"brandGuidelinesMigrationError,omitempty"`
	// CampaignBudgetError: An error with a Campaign Budget mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_BUDGET_CANNOT_BE_SHARED" - The campaign budget cannot be shared.
	//   "CAMPAIGN_BUDGET_REMOVED" - The requested campaign budget no longer
	// exists.
	//   "CAMPAIGN_BUDGET_IN_USE" - The campaign budget is associated with at least
	// one campaign, and so the campaign budget cannot be removed.
	//   "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE" - Customer is not on the allow-list
	// for this campaign budget period.
	//   "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET" - This field is
	// not mutable on implicitly shared campaign budgets
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED" - Cannot change
	// explicitly shared campaign budgets back to implicitly shared ones.
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME" - An
	// implicit campaign budget without a name cannot be changed to explicitly
	// shared campaign budget.
	//   "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED" - Cannot change an
	// implicitly shared campaign budget to an explicitly shared one.
	//   "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS" -
	// Only explicitly shared campaign budgets can be used with multiple campaigns.
	//   "DUPLICATE_NAME" - A campaign budget with this name already exists.
	//   "MONEY_AMOUNT_IN_WRONG_CURRENCY" - A money amount was not in the expected
	// currency.
	//   "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC" - A money amount was less
	// than the minimum CPC for currency.
	//   "MONEY_AMOUNT_TOO_LARGE" - A money amount was greater than the maximum
	// allowed.
	//   "NEGATIVE_MONEY_AMOUNT" - A money amount was negative.
	//   "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT" - A money amount was not a
	// multiple of a minimum unit.
	//   "TOTAL_BUDGET_AMOUNT_MUST_BE_UNSET_FOR_BUDGET_PERIOD_DAILY" - Total budget
	// amount must be unset when BudgetPeriod is DAILY.
	//   "INVALID_PERIOD" - The period of the budget is not allowed.
	//   "CANNOT_USE_ACCELERATED_DELIVERY_MODE" - Cannot use accelerated delivery
	// method on this budget.
	//   "BUDGET_AMOUNT_MUST_BE_UNSET_FOR_CUSTOM_BUDGET_PERIOD" - Budget amount
	// must be unset when BudgetPeriod is CUSTOM.
	//   "BUDGET_BELOW_PER_DAY_MINIMUM" - Budget amount or total amount must be
	// above this campaign's per-day minimum. See the error's
	// details.budget_per_day_minimum_error_details field for more information.
	CampaignBudgetError string `json:"campaignBudgetError,omitempty"`
	// CampaignConversionGoalError: The reasons for the campaign conversion goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN" - Campaign
	// is managed by Search Ads 360 but uses Unified Goal.
	//   "CANNOT_USE_STORE_SALE_GOAL_FOR_PERFORMANCE_MAX_CAMPAIGN" - Performance
	// Max campaign cannot use an included store sale campaign goal.
	CampaignConversionGoalError string `json:"campaignConversionGoalError,omitempty"`
	// CampaignCriterionError: The reasons for the campaign criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion (keyword v.s.
	// placement) is required for CREATE and UPDATE operations.
	//   "INVALID_PLACEMENT_URL" - Invalid placement URL.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type can not be excluded for the
	// campaign by the customer. like AOL account type cannot target site type
	// criteria
	//   "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE" - Cannot set the campaign criterion
	// status for this criteria type.
	//   "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA" - Cannot set the campaign
	// criterion status for an excluded criteria.
	//   "CANNOT_TARGET_AND_EXCLUDE" - Cannot target and exclude the same
	// criterion.
	//   "TOO_MANY_OPERATIONS" - The mutate contained too many operations.
	//   "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE" - This operator cannot be
	// applied to a criterion of this type.
	//   "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL" - The
	// Shopping campaign sales country is not supported for ProductSalesChannel
	// targeting.
	//   "CANNOT_ADD_EXISTING_FIELD" - The existing field can't be updated with
	// CREATE operation. It can be updated with UPDATE operation only.
	//   "CANNOT_UPDATE_NEGATIVE_CRITERION" - Negative criteria are immutable, so
	// updates are not allowed.
	//   "CANNOT_SET_NEGATIVE_KEYWORD_THEME_CONSTANT_CRITERION" - Only free form
	// names are allowed for negative Smart campaign keyword theme.
	//   "INVALID_KEYWORD_THEME_CONSTANT" - Invalid Smart campaign keyword theme
	// constant criterion.
	//   "MISSING_KEYWORD_THEME_CONSTANT_OR_FREE_FORM_KEYWORD_THEME" - A Smart
	// campaign keyword theme constant or free-form Smart campaign keyword theme is
	// required.
	//   "CANNOT_TARGET_BOTH_PROXIMITY_AND_LOCATION_CRITERIA_FOR_SMART_CAMPAIGN" -
	// A Smart campaign may not target proximity and location criteria
	// simultaneously.
	//   "CANNOT_TARGET_MULTIPLE_PROXIMITY_CRITERIA_FOR_SMART_CAMPAIGN" - A Smart
	// campaign may not target multiple proximity criteria.
	//   "LOCATION_NOT_LAUNCHED_FOR_LOCAL_SERVICES_CAMPAIGN" - Location is not
	// launched for Local Services Campaigns.
	//   "LOCATION_INVALID_FOR_LOCAL_SERVICES_CAMPAIGN" - A Local Services campaign
	// may not target certain criteria types.
	//   "CANNOT_TARGET_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN" - Country locations
	// are not supported for Local Services campaign.
	//   "LOCATION_NOT_IN_HOME_COUNTRY_FOR_LOCAL_SERVICES_CAMPAIGN" - Location is
	// not within the home country of Local Services campaign.
	//   "CANNOT_ADD_OR_REMOVE_LOCATION_FOR_LOCAL_SERVICES_CAMPAIGN" - Local
	// Services profile does not exist for a particular Local Services campaign.
	//   "AT_LEAST_ONE_POSITIVE_LOCATION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN" -
	// Local Services campaign must have at least one target location.
	//
	// "AT_LEAST_ONE_LOCAL_SERVICE_ID_CRITERION_REQUIRED_FOR_LOCAL_SERVICES_CAMPAIGN
	// " - At least one positive local service ID criterion is required for a Local
	// Services campaign.
	//   "LOCAL_SERVICE_ID_NOT_FOUND_FOR_CATEGORY" - Local service ID is not found
	// under selected categories in local services campaign setting.
	//   "CANNOT_ATTACH_BRAND_LIST_TO_NON_QUALIFIED_SEARCH_CAMPAIGN" - For search
	// advertising channel, brand lists can only be applied to exclusive targeting,
	// broad match campaigns for inclusive targeting or PMax generated campaigns.
	//   "CANNOT_REMOVE_ALL_LOCATIONS_DUE_TO_TOO_MANY_COUNTRY_EXCLUSIONS" -
	// Campaigns that target all countries and territories are limited to a certain
	// number of top-level location exclusions. If removing a criterion causes the
	// campaign to target all countries and territories and the campaign has more
	// top-level location exclusions than the limit allows, then this error is
	// returned.
	//   "INVALID_VIDEO_LINEUP_ID" - Video lineup ID does not exist.
	CampaignCriterionError string `json:"campaignCriterionError,omitempty"`
	// CampaignCustomizerError: The reasons for the campaign customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	CampaignCustomizerError string `json:"campaignCustomizerError,omitempty"`
	// CampaignDraftError: The reasons for the campaign draft error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_DRAFT_NAME" - A draft with this name already exists for this
	// campaign.
	//   "INVALID_STATUS_TRANSITION_FROM_REMOVED" - The draft is removed and cannot
	// be transitioned to another status.
	//   "INVALID_STATUS_TRANSITION_FROM_PROMOTED" - The draft has been promoted
	// and cannot be transitioned to the specified status.
	//   "INVALID_STATUS_TRANSITION_FROM_PROMOTE_FAILED" - The draft has failed to
	// be promoted and cannot be transitioned to the specified status.
	//   "CUSTOMER_CANNOT_CREATE_DRAFT" - This customer is not allowed to create
	// drafts.
	//   "CAMPAIGN_CANNOT_CREATE_DRAFT" - This campaign is not allowed to create
	// drafts.
	//   "INVALID_DRAFT_CHANGE" - This modification cannot be made on a draft.
	//   "INVALID_STATUS_TRANSITION" - The draft cannot be transitioned to the
	// specified status from its current status.
	//   "MAX_NUMBER_OF_DRAFTS_PER_CAMPAIGN_REACHED" - The campaign has reached the
	// maximum number of drafts that can be created for a campaign throughout its
	// lifetime. No additional drafts can be created for this campaign. Removed
	// drafts also count towards this limit.
	//   "LIST_ERRORS_FOR_PROMOTED_DRAFT_ONLY" - ListAsyncErrors was called without
	// first promoting the draft.
	CampaignDraftError string `json:"campaignDraftError,omitempty"`
	// CampaignError: An error with a Campaign mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_TARGET_CONTENT_NETWORK" - Cannot target content network.
	//   "CANNOT_TARGET_SEARCH_NETWORK" - Cannot target search network.
	//   "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH" - Cannot cover search
	// network without google search network.
	//   "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN" - Cannot target Google
	// Search network for a CPM campaign.
	//   "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK" - Must target at least one
	// network.
	//   "CANNOT_TARGET_PARTNER_SEARCH_NETWORK" - Only some Google partners are
	// allowed to target partner search network.
	//   "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY"
	// - Cannot target content network only as campaign has criteria-level bidding
	// strategy.
	//   "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS" - Cannot modify the
	// start or end date such that the campaign duration would not contain the
	// durations of all runnable trials.
	//   "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN" - Cannot modify dates, budget or status
	// of a trial campaign.
	//   "DUPLICATE_CAMPAIGN_NAME" - Trying to modify the name of an active or
	// paused campaign, where the name is already assigned to another active or
	// paused campaign.
	//   "INCOMPATIBLE_CAMPAIGN_FIELD" - Two fields are in conflicting modes.
	//   "INVALID_CAMPAIGN_NAME" - Campaign name cannot be used.
	//   "INVALID_AD_SERVING_OPTIMIZATION_STATUS" - Given status is invalid.
	//   "INVALID_TRACKING_URL" - Error in the campaign level tracking URL.
	//   "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING" - Cannot set
	// both tracking URL template and tracking setting. A user has to clear legacy
	// tracking setting in order to add tracking URL template.
	//   "MAX_IMPRESSIONS_NOT_IN_RANGE" - The maximum number of impressions for
	// Frequency Cap should be an integer greater than 0.
	//   "TIME_UNIT_NOT_SUPPORTED" - Only the Day, Week and Month time units are
	// supported.
	//   "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED" - Operation not allowed on
	// a campaign whose serving status has ended
	//   "BUDGET_CANNOT_BE_SHARED" - This budget is exclusively linked to a
	// Campaign that is using experiments so it cannot be shared.
	//   "CAMPAIGN_CANNOT_USE_SHARED_BUDGET" - Campaigns using experiments cannot
	// use a shared budget.
	//   "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS" - A different budget cannot
	// be assigned to a campaign when there are running or scheduled trials.
	//   "CAMPAIGN_LABEL_DOES_NOT_EXIST" - No link found between the campaign and
	// the label.
	//   "CAMPAIGN_LABEL_ALREADY_EXISTS" - The label has already been attached to
	// the campaign.
	//   "MISSING_SHOPPING_SETTING" - A ShoppingSetting was not found when creating
	// a shopping campaign.
	//   "INVALID_SHOPPING_SALES_COUNTRY" - The country in shopping setting is not
	// an allowed country.
	//   "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE" - The requested
	// channel type is not available according to the customer's account setting.
	//   "INVALID_ADVERTISING_CHANNEL_SUB_TYPE" - The AdvertisingChannelSubType is
	// not a valid subtype of the primary channel type.
	//   "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED" - At least one conversion must
	// be selected.
	//   "CANNOT_SET_AD_ROTATION_MODE" - Setting ad rotation mode for a campaign is
	// not allowed. Ad rotation mode at campaign is deprecated.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a campaign that has started.
	//   "CANNOT_SET_DATE_TO_PAST" - Trying to modify a date into the past.
	//   "MISSING_HOTEL_CUSTOMER_LINK" - Hotel center id in the hotel setting does
	// not match any customer links.
	//   "INVALID_HOTEL_CUSTOMER_LINK" - Hotel center id in the hotel setting must
	// match an active customer link.
	//   "MISSING_HOTEL_SETTING" - Hotel setting was not found when creating a
	// hotel ads campaign.
	//   "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP" - A
	// Campaign cannot use shared campaign budgets and be part of a campaign group.
	//   "APP_NOT_FOUND" - The app ID was not found.
	//   "SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" -
	// Campaign.shopping_setting.enable_local is not supported for the specified
	// campaign type.
	//   "MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS" - The merchant does not
	// support the creation of campaigns for Shopping Comparison Listing Ads.
	//   "INSUFFICIENT_APP_INSTALLS_COUNT" - The App campaign for engagement cannot
	// be created because there aren't enough installs.
	//   "SENSITIVE_CATEGORY_APP" - The App campaign for engagement cannot be
	// created because the app is sensitive.
	//   "HEC_AGREEMENT_REQUIRED" - Customers with Housing, Employment, or Credit
	// ads must accept updated personalized ads policy to continue creating
	// campaigns.
	//   "NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION" - The field is
	// not compatible with view through conversion optimization.
	//   "INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE" - The field type cannot be
	// excluded because an active campaign-asset link of this type exists.
	//   "CANNOT_CREATE_APP_PRE_REGISTRATION_FOR_NON_ANDROID_APP" - The app
	// pre-registration campaign cannot be created for non-Android applications.
	//   "APP_NOT_AVAILABLE_TO_CREATE_APP_PRE_REGISTRATION_CAMPAIGN" - The campaign
	// cannot be created since the app is not available for pre-registration in any
	// country.
	//   "INCOMPATIBLE_BUDGET_TYPE" - The type of the Budget is not compatible with
	// this Campaign.
	//   "LOCAL_SERVICES_DUPLICATE_CATEGORY_BID" - Category bid list in the local
	// services campaign setting contains multiple bids for the same category ID.
	//   "LOCAL_SERVICES_INVALID_CATEGORY_BID" - Category bid list in the local
	// services campaign setting contains a bid for an invalid category ID.
	//   "LOCAL_SERVICES_MISSING_CATEGORY_BID" - Category bid list in the local
	// services campaign setting is missing a bid for a category ID that must be
	// present.
	//   "INVALID_STATUS_CHANGE" - The requested change in status is not supported.
	//   "MISSING_TRAVEL_CUSTOMER_LINK" - Travel Campaign's travel_account_id does
	// not match any customer links.
	//   "INVALID_TRAVEL_CUSTOMER_LINK" - Travel Campaign's travel_account_id
	// matches an existing customer link but the customer link is not active.
	//   "INVALID_EXCLUDED_PARENT_ASSET_SET_TYPE" - The asset set type is invalid
	// to be set in excluded_parent_asset_set_types field.
	//   "ASSET_SET_NOT_A_HOTEL_PROPERTY_ASSET_SET" -
	// Campaign.hotel_property_asset_set must point to an asset set of type
	// HOTEL_PROPERTY.
	//   "HOTEL_PROPERTY_ASSET_SET_ONLY_FOR_PERFORMANCE_MAX_FOR_TRAVEL_GOALS" - The
	// hotel property asset set can only be set on Performance Max for travel goals
	// campaigns.
	//   "AVERAGE_DAILY_SPEND_TOO_HIGH" - Customer's average daily spend is too
	// high to enable this feature.
	//   "CANNOT_ATTACH_TO_REMOVED_CAMPAIGN_GROUP" - Cannot attach the campaign to
	// a deleted campaign group.
	//   "CANNOT_ATTACH_TO_BIDDING_STRATEGY" - Cannot attach the campaign to this
	// bidding strategy.
	//   "CANNOT_CHANGE_BUDGET_PERIOD" - A budget with a different period cannot be
	// assigned to the campaign.
	//   "NOT_ENOUGH_CONVERSIONS" - Customer does not have enough conversions to
	// enable this feature.
	//   "CANNOT_SET_MORE_THAN_ONE_CONVERSION_ACTION" - This campaign type can only
	// have one conversion action.
	//   "NOT_COMPATIBLE_WITH_BUDGET_TYPE" - The field is not compatible with the
	// budget type.
	//   "NOT_COMPATIBLE_WITH_UPLOAD_CLICKS_CONVERSION" - The feature is
	// incompatible with ConversionActionType.UPLOAD_CLICKS.
	//   "APP_ID_MUST_MATCH_CONVERSION_ACTION_APP_ID" - App campaign setting app ID
	// must match selective optimization conversion action app ID.
	//   "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_NOT_ALLOWED" - Selective
	// optimization conversion action with Download category is not allowed.
	//   "CONVERSION_ACTION_WITH_DOWNLOAD_CATEGORY_REQUIRED" - One software
	// download for selective optimization conversion action is required for this
	// campaign conversion action.
	//   "CONVERSION_TRACKING_NOT_ENABLED" - Conversion tracking is not enabled and
	// is required for this feature.
	//   "NOT_COMPATIBLE_WITH_BIDDING_STRATEGY_TYPE" - The field is not compatible
	// with the bidding strategy type.
	//   "NOT_COMPATIBLE_WITH_GOOGLE_ATTRIBUTION_CONVERSIONS" - Campaign is not
	// compatible with a conversion tracker that has Google attribution enabled.
	//   "CONVERSION_LAG_TOO_HIGH" - Customer level conversion lag is too high.
	//   "NOT_LINKED_ADVERTISING_PARTNER" - The advertiser set as an advertising
	// partner is not an actively linked advertiser to this customer.
	//   "INVALID_NUMBER_OF_ADVERTISING_PARTNER_IDS" - Invalid number of
	// advertising partner IDs.
	//   "CANNOT_TARGET_DISPLAY_NETWORK_WITHOUT_YOUTUBE" - Cannot target the
	// display network without also targeting YouTube.
	//   "CANNOT_LINK_TO_COMPARISON_SHOPPING_SERVICE_ACCOUNT" - This campaign type
	// cannot be linked to a Comparison Shopping Service account.
	//   "CANNOT_TARGET_NETWORK_FOR_COMPARISON_SHOPPING_SERVICE_LINKED_ACCOUNTS" -
	// Standard Shopping campaigns that are linked to a Comparison Shopping Service
	// account cannot target this network.
	//   "CANNOT_MODIFY_TEXT_ASSET_AUTOMATION_WITH_ENABLED_TRIAL" - Text asset
	// automation settings can not be modified when there is an active Performance
	// Max optimization automatically created assets experiment. End the experiment
	// to modify these settings.
	//   "DYNAMIC_TEXT_ASSET_CANNOT_OPT_OUT_WITH_FINAL_URL_EXPANSION_OPT_IN" -
	// Dynamic text asset cannot be opted out when final URL expansion is opted in.
	//   "CANNOT_SET_CAMPAIGN_KEYWORD_MATCH_TYPE" - Can not set a campaign level
	// match type.
	//   "CANNOT_DISABLE_BROAD_MATCH_WHEN_KEYWORD_CONVERSION_IN_PROCESS" - The
	// campaign level keyword match type cannot be switched to non-broad when
	// keyword conversion to broad match is in process.
	//   "CANNOT_DISABLE_BROAD_MATCH_WHEN_TARGETING_BRANDS" - The campaign level
	// keyword match type cannot be switched to non-broad when the campaign has any
	// attached brand list or when a brand hint shared set is attached to the
	// campaign.
	//   "CANNOT_ENABLE_BROAD_MATCH_FOR_BASE_CAMPAIGN_WITH_PROMOTING_TRIAL" -
	// Cannot set campaign level keyword match type to BROAD if the campaign is a
	// base campaign with an associated trial that is currently promoting.
	//   "CANNOT_ENABLE_BROAD_MATCH_FOR_PROMOTING_TRIAL_CAMPAIGN" - Cannot set
	// campaign level keyword match type to BROAD if the campaign is a trial
	// currently promoting.
	//   "REQUIRED_BUSINESS_NAME_ASSET_NOT_LINKED" - Performance Max campaigns with
	// Brand Guidelines enabled require at least one business name to be linked as
	// a CampaignAsset. Performance Max campaigns for online sales with a product
	// feed must meet this requirement only when there are assets that are linked
	// to the campaign's asset groups.
	//   "REQUIRED_LOGO_ASSET_NOT_LINKED" - Performance Max campaigns with Brand
	// Guidelines enabled require at least one square logo to be linked as a
	// CampaignAsset. Performance Max campaigns for online sales with a product
	// feed must meet this requirement only when there are assets that are linked
	// to the campaign's asset groups.
	//   "BRAND_TARGETING_OVERRIDES_NOT_SUPPORTED" - This campaign does not support
	// brand targeting overrides. Brand targeting overrides are only supported for
	// Performance Max campaigns that have a product feed.
	//   "BRAND_GUIDELINES_NOT_ENABLED_FOR_CAMPAIGN" - Brand Guideline fields can
	// only be set for campaigns that have Brand Guidelines enabled.
	//   "BRAND_GUIDELINES_MAIN_AND_ACCENT_COLORS_REQUIRED" - When a Brand
	// Guidelines color field is set, both main color and accent color are
	// required.
	//   "BRAND_GUIDELINES_COLOR_INVALID_FORMAT" - Brand Guidelines colors must be
	// hex colors matching the regular expression '#[0-9a-fA-F]{6}', for example
	// '#abc123'
	//   "BRAND_GUIDELINES_UNSUPPORTED_FONT_FAMILY" - Brand Guidelines font family
	// must be one of the supported Google Fonts. See
	// Campaign.brand_guidelines.predefined_font_family for the list of supported
	// fonts.
	//   "BRAND_GUIDELINES_UNSUPPORTED_CHANNEL" - Brand Guidelines cannot be set
	// for this channel type. Brand Guidelines supports Performance Max campaigns.
	//   "CANNOT_ENABLE_BRAND_GUIDELINES_FOR_TRAVEL_GOALS" - Brand Guidelines
	// cannot be enabled for Performance Max for travel goals campaigns.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_BRAND_GUIDELINES" - This customer is not
	// allowlisted for enabling Brand Guidelines.
	//   "THIRD_PARTY_INTEGRATION_PARTNER_NOT_ALLOWED" - Using campaign third-party
	// integration partners that are not set at the customer level is not allowed.
	//   "THIRD_PARTY_INTEGRATION_PARTNER_SHARE_COST_NOT_ALLOWED" - Campaign
	// third-party integration partners are not allowed to share cost if it is not
	// enabled at the customer level.
	//   "DUPLICATE_INTERACTION_TYPE" - Each `previous_step_interaction_type` can
	// be used at most once for the same `previous_step_id`
	//   "INVALID_INTERACTION_TYPE" - Previous step interaction type cannot happen
	// for previous step AdGroup type. For example, `SKIP` interaction type is not
	// valid for non-skippable formats.
	//   "VIDEO_SEQUENCE_ERROR_SEQUENCE_DEFINITION_REQUIRED" - Campaign video ads
	// sequence is required for `VIDEO_SEQUENCE` advertising channel sub type.
	//   "AI_MAX_MUST_BE_ENABLED" - This feature is only available for campaigns
	// with AI Max enabled.
	//   "DURATION_TOO_LONG_FOR_TOTAL_BUDGET" - Duration too long for total budget.
	//   "END_DATE_TIME_REQUIRED_FOR_TOTAL_BUDGET" - Campaigns with total budgets
	// must have end date/time specified.
	CampaignError string `json:"campaignError,omitempty"`
	// CampaignExperimentError: The reasons for the campaign experiment error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - An active campaign or experiment with this name already
	// exists.
	//   "INVALID_TRANSITION" - Experiment cannot be updated from the current state
	// to the requested target state. For example, an experiment can only graduate
	// if its status is ENABLED.
	//   "CANNOT_CREATE_EXPERIMENT_WITH_SHARED_BUDGET" - Cannot create an
	// experiment from a campaign using an explicitly shared budget.
	//   "CANNOT_CREATE_EXPERIMENT_FOR_REMOVED_BASE_CAMPAIGN" - Cannot create an
	// experiment for a removed base campaign.
	//   "CANNOT_CREATE_EXPERIMENT_FOR_NON_PROPOSED_DRAFT" - Cannot create an
	// experiment from a draft, which has a status other than proposed.
	//   "CUSTOMER_CANNOT_CREATE_EXPERIMENT" - This customer is not allowed to
	// create an experiment.
	//   "CAMPAIGN_CANNOT_CREATE_EXPERIMENT" - This campaign is not allowed to
	// create an experiment.
	//   "EXPERIMENT_DURATIONS_MUST_NOT_OVERLAP" - Trying to set an experiment
	// duration which overlaps with another experiment.
	//   "EXPERIMENT_DURATION_MUST_BE_WITHIN_CAMPAIGN_DURATION" - All non-removed
	// experiments must start and end within their campaign's duration.
	//   "CANNOT_MUTATE_EXPERIMENT_DUE_TO_STATUS" - The experiment cannot be
	// modified because its status is in a terminal state, such as REMOVED.
	CampaignExperimentError string `json:"campaignExperimentError,omitempty"`
	// CampaignFeedError: The reasons for the campaign feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this campaign and placeholder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED" - The CampaignFeed already
	// exists. UPDATE should be used to modify the existing CampaignFeed.
	//   "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED" - Cannot update removed campaign
	// feed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "NO_EXISTING_LOCATION_CUSTOMER_FEED" - Location CampaignFeeds cannot be
	// created unless there is a location CustomerFeed for the specified feed.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	CampaignFeedError string `json:"campaignFeedError,omitempty"`
	// CampaignGoalConfigError: The reasons for the campaign goal config error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "GOAL_NOT_FOUND" - Goal is either removed or does not exist for this
	// account.
	//   "CAMPAIGN_NOT_FOUND" - Campaign is either removed or does not exist.
	//   "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT" - If high lifetime value is
	// present then value should be present.
	//   "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE" - High lifetime value
	// should be greater than value.
	//   "CUSTOMER_LIFECYCLE_OPTIMIZATION_CAMPAIGN_TYPE_NOT_SUPPORTED" - When using
	// customer lifecycle optimization goal, campaign type should be supported.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_RETENTION_ONLY" - Customer must be
	// allowlisted to use retention only goal.
	CampaignGoalConfigError string `json:"campaignGoalConfigError,omitempty"`
	// CampaignLifecycleGoalError: The reasons for the campaign lifecycle goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_MISSING" - Campaign is not specified.
	//   "INVALID_CAMPAIGN" - Cannot find the specified campaign.
	//   "CUSTOMER_ACQUISITION_INVALID_OPTIMIZATION_MODE" - Optimization mode is
	// unspecified or invalid.
	//   "INCOMPATIBLE_BIDDING_STRATEGY" - The configured lifecycle goal setting is
	// not compatible with the bidding strategy the campaign is using.
	// Specifically, BID_HIGHER_FOR_NEW_CUSTOMER requires conversion-value based
	// bidding strategy type such as MAXIMIZE_CONVERSION_VALUE.
	//   "MISSING_PURCHASE_GOAL" - Lifecycle goals require the campaign to optimize
	// towards purchase conversion goal.
	//   "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE" -
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_
	// lifetime_value is invalid or not allowed, such as when the specified value
	// is smaller than 0.01, when the optimization mode is not
	// BID_HIGHER_FOR_NEW_CUSTOMER, or when
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.high_
	// lifetime_value is specified smaller than/without
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	// .
	//   "CUSTOMER_ACQUISITION_UNSUPPORTED_CAMPAIGN_TYPE" - Customer acquisition
	// goal is not supported on this campaign type.
	//   "CUSTOMER_ACQUISITION_INVALID_VALUE" -
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	//  is invalid or not allowed, such as when the specified value is smaller than
	// 0.01, or when the optimization mode is not BID_HIGHER_FOR_NEW_CUSTOMER.
	//   "CUSTOMER_ACQUISITION_VALUE_MISSING" - To use BID_HIGHER_FOR_NEW_CUSTOMER
	// mode, either
	// CampaignLifecycleGoal.customer_acquisition_goal_settings.value_settings.value
	//  or CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value
	// must have been specified. If a manager account is managing your account's
	// conversion tracking, then only the CustomerLifecycleGoal of that manager
	// account is used.
	//   "CUSTOMER_ACQUISITION_MISSING_EXISTING_CUSTOMER_DEFINITION" - In order for
	// a campaign to adopt the customer acquisition goal,
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_us
	// er_lists must include active and accessible userlist with more than 1000
	// members in the Search/Youtube network. If a manager account is managing your
	// account's conversion tracking, then only the CustomerLifecycleGoal of that
	// manager account is used. Also make sure that the manager account shares
	// audience segments with sub-accounts with continuous audience sharing.
	//   "CUSTOMER_ACQUISITION_MISSING_HIGH_VALUE_CUSTOMER_DEFINITION" - In order
	// for a campaign to adopt the customer acquisition goal with high lifetime
	// value optimization,
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifeti
	// me_value_user_lists must include active and accessible userlist with more
	// than 1000 members in the Search/Youtube network. If a manager account is
	// managing your account's conversion tracking, then only the
	// CustomerLifecycleGoal of that manager account is used. Also make sure that
	// the manager account shares audience segments with sub-accounts using
	// continuous audience sharing.
	CampaignLifecycleGoalError string `json:"campaignLifecycleGoalError,omitempty"`
	// CampaignSharedSetError: The reasons for the campaign shared set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "SHARED_SET_ACCESS_DENIED" - The shared set belongs to another customer
	// and permission isn't granted.
	CampaignSharedSetError string `json:"campaignSharedSetError,omitempty"`
	// ChangeEventError: The reasons for the change event error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "START_DATE_TOO_OLD" - The requested start date is too old. It cannot be
	// older than 30 days.
	//   "CHANGE_DATE_RANGE_INFINITE" - The change_event search request must
	// specify a finite range filter on change_date_time.
	//   "CHANGE_DATE_RANGE_NEGATIVE" - The change event search request has
	// specified invalid date time filters that can never logically produce any
	// valid results (for example, start time after end time).
	//   "LIMIT_NOT_SPECIFIED" - The change_event search request must specify a
	// LIMIT.
	//   "INVALID_LIMIT_CLAUSE" - The LIMIT specified by change_event request
	// should be less than or equal to 10K.
	ChangeEventError string `json:"changeEventError,omitempty"`
	// ChangeStatusError: The reasons for the change status error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "START_DATE_TOO_OLD" - The requested start date is too old.
	//   "CHANGE_DATE_RANGE_INFINITE" - The change_status search request must
	// specify a finite range filter on last_change_date_time.
	//   "CHANGE_DATE_RANGE_NEGATIVE" - The change status search request has
	// specified invalid date time filters that can never logically produce any
	// valid results (for example, start time after end time).
	//   "LIMIT_NOT_SPECIFIED" - The change_status search request must specify a
	// LIMIT.
	//   "INVALID_LIMIT_CLAUSE" - The LIMIT specified by change_status request
	// should be less than or equal to 10K.
	ChangeStatusError string `json:"changeStatusError,omitempty"`
	// ClickViewError: The reasons for the click view error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXPECTED_FILTER_ON_A_SINGLE_DAY" - Missing filter on a single day.
	//   "DATE_TOO_OLD" - The requested date is too old.
	ClickViewError string `json:"clickViewError,omitempty"`
	// CollectionSizeError: The reasons for the collection size error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_FEW" - Too few.
	//   "TOO_MANY" - Too many.
	CollectionSizeError string `json:"collectionSizeError,omitempty"`
	// ContextError: The reasons for the context error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATION_NOT_PERMITTED_FOR_CONTEXT" - The operation is not allowed for
	// the given context.
	//   "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE" - The operation is not
	// allowed for removed resources.
	ContextError string `json:"contextError,omitempty"`
	// ConversionActionError: The reasons for the conversion action error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - The specified conversion action name already exists.
	//   "DUPLICATE_APP_ID" - Another conversion action with the specified app id
	// already exists.
	//   "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD" - Android first open
	// action conflicts with Google play codeless download action tracking the same
	// app.
	//   "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION" - Android first open
	// action conflicts with Google play codeless download action tracking the same
	// app.
	//   "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED" - The attribution model cannot be
	// set to DATA_DRIVEN because a data-driven model has never been generated.
	//   "DATA_DRIVEN_MODEL_EXPIRED" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is expired.
	//   "DATA_DRIVEN_MODEL_STALE" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is stale.
	//   "DATA_DRIVEN_MODEL_UNKNOWN" - The attribution model cannot be set to
	// DATA_DRIVEN because the data-driven model is unavailable or the conversion
	// action was newly added.
	//   "CREATION_NOT_SUPPORTED" - Creation of this conversion action type isn't
	// supported by Google Ads API.
	//   "UPDATE_NOT_SUPPORTED" - Update of this conversion action isn't supported
	// by Google Ads API.
	//   "CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS" - Rule-based attribution models
	// are deprecated and not allowed to be set by conversion action.
	ConversionActionError string `json:"conversionActionError,omitempty"`
	// ConversionAdjustmentUploadError: The reasons for the conversion adjustment
	// upload error
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_ALREADY_RETRACTED" - The conversion was already retracted.
	// This adjustment was not processed.
	//   "CONVERSION_NOT_FOUND" - The conversion for this conversion action and
	// conversion identifier can't be found. Make sure your conversion identifiers
	// are associated with the correct conversion action and try again.
	//   "CONVERSION_EXPIRED" - Adjustment can't be made to a conversion that
	// occurred more than 54 days ago.
	//   "ADJUSTMENT_PRECEDES_CONVERSION" - Adjustment has an
	// `adjustment_date_time` that occurred before the associated conversion. Make
	// sure your `adjustment_date_time` is correct and try again.
	//   "MORE_RECENT_RESTATEMENT_FOUND" - More recent adjustment
	// `adjustment_date_time` has already been reported for the associated
	// conversion. Make sure your adjustment `adjustment_date_time` is correct and
	// try again.
	//   "TOO_RECENT_CONVERSION" - Adjustment can't be recorded because the
	// conversion occurred too recently. Try adjusting a conversion that occurred
	// at least 24 hours ago.
	//
	// "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE"
	// - Can't make an adjustment to a conversion that is set up to use the default
	// value. Check your conversion action value setting and try again.
	//   "TOO_MANY_ADJUSTMENTS_IN_REQUEST" - Try uploading fewer than 2001
	// adjustments in a single API request.
	//   "TOO_MANY_ADJUSTMENTS" - The conversion has already been adjusted the
	// maximum number of times. Make sure you're only making necessary adjustment
	// to existing conversion.
	//   "RESTATEMENT_ALREADY_EXISTS" - The conversion has prior a restatement with
	// the same `adjustment_date_time`. Make sure your adjustment has the correct
	// and unique `adjustment_date_time` and try again.
	//   "DUPLICATE_ADJUSTMENT_IN_REQUEST" - Imported adjustment has a duplicate
	// conversion adjustment with same `adjustment_date_time`. Make sure your
	// adjustment has the correct `adjustment_date_time` and try again.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again.
	//   "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT" - Can't use enhanced
	// conversions with the specified conversion action.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//   "UNSUPPORTED_USER_IDENTIFIER" - Use user provided data such as emails or
	// phone numbers hashed using SHA-256 and try again.
	//   "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET" - Cannot set both
	// gclid_date_time_pair and order_id. Use only 1 type and try again.
	//   "CONVERSION_ALREADY_ENHANCED" - Conversion already has enhancements with
	// the same Order ID and conversion action. Make sure your data is correctly
	// configured and try again.
	//   "DUPLICATE_ENHANCEMENT_IN_REQUEST" - Multiple enhancements have the same
	// conversion action and Order ID. Make sure your data is correctly configured
	// and try again.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT" - Enhanced conversions can't
	// be used for this account because of Google customer data policies. Contact
	// your Google representative.
	//   "MISSING_ORDER_ID_FOR_WEBPAGE" - Adjustment for website conversion
	// requires Order ID (ie, transaction ID). Make sure your website tags capture
	// Order IDs and you send the same Order IDs with your adjustment.
	//   "ORDER_ID_CONTAINS_PII" - Can't use adjustment with Order IDs containing
	// personally-identifiable information (PII).
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// adjustment request cannot be found. Make sure it's available in this
	// account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The type of the conversion action
	// specified in the adjustment request isn't supported for uploading
	// adjustments. A conversion adjustment of type `RETRACTION` or `RESTATEMENT`
	// is only permitted for conversion actions of type `SALESFORCE`,
	// `UPLOAD_CLICK` or `WEBPAGE`. A conversion adjustment of type `ENHANCEMENT`
	// is only permitted for conversion actions of type `WEBPAGE`.
	ConversionAdjustmentUploadError string `json:"conversionAdjustmentUploadError,omitempty"`
	// ConversionCustomVariableError: The reasons for the conversion custom
	// variable error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_NAME" - A conversion custom variable with the specified name
	// already exists.
	//   "DUPLICATE_TAG" - A conversion custom variable with the specified tag
	// already exists.
	//   "RESERVED_TAG" - A conversion custom variable with the specified tag is
	// reserved for other uses.
	ConversionCustomVariableError string `json:"conversionCustomVariableError,omitempty"`
	// ConversionGoalCampaignConfigError: The reasons for the conversion goal
	// campaign config error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_USE_CAMPAIGN_GOAL_FOR_SEARCH_ADS_360_MANAGED_CAMPAIGN" - Campaign
	// is managed by Search Ads 360 but uses Unified Goal.
	//   "CUSTOM_GOAL_DOES_NOT_BELONG_TO_GOOGLE_ADS_CONVERSION_CUSTOMER" - The
	// campaign is using a custom goal that does not belong to its Google Ads
	// conversion customer (conversion tracking customer).
	//   "CAMPAIGN_CANNOT_USE_UNIFIED_GOALS" - The campaign is not allowed to use
	// unified goals.
	//   "EMPTY_CONVERSION_GOALS" - The campaign is using campaign override goals
	// but has no goals configured.
	//   "STORE_SALE_STORE_VISIT_CANNOT_BE_BOTH_INCLUDED" - STORE_SALE and
	// STORE_VISIT conversion types cannot be both included in campaign level goal.
	//   "PERFORMANCE_MAX_CAMPAIGN_CANNOT_USE_CUSTOM_GOAL_WITH_STORE_SALES" -
	// Performance Max campaign is not allowed to use custom goal with store sales
	// conversion type.
	ConversionGoalCampaignConfigError string `json:"conversionGoalCampaignConfigError,omitempty"`
	// ConversionUploadError: The reasons for the conversion upload error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_MANY_CONVERSIONS_IN_REQUEST" - Upload fewer than 2001 events in a
	// single request.
	//   "UNPARSEABLE_GCLID" - The imported gclid could not be decoded.
	//   "CONVERSION_PRECEDES_EVENT" - The imported event has a
	// `conversion_date_time` that precedes the click. Make sure your
	// `conversion_date_time` is correct and try again.
	//   "EXPIRED_EVENT" - The imported event can't be recorded because its click
	// occurred before this conversion's click-through window. Make sure you import
	// the most recent data.
	//   "TOO_RECENT_EVENT" - The click associated with the given identifier or iOS
	// URL parameter occurred less than 6 hours ago. Retry after 6 hours have
	// passed.
	//   "EVENT_NOT_FOUND" - The imported event could not be attributed to a click.
	// This may be because the event did not come from a Google Ads campaign.
	//   "UNAUTHORIZED_CUSTOMER" - The click ID or call is associated with an Ads
	// account you don't have access to. Make sure you import conversions for
	// accounts managed by your manager account.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME" - At the time of the
	// click, conversion tracking was not enabled in the effective conversion
	// account of the click's Google Ads account.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The imported event includes external attribution data, but the
	// conversion action isn't set up to use an external attribution model. Make
	// sure the conversion action is correctly configured and try again.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The conversion action is set up to use an external attribution model,
	// but the imported event is missing data. Make sure imported events include
	// the external attribution credit and all necessary fields.
	//   "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION" -
	// Order IDs can't be used for a conversion measured with an external
	// attribution model. Make sure the conversion is correctly configured and
	// imported events include only necessary data and try again.
	//   "ORDER_ID_ALREADY_IN_USE" - The imported event includes an order ID that
	// was previously recorded, so the event was not processed.
	//   "DUPLICATE_ORDER_ID" - Imported events include multiple conversions with
	// the same order ID and were not processed. Make sure order IDs are unique and
	// try again.
	//   "TOO_RECENT_CALL" - Can't import calls that occurred less than 6 hours
	// ago. Try uploading again in 6 hours.
	//   "EXPIRED_CALL" - The call can't be recorded because it occurred before
	// this conversion action's lookback window. Make sure your import is
	// configured to get the most recent data.
	//   "CALL_NOT_FOUND" - The call or click leading to the imported event can't
	// be found. Make sure your data source is set up to include correct
	// identifiers.
	//   "CONVERSION_PRECEDES_CALL" - The call has a `conversion_date_time` that
	// precedes the associated click. Make sure your `conversion_date_time` is
	// correct.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME" - At the time of the
	// imported call, conversion tracking was not enabled in the effective
	// conversion account of the click's Google Ads account.
	//   "UNPARSEABLE_CALLERS_PHONE_NUMBER" - Make sure phone numbers are formatted
	// as E.164 (+16502531234), International (+64 3-331 6005), or US national
	// number (6502531234).
	//   "CLICK_CONVERSION_ALREADY_EXISTS" - The imported event has the same click
	// and `conversion_date_time` as an existing conversion. Use a unique
	// `conversion_date_time` or order ID for each unique event and try again.
	//   "CALL_CONVERSION_ALREADY_EXISTS" - The imported call has the same
	// `conversion_date_time` as an existing conversion. Make sure your
	// `conversion_date_time` correctly configured and try again.
	//   "DUPLICATE_CLICK_CONVERSION_IN_REQUEST" - Multiple events have the same
	// click and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "DUPLICATE_CALL_CONVERSION_IN_REQUEST" - Multiple events have the same
	// call and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "CUSTOM_VARIABLE_NOT_ENABLED" - Enable the custom variable in your
	// conversion settings and try again.
	//   "CUSTOM_VARIABLE_VALUE_CONTAINS_PII" - Can't import events with custom
	// variables containing personally-identifiable information (PII). Remove these
	// variables and try again.
	//   "INVALID_CUSTOMER_FOR_CLICK" - The click from the imported event is
	// associated with a different Google Ads account. Make sure you're importing
	// to the correct account.
	//   "INVALID_CUSTOMER_FOR_CALL" - The click from the call is associated with a
	// different Google Ads account. Make sure you're importing to the correct
	// account. Query conversion_tracking_setting.google_ads_conversion_customer on
	// Customer to identify the correct account.
	//   "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY" - The connversion can't be
	// imported because the conversion source didn't comply with Apple App
	// Transparency Tracking (ATT) policies or because the customer didn't consent
	// to tracking.
	//   "CLICK_NOT_FOUND" - The email address or phone number for this event can't
	// be matched to a click. This may be because it didn't come from a Google Ads
	// campaign, and you can safely ignore this warning. If this includes more
	// imported events than is expected, you may need to check your setup.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//
	// "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER"
	// - User provided data can't be used with external attribution models. Use a
	// different attribution model or omit user identifiers and try again.
	//   "UNSUPPORTED_USER_IDENTIFIER" - The provided user identifiers are not
	// supported. Use only hashed email or phone number and try again.
	//   "GBRAID_WBRAID_BOTH_SET" - Can't use both gbraid and wbraid parameters.
	// Use only 1 and try again.
	//   "UNPARSEABLE_WBRAID" - Can't parse event import data. Check if your wbraid
	// parameter was not modified and try again.
	//   "UNPARSEABLE_GBRAID" - Can't parse event import data. Check if your gbraid
	// parameter was not modified and try again.
	//   "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID" - Conversion
	// actions that use one-per-click counting can't be used with gbraid or wbraid
	// parameters.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS" - Enhanced
	// conversions can't be used for this account because of Google customer data
	// policies. Contact your Google representative.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again. You can
	// check your setting by querying
	// conversion_tracking_setting.accepted_customer_data_terms on Customer.
	//   "ORDER_ID_CONTAINS_PII" - Can't import events with order IDs containing
	// personally-identifiable information (PII).
	//   "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS" - Make sure you've
	// turned on enhanced conversions for leads in conversion settings and try
	// again. You can check your setting by querying
	// conversion_tracking_setting.enhanced_conversions_for_leads_enabled on
	// Customer.
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// upload request cannot be found. Make sure it's available in this account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The conversion action specified in the
	// upload request isn't set up for uploading conversions.
	ConversionUploadError string `json:"conversionUploadError,omitempty"`
	// ConversionValueRuleError: The reasons for the conversion value rule error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_GEO_TARGET_CONSTANT" - The value rule's geo location condition
	// contains invalid geo target constant(s), for example, there's no matching
	// geo target.
	//   "CONFLICTING_INCLUDED_AND_EXCLUDED_GEO_TARGET" - The value rule's geo
	// location condition contains conflicting included and excluded geo targets.
	// Specifically, some of the excluded geo target(s) are the same as or contain
	// some of the included geo target(s). For example, the geo location condition
	// includes California but excludes U.S.
	//   "CONFLICTING_CONDITIONS" - User specified conflicting conditions for two
	// value rules in the same value rule set.
	//   "CANNOT_REMOVE_IF_INCLUDED_IN_VALUE_RULE_SET" - The value rule cannot be
	// removed because it's still included in some value rule set.
	//   "CONDITION_NOT_ALLOWED" - The value rule contains a condition that's not
	// allowed by the value rule set including this value rule.
	//   "FIELD_MUST_BE_UNSET" - The value rule contains a field that should be
	// unset.
	//   "CANNOT_PAUSE_UNLESS_VALUE_RULE_SET_IS_PAUSED" - Pausing the value rule
	// requires pausing the value rule set because the value rule is (one of) the
	// last enabled in the value rule set.
	//   "UNTARGETABLE_GEO_TARGET" - The value rule's geo location condition
	// contains untargetable geo target constant(s).
	//   "INVALID_AUDIENCE_USER_LIST" - The value rule's audience condition
	// contains invalid user list(s). In another word, there's no matching user
	// list.
	//   "INACCESSIBLE_USER_LIST" - The value rule's audience condition contains
	// inaccessible user list(s).
	//   "INVALID_AUDIENCE_USER_INTEREST" - The value rule's audience condition
	// contains invalid user_interest(s). This might be because there is no
	// matching user interest, or the user interest is not visible.
	//   "CANNOT_ADD_RULE_WITH_STATUS_REMOVED" - When a value rule is created, it
	// shouldn't have REMOVED status.
	//   "NO_DAY_OF_WEEK_SELECTED" - The value rule's itinerary condition contains
	// invalid travel start day, it contains no day of week.
	ConversionValueRuleError string `json:"conversionValueRuleError,omitempty"`
	// ConversionValueRuleSetError: The reasons for the conversion value rule set
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONFLICTING_VALUE_RULE_CONDITIONS" - Two value rules in this value rule
	// set contain conflicting conditions.
	//   "INVALID_VALUE_RULE" - This value rule set includes a value rule that
	// cannot be found, has been permanently removed or belongs to a different
	// customer.
	//   "DIMENSIONS_UPDATE_ONLY_ALLOW_APPEND" - An error that's thrown when a
	// mutate operation is trying to replace/remove some existing elements in the
	// dimensions field. In other words, ADD op is always fine and UPDATE op is
	// fine if it's only appending new elements into dimensions list.
	//   "CONDITION_TYPE_NOT_ALLOWED" - An error that's thrown when a mutate is
	// adding new value rule(s) into a value rule set and the added value rule(s)
	// include conditions that are not specified in the dimensions of the value
	// rule set.
	//   "DUPLICATE_DIMENSIONS" - The dimensions field contains duplicate elements.
	//   "INVALID_CAMPAIGN_ID" - This value rule set is attached to an invalid
	// campaign id. Either a campaign with this campaign id doesn't exist or it
	// belongs to a different customer.
	//   "CANNOT_PAUSE_UNLESS_ALL_VALUE_RULES_ARE_PAUSED" - When a mutate request
	// tries to pause a value rule set, the enabled value rules in this set must be
	// paused in the same command, or this error will be thrown.
	//   "SHOULD_PAUSE_WHEN_ALL_VALUE_RULES_ARE_PAUSED" - When a mutate request
	// tries to pause all the value rules in a value rule set, the value rule set
	// must be paused, or this error will be thrown.
	//   "VALUE_RULES_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" - This value rule set is
	// attached to a campaign that does not support value rules. Currently,
	// campaign level value rule sets can only be created on Search, or Display
	// campaigns.
	//   "INELIGIBLE_CONVERSION_ACTION_CATEGORIES" - To add a value rule set that
	// applies on Store Visits/Store Sales conversion action categories, the
	// customer must have valid Store Visits/ Store Sales conversion actions.
	//   "DIMENSION_NO_CONDITION_USED_WITH_OTHER_DIMENSIONS" - If NO_CONDITION is
	// used as a dimension of a value rule set, it must be the only dimension.
	//   "DIMENSION_NO_CONDITION_NOT_ALLOWED" - Dimension NO_CONDITION can only be
	// used by Store Visits/Store Sales value rule set.
	//   "UNSUPPORTED_CONVERSION_ACTION_CATEGORIES" - Value rule sets defined on
	// the specified conversion action categories are not supported. The list of
	// conversion action categories must be an empty list, only STORE_VISIT, or
	// only STORE_SALE.
	//   "DIMENSION_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE" - Dimension ITINERARY can only
	// be used on campaigns with an advertising channel type of PERFORMANCE_MAX or
	// HOTEL.
	ConversionValueRuleSetError string `json:"conversionValueRuleSetError,omitempty"`
	// CountryCodeError: The reasons for the country code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	CountryCodeError string `json:"countryCodeError,omitempty"`
	// CriterionError: The reasons for the criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of criterion is required for
	// CREATE and UPDATE operations.
	//   "INVALID_EXCLUDED_CATEGORY" - The category requested for exclusion is
	// invalid.
	//   "INVALID_KEYWORD_TEXT" - Invalid keyword criteria text.
	//   "KEYWORD_TEXT_TOO_LONG" - Keyword text should be less than 80 chars.
	//   "KEYWORD_HAS_TOO_MANY_WORDS" - Keyword text has too many words.
	//   "KEYWORD_HAS_INVALID_CHARS" - Keyword text has invalid characters or
	// symbols.
	//   "INVALID_PLACEMENT_URL" - Invalid placement URL.
	//   "INVALID_USER_LIST" - Invalid user list criterion.
	//   "INVALID_USER_INTEREST" - Invalid user interest criterion.
	//   "INVALID_FORMAT_FOR_PLACEMENT_URL" - Placement URL has wrong format.
	//   "PLACEMENT_URL_IS_TOO_LONG" - Placement URL is too long.
	//   "PLACEMENT_URL_HAS_ILLEGAL_CHAR" - Indicates the URL contains an illegal
	// character.
	//   "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE" - Indicates the URL contains
	// multiple comma separated URLs.
	//   "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION" - Indicates the
	// domain is blocked.
	//   "INVALID_TOPIC_PATH" - Invalid topic path.
	//   "INVALID_YOUTUBE_CHANNEL_ID" - The YouTube Channel Id is invalid.
	//   "INVALID_YOUTUBE_VIDEO_ID" - The YouTube Video Id is invalid.
	//   "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED" - Indicates the placement is a
	// YouTube vertical channel, which is no longer supported.
	//   "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED" - Indicates the placement is a
	// YouTube demographic channel, which is no longer supported.
	//   "YOUTUBE_URL_UNSUPPORTED" - YouTube urls are not supported in Placement
	// criterion. Use YouTubeChannel and YouTubeVideo criterion instead.
	//   "CANNOT_EXCLUDE_CRITERIA_TYPE" - Criteria type can not be excluded by the
	// customer, like AOL account type cannot target site type criteria.
	//   "CANNOT_ADD_CRITERIA_TYPE" - Criteria type can not be targeted.
	//   "CANNOT_EXCLUDE_SIMILAR_USER_LIST" - Not allowed to exclude similar user
	// list.
	//   "CANNOT_ADD_CLOSED_USER_LIST" - Not allowed to target a closed user list.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS" - Not allowed to
	// add display only UserLists to search only campaigns.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS" - Not allowed to add
	// display only UserLists to search plus campaigns.
	//   "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS" - Not allowed to add
	// display only UserLists to shopping campaigns.
	//   "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS" - Not allowed to add User
	// interests to search only campaigns.
	//   "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS" - Not allowed to
	// set bids for this criterion type in search campaigns
	//   "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE" - Final URLs, URL
	// Templates and CustomParameters cannot be set for the criterion types of
	// Gender, AgeRange, UserList, Placement, MobileApp, and MobileAppCategory in
	// search campaigns and shopping campaigns.
	//   "INVALID_COMBINED_AUDIENCE" - Invalid combined audience criterion.
	//   "INVALID_CUSTOM_AFFINITY" - Invalid custom affinity criterion.
	//   "INVALID_CUSTOM_INTENT" - Invalid custom intent criterion.
	//   "INVALID_CUSTOM_AUDIENCE" - Invalid custom audience criterion.
	//   "INVALID_IP_ADDRESS" - IP address is not valid.
	//   "INVALID_IP_FORMAT" - IP format is not valid.
	//   "INVALID_MOBILE_APP" - Mobile application is not valid.
	//   "INVALID_MOBILE_APP_CATEGORY" - Mobile application category is not valid.
	//   "INVALID_CRITERION_ID" - The CriterionId does not exist or is of the
	// incorrect type.
	//   "CANNOT_TARGET_CRITERION" - The Criterion is not allowed to be targeted.
	//   "CANNOT_TARGET_OBSOLETE_CRITERION" - The criterion is not allowed to be
	// targeted as it is deprecated.
	//   "CRITERION_ID_AND_TYPE_MISMATCH" - The CriterionId is not valid for the
	// type.
	//   "INVALID_PROXIMITY_RADIUS" - Distance for the radius for the proximity
	// criterion is invalid.
	//   "INVALID_PROXIMITY_RADIUS_UNITS" - Units for the distance for the radius
	// for the proximity criterion is invalid.
	//   "INVALID_STREETADDRESS_LENGTH" - Street address in the address is not
	// valid.
	//   "INVALID_CITYNAME_LENGTH" - City name in the address is not valid.
	//   "INVALID_REGIONCODE_LENGTH" - Region code in the address is not valid.
	//   "INVALID_REGIONNAME_LENGTH" - Region name in the address is not valid.
	//   "INVALID_POSTALCODE_LENGTH" - Postal code in the address is not valid.
	//   "INVALID_COUNTRY_CODE" - Country code in the address is not valid.
	//   "INVALID_LATITUDE" - Latitude for the GeoPoint is not valid.
	//   "INVALID_LONGITUDE" - Longitude for the GeoPoint is not valid.
	//   "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL" - The Proximity input
	// is not valid. Both address and geoPoint cannot be null.
	//   "INVALID_PROXIMITY_ADDRESS" - The Proximity address cannot be geocoded to
	// a valid lat/long.
	//   "INVALID_USER_DOMAIN_NAME" - User domain name is not valid.
	//   "CRITERION_PARAMETER_TOO_LONG" - Length of serialized criterion parameter
	// exceeded size limit.
	//   "AD_SCHEDULE_TIME_INTERVALS_OVERLAP" - Time interval in the AdSchedule
	// overlaps with another AdSchedule.
	//   "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS" - AdSchedule time
	// interval cannot span multiple days.
	//   "AD_SCHEDULE_INVALID_TIME_INTERVAL" - AdSchedule time interval specified
	// is invalid, endTime cannot be earlier than startTime.
	//   "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT" - The number of AdSchedule
	// entries in a day exceeds the limit.
	//   "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS" - CriteriaId does not match
	// the interval of the AdSchedule specified.
	//   "CANNOT_BID_MODIFY_CRITERION_TYPE" - Cannot set bid modifier for this
	// criterion type.
	//   "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT" - Cannot bid modify
	// criterion, since it is opted out of the campaign.
	//   "CANNOT_BID_MODIFY_NEGATIVE_CRITERION" - Cannot set bid modifier for a
	// negative criterion.
	//   "BID_MODIFIER_ALREADY_EXISTS" - Bid Modifier already exists. Use SET
	// operation to update.
	//   "FEED_ID_NOT_ALLOWED" - Feed Id is not allowed in these Location Groups.
	//   "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE" - The account may not use the
	// requested criteria type. For example, some accounts are restricted to
	// keywords only.
	//   "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY" - The requested criteria type
	// cannot be used with campaign or ad group bidding strategy.
	//   "CANNOT_EXCLUDE_CRITERION" - The Criterion is not allowed to be excluded.
	//   "CANNOT_REMOVE_CRITERION" - The criterion is not allowed to be removed.
	// For example, we cannot remove any of the device criterion.
	//   "INVALID_PRODUCT_BIDDING_CATEGORY" - Bidding categories do not form a
	// valid path in the Shopping bidding category taxonomy.
	//   "MISSING_SHOPPING_SETTING" - ShoppingSetting must be added to the campaign
	// before ProductScope criteria can be added.
	//   "INVALID_MATCHING_FUNCTION" - Matching function is invalid.
	//   "LOCATION_FILTER_NOT_ALLOWED" - Filter parameters not allowed for location
	// groups targeting.
	//   "INVALID_FEED_FOR_LOCATION_FILTER" - Feed not found, or the feed is not an
	// enabled location feed.
	//   "LOCATION_FILTER_INVALID" - Given location filter parameter is invalid for
	// location groups targeting.
	//   "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_FEED_ITEM_SETS" - Cannot set geo
	// target constants and feed item sets at the same time.
	//   "CANNOT_SET_BOTH_ASSET_SET_AND_FEED" - Cannot set both assetset and feed
	// at the same time.
	//   "CANNOT_SET_FEED_OR_FEED_ITEM_SETS_FOR_CUSTOMER" - Cannot set feed or feed
	// item sets for Customer.
	//   "CANNOT_SET_ASSET_SET_FIELD_FOR_CUSTOMER" - Cannot set AssetSet criteria
	// for customer.
	//   "CANNOT_SET_GEO_TARGET_CONSTANTS_WITH_ASSET_SETS" - Cannot set geo target
	// constants and asset sets at the same time.
	//   "CANNOT_SET_ASSET_SETS_WITH_FEED_ITEM_SETS" - Cannot set asset sets and
	// feed item sets at the same time.
	//   "INVALID_LOCATION_GROUP_ASSET_SET" - The location group asset set id is
	// invalid
	//   "INVALID_LOCATION_GROUP_RADIUS" - The location group radius is in the
	// range but not at the valid increment.
	//   "INVALID_LOCATION_GROUP_RADIUS_UNIT" - The location group radius unit is
	// invalid.
	//   "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP" - Criteria type cannot be
	// associated with a campaign and its ad group(s) simultaneously.
	//   "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel length of stay's min nights and max nights overlaps
	// with an existing criterion.
	//   "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel advance booking window's min days and max days overlaps
	// with an existing criterion.
	//   "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING" - The field is not allowed to
	// be set when the negative field is set to true, for example, we don't allow
	// bids in negative ad group or campaign criteria.
	//   "INVALID_WEBPAGE_CONDITION" - The combination of operand and operator in
	// webpage condition is invalid.
	//   "INVALID_WEBPAGE_CONDITION_URL" - The URL of webpage condition is invalid.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_EMPTY" - The URL of webpage condition
	// cannot be empty or contain white space.
	//   "WEBPAGE_CONDITION_URL_UNSUPPORTED_PROTOCOL" - The URL of webpage
	// condition contains an unsupported protocol.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_IP_ADDRESS" - The URL of webpage
	// condition cannot be an IP address.
	//   "WEBPAGE_CONDITION_URL_DOMAIN_NOT_CONSISTENT_WITH_CAMPAIGN_SETTING" - The
	// domain of the URL is not consistent with the domain in campaign setting.
	//   "WEBPAGE_CONDITION_URL_CANNOT_BE_PUBLIC_SUFFIX" - The URL of webpage
	// condition cannot be a public suffix itself.
	//   "WEBPAGE_CONDITION_URL_INVALID_PUBLIC_SUFFIX" - The URL of webpage
	// condition has an invalid public suffix.
	//   "WEBPAGE_CONDITION_URL_VALUE_TRACK_VALUE_NOT_SUPPORTED" - Value track
	// parameter is not supported in webpage condition URL.
	//   "WEBPAGE_CRITERION_URL_EQUALS_CAN_HAVE_ONLY_ONE_CONDITION" - Only one
	// URL-EQUALS webpage condition is allowed in a webpage criterion and it cannot
	// be combined with other conditions.
	//   "WEBPAGE_CRITERION_NOT_SUPPORTED_ON_NON_DSA_AD_GROUP" - A webpage
	// criterion cannot be added to a non-DSA ad group.
	//   "CANNOT_TARGET_USER_LIST_FOR_SMART_DISPLAY_CAMPAIGNS" - Cannot add
	// positive user list criteria in Smart Display campaigns.
	//   "CANNOT_TARGET_PLACEMENTS_FOR_SEARCH_CAMPAIGNS" - Cannot add positive
	// placement criterion types in search campaigns.
	//   "LISTING_SCOPE_TOO_MANY_DIMENSION_TYPES" - Listing scope contains too many
	// dimension types.
	//   "LISTING_SCOPE_TOO_MANY_IN_OPERATORS" - Listing scope has too many IN
	// operators.
	//   "LISTING_SCOPE_IN_OPERATOR_NOT_SUPPORTED" - Listing scope contains IN
	// operator on an unsupported dimension type.
	//   "DUPLICATE_LISTING_DIMENSION_TYPE" - There are dimensions with duplicate
	// dimension type.
	//   "DUPLICATE_LISTING_DIMENSION_VALUE" - There are dimensions with duplicate
	// dimension value.
	//   "CANNOT_SET_BIDS_ON_LISTING_GROUP_SUBDIVISION" - Listing group SUBDIVISION
	// nodes cannot have bids.
	//   "LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION" - Product group operation is
	// invalid because another operation targeting the same AdGroupId is failing.
	//   "INVALID_LISTING_GROUP_HIERARCHY" - Ad group is invalid due to the listing
	// groups it contains.
	//   "LISTING_GROUP_TREE_WAS_INVALID_BEFORE_MUTATION" - Tree was invalid before
	// the mutation.
	//   "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN" - Listing group unit cannot have
	// children.
	//   "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE" - Subdivided listing
	// groups must have an "others" case.
	//   "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS" - Dimension type
	// of listing group must be the same as that of its siblings.
	//   "LISTING_GROUP_ALREADY_EXISTS" - Listing group cannot be added to the ad
	// group because it already exists.
	//   "LISTING_GROUP_DOES_NOT_EXIST" - Listing group referenced in the operation
	// was not found in the ad group.
	//   "LISTING_GROUP_CANNOT_BE_REMOVED" - Recursive removal failed because
	// listing group subdivision is being created or modified in this request.
	//   "INVALID_LISTING_GROUP_TYPE" - Listing group type is not allowed for
	// specified ad group criterion type.
	//   "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID" - Listing group in an ADD
	// operation specifies a non temporary criterion id.
	//   "LISTING_SCOPE_TOO_LONG" - The combined length of dimension values of the
	// Listing scope criterion is too long.
	//   "LISTING_SCOPE_TOO_MANY_DIMENSIONS" - Listing scope contains too many
	// dimensions.
	//   "LISTING_GROUP_TOO_LONG" - The combined length of dimension values of the
	// Listing group criterion is too long.
	//   "LISTING_GROUP_TREE_TOO_DEEP" - Listing group tree is too deep.
	//   "INVALID_LISTING_DIMENSION" - Listing dimension is invalid (for example,
	// dimension contains illegal value, dimension type is represented with wrong
	// class, etc). Listing dimension value can not contain "==" or "&+".
	//   "INVALID_LISTING_DIMENSION_TYPE" - Listing dimension type is either
	// invalid for campaigns of this type or cannot be used in the current context.
	// BIDDING_CATEGORY_Lx and PRODUCT_TYPE_Lx dimensions must be used in ascending
	// order of their levels: L1, L2, L3, L4, L5... The levels must be specified
	// sequentially and start from L1. Furthermore, an "others" Listing group
	// cannot be subdivided with a dimension of the same type but of a higher level
	// ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND but not with
	// BIDDING_CATEGORY_L4).
	//   "ADVERTISER_NOT_ON_ALLOWLIST_FOR_COMBINED_AUDIENCE_ON_DISPLAY" - Customer
	// is not on allowlist for composite audience in display campaigns.
	//   "CANNOT_TARGET_REMOVED_COMBINED_AUDIENCE" - Cannot target on a removed
	// combined audience.
	//   "INVALID_COMBINED_AUDIENCE_ID" - Combined audience ID is invalid.
	//   "CANNOT_TARGET_REMOVED_CUSTOM_AUDIENCE" - Can not target removed combined
	// audience.
	//   "HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION" - Range
	// represented by hotel check-in date's start date and end date overlaps with
	// an existing criterion.
	//   "HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY" - Start date is earlier
	// than earliest allowed value of yesterday UTC.
	//   "HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE" - End date later is than
	// latest allowed day of 330 days in the future UTC.
	//   "HOTEL_CHECK_IN_DATE_RANGE_REVERSED" - Start date is after end date.
	//   "BROAD_MATCH_MODIFIER_KEYWORD_NOT_ALLOWED" - Broad match modifier (BMM)
	// keywords can no longer be created. See
	// https://ads-developers.googleblog.com/2021/06/broad-match-modifier-upcoming-changes.html.
	//   "ONE_AUDIENCE_ALLOWED_PER_ASSET_GROUP" - Only one audience is allowed in
	// an asset group.
	//   "AUDIENCE_NOT_ELIGIBLE_FOR_CAMPAIGN_TYPE" - Audience is not supported for
	// the specified campaign type.
	//   "AUDIENCE_NOT_ALLOWED_TO_ATTACH_WHEN_AUDIENCE_GROUPED_SET_TO_FALSE" -
	// Audience is not allowed to attach when use_audience_grouped bit is set to
	// false.
	//   "CANNOT_TARGET_CUSTOMER_MATCH_USER_LIST" - Targeting is not allowed for
	// Customer Match lists as per Customer Match policy. See
	// https://support.google.com/google-ads/answer/6299717.
	//   "NEGATIVE_KEYWORD_SHARED_SET_DOES_NOT_EXIST" - Cannot create a negative
	// keyword list criterion with a shared set that does not exist.
	//   "CANNOT_ADD_REMOVED_NEGATIVE_KEYWORD_SHARED_SET" - Cannot create a
	// negative keyword list with deleted shared set.
	//   "CANNOT_HAVE_MULTIPLE_NEGATIVE_KEYWORD_LIST_PER_ACCOUNT" - Can only have
	// one Negative Keyword List per account.
	//   "CUSTOMER_CANNOT_ADD_CRITERION_OF_THIS_TYPE" - Only allowlisted customers
	// can add criteria of this type.
	//   "CANNOT_TARGET_SIMILAR_USER_LIST" - Targeting for Similar audiences is not
	// supported, since this feature has been deprecated. See
	// https://support.google.com/google-ads/answer/12463119 to learn more.
	//   "CANNOT_ADD_AUDIENCE_SEGMENT_CRITERION_WHEN_AUDIENCE_GROUPED_IS_SET" -
	// Audience segment criteria cannot be added when use_audience_grouped bit is
	// set.
	//   "ONE_AUDIENCE_ALLOWED_PER_AD_GROUP" - Only one audience is allowed in an
	// ad group.
	//   "INVALID_DETAILED_DEMOGRAPHIC" - Invalid detailed demographics criterion.
	//   "CANNOT_RECOGNIZE_BRAND" - The brand criteria has a brand input that is
	// not recognized as a valid brand.
	//   "BRAND_SHARED_SET_DOES_NOT_EXIST" - The brand_list.shared_set_id
	// references a shared set that does not exist.
	//   "CANNOT_ADD_REMOVED_BRAND_SHARED_SET" - Cannot create a brand list with
	// deleted shared set.
	//   "ONLY_EXCLUSION_BRAND_LIST_ALLOWED_FOR_CAMPAIGN_TYPE" - Brand list can
	// only be negatively targeted for the campaign type.
	//   "LOCATION_TARGETING_NOT_ELIGIBLE_FOR_RESTRICTED_CAMPAIGN" - Cannot
	// positively target locations outside of restricted area for campaign.
	//   "ONLY_INCLUSION_BRAND_LIST_ALLOWED_FOR_AD_GROUPS" - Ad group level brand
	// list criteria only support inclusionary targeting. Negative targeting at
	// this level is not supported.
	//   "CANNOT_ADD_REMOVED_PLACEMENT_LIST_SHARED_SET" - Cannot create a placement
	// list with deleted shared set.
	//   "PLACEMENT_LIST_SHARED_SET_DOES_NOT_EXIST" - The
	// placement_list.shared_set_id references a shared set that does not exist.
	//   "AI_MAX_MUST_BE_ENABLED" - This feature is only available for AI Max
	// campaigns.
	//   "NOT_AVAILABLE_FOR_AI_MAX_CAMPAIGNS" - This feature is not available for
	// AI Max campaigns.
	//   "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION" - The operation failed
	// because the campaign is missing the self-declaration on political
	// advertising status in the EU.
	//   "INVALID_CAMPAIGN_TYPE_FOR_THIRD_PARTY_PARTNER_DATA_LIST" - Targeting this
	// UserList is not allowed for this campaign type.
	//   "CANNOT_ADD_USER_LIST_PENDING_PRIVACY_REVIEW" - The user list cannot be
	// used while it is pending privacy review.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_DOES_NOT_EXIST" - The referenced
	// Vertical Ads item group rule list shared set does not exist.
	//   "CANNOT_ADD_REMOVED_VERTICAL_ADS_ITEM_GROUP_RULE_LIST_SHARED_SET" - Cannot
	// add Vertical Ads Item Group Rule List with deleted shared set.
	//
	// "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_ENABLE
	// D_TRAVEL_FEED" - Vertical Ads Item Group Rule List is not supported for
	// campaigns that do not have an active travel feed.
	//
	// "VERTICAL_ADS_ITEM_GROUP_RULE_LIST_NOT_SUPPORTED_FOR_CAMPAIGNS_WITHOUT_AI_MAX
	// " - Vertical Ads Item Group Rule List is not supported for campaigns that do
	// not have AI max enabled.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_NOT_SUPPORTED_FOR_THE_VERTICAL_TYPE" - The
	// dimension of the Vertical Ads Item Group Rule criterion is not supported for
	// the shared set vertical type.
	CriterionError string `json:"criterionError,omitempty"`
	// CurrencyCodeError: The reasons for the currency code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED" - The currency code is not supported.
	CurrencyCodeError string `json:"currencyCodeError,omitempty"`
	// CurrencyError: The reasons for the currency errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VALUE_NOT_MULTIPLE_OF_BILLABLE_UNIT" - Bid must be a multiple of billable
	// unit.
	CurrencyError string `json:"currencyError,omitempty"`
	// CustomAudienceError: The reasons for the custom audience error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_USED" - New name in the custom audience is duplicated
	// ignoring cases.
	//   "CANNOT_REMOVE_WHILE_IN_USE" - Cannot remove a custom audience while it's
	// still being used as targeting.
	//   "RESOURCE_ALREADY_REMOVED" - Cannot update or remove a custom audience
	// that is already removed.
	//   "MEMBER_TYPE_AND_PARAMETER_ALREADY_EXISTED" - The pair of [type, value]
	// already exists in members.
	//   "INVALID_MEMBER_TYPE" - Member type is invalid.
	//   "MEMBER_TYPE_AND_VALUE_DOES_NOT_MATCH" - Member type does not have
	// associated value.
	//   "POLICY_VIOLATION" - Custom audience contains a member that violates
	// policy.
	//   "INVALID_TYPE_CHANGE" - Change in custom audience type is not allowed.
	CustomAudienceError string `json:"customAudienceError,omitempty"`
	// CustomColumnError: The reasons for the custom column error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOM_COLUMN_NOT_FOUND" - The custom column has not been found.
	//   "CUSTOM_COLUMN_NOT_AVAILABLE" - The custom column is not available.
	CustomColumnError string `json:"customColumnError,omitempty"`
	// CustomConversionGoalError: The reasons for the custom conversion goal error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CONVERSION_ACTION" - Cannot find a conversion action with the
	// specified id.
	//   "CONVERSION_ACTION_NOT_ENABLED" - The conversion action is not enabled so
	// it cannot be included in a custom conversion goal.
	//   "CANNOT_REMOVE_LINKED_CUSTOM_CONVERSION_GOAL" - The custom conversion goal
	// cannot be removed because it's linked to a campaign.
	//   "CUSTOM_GOAL_DUPLICATE_NAME" - Custom goal with the same name already
	// exists.
	//   "DUPLICATE_CONVERSION_ACTION_LIST" - Custom goal with the same conversion
	// action list already exists.
	//   "NON_BIDDABLE_CONVERSION_ACTION_NOT_ELIGIBLE_FOR_CUSTOM_GOAL" - Conversion
	// types that cannot be biddable should not be included in custom goal.
	CustomConversionGoalError string `json:"customConversionGoalError,omitempty"`
	// CustomInterestError: The reasons for the custom interest error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NAME_ALREADY_USED" - Duplicate custom interest name ignoring case.
	//   "CUSTOM_INTEREST_MEMBER_ID_AND_TYPE_PARAMETER_NOT_PRESENT_IN_REMOVE" - In
	// the remove custom interest member operation, both member ID and pair [type,
	// parameter] are not present.
	//   "TYPE_AND_PARAMETER_NOT_FOUND" - The pair of [type, parameter] does not
	// exist.
	//   "TYPE_AND_PARAMETER_ALREADY_EXISTED" - The pair of [type, parameter]
	// already exists.
	//   "INVALID_CUSTOM_INTEREST_MEMBER_TYPE" - Unsupported custom interest member
	// type.
	//   "CANNOT_REMOVE_WHILE_IN_USE" - Cannot remove a custom interest while it's
	// still being targeted.
	//   "CANNOT_CHANGE_TYPE" - Cannot mutate custom interest type.
	CustomInterestError string `json:"customInterestError,omitempty"`
	// CustomerClientLinkError: The reasons for the customer client link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER" - Trying to manage a client that
	// already in being managed by customer.
	//   "CLIENT_ALREADY_MANAGED_IN_HIERARCHY" - Already managed by some other
	// manager in the hierarchy.
	//   "CYCLIC_LINK_NOT_ALLOWED" - Attempt to create a cycle in the hierarchy.
	//   "CUSTOMER_HAS_TOO_MANY_ACCOUNTS" - Managed accounts has the maximum number
	// of linked accounts.
	//   "CLIENT_HAS_TOO_MANY_INVITATIONS" - Invitor has the maximum pending
	// invitations.
	//   "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS" - Attempt to change hidden status
	// of a link that is not active.
	//   "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER" - Parent manager account has
	// the maximum number of linked accounts.
	//   "CLIENT_HAS_TOO_MANY_MANAGERS" - Client has too many managers.
	CustomerClientLinkError string `json:"customerClientLinkError,omitempty"`
	// CustomerCustomizerError: The reasons for the customer customizer error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	CustomerCustomizerError string `json:"customerCustomizerError,omitempty"`
	// CustomerError: The reasons for the customer error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "STATUS_CHANGE_DISALLOWED" - Customer status is not allowed to be changed
	// from DRAFT and CLOSED. Currency code and at least one of country code and
	// time zone needs to be set when status is changed to ENABLED.
	//   "ACCOUNT_NOT_SET_UP" - CustomerService cannot get a customer that has not
	// been fully set up.
	//   "CREATION_DENIED_FOR_POLICY_VIOLATION" - Customer creation is denied for
	// policy violation.
	//   "CREATION_DENIED_INELIGIBLE_MCC" - Manager account is ineligible to create
	// new accounts.
	CustomerError string `json:"customerError,omitempty"`
	// CustomerFeedError: The reasons for the customer feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active feed already exists
	// for this customer and place holder type.
	//   "CANNOT_CREATE_FOR_REMOVED_FEED" - The specified feed is removed.
	//   "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED" - The CustomerFeed already
	// exists. Update should be used to modify the existing CustomerFeed.
	//   "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED" - Cannot update removed customer
	// feed.
	//   "INVALID_PLACEHOLDER_TYPE" - Invalid placeholder type.
	//   "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE" - Feed mapping for this
	// placeholder type does not exist.
	//   "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED" - Placeholder not allowed
	// at the account level.
	CustomerFeedError string `json:"customerFeedError,omitempty"`
	// CustomerLifecycleGoalError: The reasons for the customer lifecycle goal
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_ACQUISITION_VALUE_MISSING" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be
	// set.
	//   "CUSTOMER_ACQUISITION_INVALID_VALUE" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must be
	// no less than 0.01.
	//   "CUSTOMER_ACQUISITION_INVALID_HIGH_LIFETIME_VALUE" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_
	// value must be no less than 0.01. Also, to set this field,
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value must
	// also be present, and high_lifetime_value must be greater than value.
	//   "CUSTOMER_ACQUISITION_VALUE_CANNOT_BE_CLEARED" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.value cannot
	// be cleared. This value would have no effect as long as none of your
	// campaigns adopt the customer acquisitiong goal.
	//   "CUSTOMER_ACQUISITION_HIGH_LIFETIME_VALUE_CANNOT_BE_CLEARED" -
	// CustomerLifecycleGoal.customer_acquisition_goal_value_settings.high_lifetime_
	// value cannot be cleared. This value would have no effect as long as none of
	// your campaigns adopt the high value optimization of customer acquisitiong
	// goal.
	//   "INVALID_EXISTING_USER_LIST" - Found invalid value in
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_us
	// er_lists. The userlist must be accessible, active and belong to one of the
	// following types: CRM_BASED, RULE_BASED, REMARKETING.
	//   "INVALID_HIGH_LIFETIME_VALUE_USER_LIST" - Found invalid value in
	// CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.high_lifeti
	// me_value_user_lists. The userlist must be accessible, active and belong to
	// one of the following types: CRM_BASED, RULE_BASED, REMARKETING.
	CustomerLifecycleGoalError string `json:"customerLifecycleGoalError,omitempty"`
	// CustomerManagerLinkError: The reasons for the customer manager link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_PENDING_INVITE" - No pending invitation.
	//   "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL" - Attempt to operate on the same
	// client more than once in the same call.
	//   "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS" - Manager account has the
	// maximum number of linked accounts.
	//   "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER" - If no active user on account
	// it cannot be unlinked from its manager.
	//   "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER" - Account should have at least
	// one active owner on it before being unlinked.
	//   "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER" - Only account owners may change
	// their permission role.
	//   "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT" - When a client's link to
	// its manager is not active, the link role cannot be changed.
	//   "DUPLICATE_CHILD_FOUND" - Attempt to link a child to a parent that
	// contains or will contain duplicate children.
	//   "TEST_ACCOUNT_LINKS_TOO_MANY_CHILD_ACCOUNTS" - The authorized customer is
	// a test account. It can add no more than the allowed number of accounts
	CustomerManagerLinkError string `json:"customerManagerLinkError,omitempty"`
	// CustomerSkAdNetworkConversionValueSchemaError: The reasons for the customer
	// SK Ad network conversion value schema error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_LINK_ID" - The customer link ID provided is invalid.
	//   "INVALID_APP_ID" - The app ID provided is invalid.
	//   "INVALID_SCHEMA" - The conversion value schema provided is invalid.
	//   "LINK_CODE_NOT_FOUND" - The customer link id provided could not be found.
	//   "INVALID_EVENT_COUNTER" - The SkAdNetwork event counter provided is
	// invalid.
	//   "INVALID_EVENT_NAME" - The SkAdNetwork event name provided is invalid.
	CustomerSkAdNetworkConversionValueSchemaError string `json:"customerSkAdNetworkConversionValueSchemaError,omitempty"`
	// CustomerUserAccessError: The reasons for the customer user access mutate
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_ID" - There is no user associated with the user id
	// specified.
	//   "REMOVAL_DISALLOWED" - Unable to remove the access between the user and
	// customer.
	//   "DISALLOWED_ACCESS_ROLE" - Unable to add or update the access role as
	// specified.
	//   "LAST_ADMIN_USER_OF_SERVING_CUSTOMER" - The user can't remove itself from
	// an active serving customer if it's the last admin user and the customer
	// doesn't have any owner manager
	//   "LAST_ADMIN_USER_OF_MANAGER" - Last admin user cannot be removed from a
	// manager.
	CustomerUserAccessError string `json:"customerUserAccessError,omitempty"`
	// CustomizerAttributeError: The reasons for the customizer attribute error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_CUSTOMIZER_ATTRIBUTE_NAME" - CustomizerAttribute name matches
	// that of another active CustomizerAttribute.
	CustomizerAttributeError string `json:"customizerAttributeError,omitempty"`
	// DataLinkError: The reasons for the data link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "YOUTUBE_CHANNEL_ID_INVALID" - The requested YouTube Channel ID is
	// invalid.
	//   "YOUTUBE_VIDEO_ID_INVALID" - The requested YouTube Video ID is invalid.
	//   "YOUTUBE_VIDEO_FROM_DIFFERENT_CHANNEL" - The requested YouTube Video ID
	// doesn't belong to the requested YouTube Channel ID.
	//   "PERMISSION_DENIED" - A link cannot be created because the customer
	// doesn't have the permission.
	//   "INVALID_STATUS" - A link can not be removed or updated because the status
	// is invalid.
	//   "INVALID_UPDATE_STATUS" - The input status in the update request is
	// invalid.
	//   "INVALID_RESOURCE_NAME" - The input resource name is invalid.
	DataLinkError string `json:"dataLinkError,omitempty"`
	// DatabaseError: The reasons for the database error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONCURRENT_MODIFICATION" - Multiple requests were attempting to modify
	// the same resource at once. Retry the request.
	//   "DATA_CONSTRAINT_VIOLATION" - The request conflicted with existing data.
	// This error will usually be replaced with a more specific error if the
	// request is retried.
	//   "REQUEST_TOO_LARGE" - The data written is too large. Split the request
	// into smaller requests.
	DatabaseError string `json:"databaseError,omitempty"`
	// DateError: The reasons for the date error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not correspond to a
	// valid date.
	//   "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not correspond
	// to a valid date time.
	//   "INVALID_STRING_DATE" - The string date's format should be yyyy-mm-dd.
	//   "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.ssssss.
	//   "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.
	//   "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date time's
	// format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
	//   "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum.
	//   "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum.
	//   "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range bounds are
	// not in order.
	//   "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in range are
	// null.
	//   "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY" - This campaign
	// type doesn't support a start date time that isn't the start of the day.
	//   "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY" - This campaign type
	// doesn't support an end date time that isn't the end of the day.
	DateError string `json:"dateError,omitempty"`
	// DateRangeError: The reasons for the date range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_DATE" - Invalid date.
	//   "START_DATE_AFTER_END_DATE" - The start date was after the end date.
	//   "CANNOT_SET_DATE_TO_PAST" - Cannot set date to past time
	//   "AFTER_MAXIMUM_ALLOWABLE_DATE" - A date was used that is past the system
	// "last" date.
	//   "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" - Trying to change start
	// date on a resource that has started.
	DateRangeError string `json:"dateRangeError,omitempty"`
	// DistinctError: The reasons for the distinct error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ELEMENT" - Duplicate element.
	//   "DUPLICATE_TYPE" - Duplicate type.
	DistinctError string `json:"distinctError,omitempty"`
	// EnumError: The reason for enum error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ENUM_VALUE_NOT_PERMITTED" - The enum value is not permitted.
	EnumError string `json:"enumError,omitempty"`
	// ExperimentArmError: The reasons for the experiment arm error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXPERIMENT_ARM_COUNT_LIMIT_EXCEEDED" - Number of experiment arms is above
	// limit.
	//   "INVALID_CAMPAIGN_STATUS" - Cannot add campaign with invalid status to the
	// experiment arm.
	//   "DUPLICATE_EXPERIMENT_ARM_NAME" - Cannot add duplicate experiment arm name
	// in one experiment.
	//   "CANNOT_SET_TREATMENT_ARM_CAMPAIGN" - Cannot set campaigns of treatment
	// experiment arm.
	//   "CANNOT_MODIFY_CAMPAIGN_IDS" - Cannot edit campaign ids in trial arms in
	// non SETUP experiment.
	//   "CANNOT_MODIFY_CAMPAIGN_WITHOUT_SUFFIX_SET" - Cannot modify the campaigns
	// in the control arm if there is not a suffix set in the trial.
	//   "CANNOT_MUTATE_TRAFFIC_SPLIT_AFTER_START" - Traffic split related settings
	// (like traffic share bounds) can't be modified after the trial has started.
	//   "CANNOT_ADD_CAMPAIGN_WITH_SHARED_BUDGET" - Cannot use shared budget on
	// experiment's control campaign.
	//   "CANNOT_ADD_CAMPAIGN_WITH_CUSTOM_BUDGET" - Cannot use custom budget on
	// experiment's control campaigns.
	//   "CANNOT_ADD_CAMPAIGNS_WITH_DYNAMIC_ASSETS_ENABLED" - Cannot have
	// enable_dynamic_assets turned on in experiment's campaigns.
	//   "UNSUPPORTED_CAMPAIGN_ADVERTISING_CHANNEL_SUB_TYPE" - Cannot use
	// campaign's advertising channel sub type in experiment.
	//   "CANNOT_ADD_BASE_CAMPAIGN_WITH_DATE_RANGE" - Experiment date range must be
	// within base campaign's date range.
	//   "BIDDING_STRATEGY_NOT_SUPPORTED_IN_EXPERIMENTS" - Bidding strategy is not
	// supported in experiments.
	//   "TRAFFIC_SPLIT_NOT_SUPPORTED_FOR_CHANNEL_TYPE" - Traffic split is not
	// supported for some channel types.
	ExperimentArmError string `json:"experimentArmError,omitempty"`
	// ExperimentError: The reasons for the experiment error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_SET_START_DATE_IN_PAST" - The start date of an experiment cannot
	// be set in the past. Use a start date in the future.
	//   "END_DATE_BEFORE_START_DATE" - The end date of an experiment is before its
	// start date. Use an end date after the start date.
	//   "START_DATE_TOO_FAR_IN_FUTURE" - The start date of an experiment is too
	// far in the future. Use a start date no more than 1 year in the future.
	//   "DUPLICATE_EXPERIMENT_NAME" - The experiment has the same name as an
	// existing active experiment.
	//   "CANNOT_MODIFY_REMOVED_EXPERIMENT" - Experiments can only be modified when
	// they are ENABLED.
	//   "START_DATE_ALREADY_PASSED" - The start date of an experiment cannot be
	// modified if the existing start date has already passed.
	//   "CANNOT_SET_END_DATE_IN_PAST" - The end date of an experiment cannot be
	// set in the past.
	//   "CANNOT_SET_STATUS_TO_REMOVED" - The status of an experiment cannot be set
	// to REMOVED.
	//   "CANNOT_MODIFY_PAST_END_DATE" - The end date of an expired experiment
	// cannot be modified.
	//   "INVALID_STATUS" - The status is invalid.
	//   "INVALID_CAMPAIGN_CHANNEL_TYPE" - Experiment arm contains campaigns with
	// invalid advertising channel type.
	//   "OVERLAPPING_MEMBERS_AND_DATE_RANGE" - A pair of trials share members and
	// have overlapping date ranges.
	//   "INVALID_TRIAL_ARM_TRAFFIC_SPLIT" - Experiment arm contains invalid
	// traffic split.
	//   "TRAFFIC_SPLIT_OVERLAPPING" - Experiment contains trial arms with
	// overlapping traffic split.
	//   "SUM_TRIAL_ARM_TRAFFIC_UNEQUALS_TO_TRIAL_TRAFFIC_SPLIT_DENOMINATOR" - The
	// total traffic split of trial arms is not equal to 100.
	//   "CANNOT_MODIFY_TRAFFIC_SPLIT_AFTER_START" - Traffic split related settings
	// (like traffic share bounds) can't be modified after the experiment has
	// started.
	//   "EXPERIMENT_NOT_FOUND" - The experiment could not be found.
	//   "EXPERIMENT_NOT_YET_STARTED" - Experiment has not begun.
	//   "CANNOT_HAVE_MULTIPLE_CONTROL_ARMS" - The experiment cannot have more than
	// one control arm.
	//   "IN_DESIGN_CAMPAIGNS_NOT_SET" - The experiment doesn't set in-design
	// campaigns.
	//   "CANNOT_SET_STATUS_TO_GRADUATED" - Clients must use the graduate action to
	// graduate experiments and cannot set the status to GRADUATED directly.
	//   "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_SHARED_BUDGET" - Cannot use shared
	// budget on base campaign when scheduling an experiment.
	//   "CANNOT_CREATE_EXPERIMENT_CAMPAIGN_WITH_CUSTOM_BUDGET" - Cannot use custom
	// budget on base campaign when scheduling an experiment.
	//   "STATUS_TRANSITION_INVALID" - Invalid status transition.
	//   "DUPLICATE_EXPERIMENT_CAMPAIGN_NAME" - The experiment campaign name
	// conflicts with a pre-existing campaign.
	//   "CANNOT_REMOVE_IN_CREATION_EXPERIMENT" - Cannot remove in creation
	// experiments.
	//   "CANNOT_ADD_CAMPAIGN_WITH_DEPRECATED_AD_TYPES" - Cannot add campaign with
	// deprecated ad types. Deprecated ad types: ENHANCED_DISPLAY, GALLERY, GMAIL,
	// KEYWORDLESS, TEXT.
	//   "CANNOT_ENABLE_SYNC_FOR_UNSUPPORTED_EXPERIMENT_TYPE" - Sync can only be
	// enabled for supported experiment types. Supported experiment types:
	// SEARCH_CUSTOM, DISPLAY_CUSTOM, DISPLAY_AUTOMATED_BIDDING_STRATEGY,
	// SEARCH_AUTOMATED_BIDDING_STRATEGY.
	//   "INVALID_DURATION_FOR_AN_EXPERIMENT" - Experiment length cannot be longer
	// than max length.
	//   "MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION" - The experiment's
	// campaigns must self-declare whether they contain political advertising that
	// targets the European Union.
	ExperimentError string `json:"experimentError,omitempty"`
	// ExtensionFeedItemError: The reasons for the extension feed item error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VALUE_OUT_OF_RANGE" - Value is not within the accepted range.
	//   "URL_LIST_TOO_LONG" - Url list is too long.
	//   "CANNOT_HAVE_RESTRICTION_ON_EMPTY_GEO_TARGETING" - Cannot have a geo
	// targeting restriction without having geo targeting.
	//   "CANNOT_SET_WITH_FINAL_URLS" - Cannot simultaneously set sitelink field
	// with final urls.
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Must set field with final urls.
	//   "INVALID_PHONE_NUMBER" - Phone number for a call extension is invalid.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number for a call
	// extension is not supported for the given country code.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - A carrier specific number in
	// short format is not allowed for call extensions.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate numbers are not allowed
	// for call extensions.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type for a call extension is not
	// allowed. For example, personal number is not allowed for a call extension in
	// most regions.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number for a call extension
	// does not meet domestic format requirements.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone numbers (for example,
	// those including letters) are not allowed for call extensions.
	//   "INVALID_CALL_CONVERSION_ACTION" - Call conversion action provided for a
	// call extension is invalid.
	//   "CUSTOMER_NOT_ON_ALLOWLIST_FOR_CALLTRACKING" - For a call extension, the
	// customer is not on the allow-list for call tracking.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for the given country for a call extension.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer hasn't consented
	// for call recording, which is required for creating/updating call feed items.
	// See https://support.google.com/google-ads/answer/7412639.
	//   "INVALID_APP_ID" - App id provided for an app extension is invalid.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Quotation marks present in the
	// review text for a review extension.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Hyphen character present in the
	// review text for a review extension.
	//   "REVIEW_EXTENSION_SOURCE_INELIGIBLE" - A denylisted review source name or
	// url was provided for a review extension.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review source name should not be
	// found in the review text.
	//   "INCONSISTENT_CURRENCY_CODES" - Inconsistent currency codes.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Price extension cannot have
	// duplicated headers.
	//   "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Price item cannot
	// have duplicated header and description.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items.
	//   "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS" - Price extension has too many items.
	//   "UNSUPPORTED_VALUE" - The input value is not currently supported.
	//   "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE" - The input value is not
	// currently supported in the selected language of an extension.
	//   "INVALID_DEVICE_PREFERENCE" - Unknown or unsupported device preference.
	//   "INVALID_SCHEDULE_END" - Invalid feed item schedule end time (for example,
	// endHour = 24 and endMinute != 0).
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "INVALID_SNIPPETS_HEADER" - Invalid structured snippet header.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM" - Cannot operate on removed feed
	// item.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// not supported when call tracking enabled for country.
	//   "CONFLICTING_CALL_CONVERSION_SETTINGS" - Cannot set call_conversion_action
	// while call_conversion_tracking_enabled is set to true.
	//   "EXTENSION_TYPE_MISMATCH" - The type of the input extension feed item
	// doesn't match the existing extension feed item.
	//   "EXTENSION_SUBTYPE_REQUIRED" - The oneof field extension for example,
	// subtype of extension feed item is required.
	//   "EXTENSION_TYPE_UNSUPPORTED" - The referenced feed item is not mapped to a
	// supported extension type.
	//   "CANNOT_OPERATE_ON_FEED_WITH_MULTIPLE_MAPPINGS" - Cannot operate on a Feed
	// with more than one active FeedMapping.
	//   "CANNOT_OPERATE_ON_FEED_WITH_KEY_ATTRIBUTES" - Cannot operate on a Feed
	// that has key attributes.
	//   "INVALID_PRICE_FORMAT" - Input price is not in a valid format.
	//   "PROMOTION_INVALID_TIME" - The promotion time is invalid.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - This field has too many decimal
	// places specified.
	//   "CONCRETE_EXTENSION_TYPE_REQUIRED" - Concrete sub type of
	// ExtensionFeedItem is required for this operation.
	//   "SCHEDULE_END_NOT_AFTER_START" - Feed item schedule end time must be after
	// start time.
	ExtensionFeedItemError string `json:"extensionFeedItemError,omitempty"`
	// ExtensionSettingError: The reasons for the extension setting error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXTENSIONS_REQUIRED" - A platform restriction was provided without input
	// extensions or existing extensions.
	//   "FEED_TYPE_EXTENSION_TYPE_MISMATCH" - The provided feed type does not
	// correspond to the provided extensions.
	//   "INVALID_FEED_TYPE" - The provided feed type cannot be used.
	//   "INVALID_FEED_TYPE_FOR_CUSTOMER_EXTENSION_SETTING" - The provided feed
	// type cannot be used at the customer level.
	//   "CANNOT_CHANGE_FEED_ITEM_ON_CREATE" - Cannot change a feed item field on a
	// CREATE operation.
	//   "CANNOT_UPDATE_NEWLY_CREATED_EXTENSION" - Cannot update an extension that
	// is not already in this setting.
	//   "NO_EXISTING_AD_GROUP_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// AdGroupExtensionSetting for this type.
	//   "NO_EXISTING_CAMPAIGN_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// CampaignExtensionSetting for this type.
	//   "NO_EXISTING_CUSTOMER_EXTENSION_SETTING_FOR_TYPE" - There is no existing
	// CustomerExtensionSetting for this type.
	//   "AD_GROUP_EXTENSION_SETTING_ALREADY_EXISTS" - The AdGroupExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// AdGroupExtensionSetting.
	//   "CAMPAIGN_EXTENSION_SETTING_ALREADY_EXISTS" - The CampaignExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// CampaignExtensionSetting.
	//   "CUSTOMER_EXTENSION_SETTING_ALREADY_EXISTS" - The CustomerExtensionSetting
	// already exists. UPDATE should be used to modify the existing
	// CustomerExtensionSetting.
	//   "AD_GROUP_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active ad group
	// feed already exists for this place holder type.
	//   "CAMPAIGN_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active campaign
	// feed already exists for this place holder type.
	//   "CUSTOMER_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE" - An active customer
	// feed already exists for this place holder type.
	//   "VALUE_OUT_OF_RANGE" - Value is not within the accepted range.
	//   "CANNOT_SET_FIELD_WITH_FINAL_URLS" - Cannot simultaneously set specified
	// field with final urls.
	//   "FINAL_URLS_NOT_SET" - Must set field with final urls.
	//   "INVALID_PHONE_NUMBER" - Phone number for a call extension is invalid.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number for a call
	// extension is not supported for the given country code.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - A carrier specific number in
	// short format is not allowed for call extensions.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate numbers are not allowed
	// for call extensions.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type for a call extension is not
	// allowed.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number for a call extension
	// does not meet domestic format requirements.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Vanity phone numbers (for example,
	// those including letters) are not allowed for call extensions.
	//   "INVALID_COUNTRY_CODE" - Country code provided for a call extension is
	// invalid.
	//   "INVALID_CALL_CONVERSION_TYPE_ID" - Call conversion type id provided for a
	// call extension is invalid.
	//   "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING" - For a call extension, the
	// customer is not on the allow-list for call tracking.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// for the given country for a call extension.
	//   "INVALID_APP_ID" - App id provided for an app extension is invalid.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Quotation marks present in the
	// review text for a review extension.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Hyphen character present in the
	// review text for a review extension.
	//   "REVIEW_EXTENSION_SOURCE_NOT_ELIGIBLE" - A blocked review source name or
	// url was provided for a review extension.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review source name should not be
	// found in the review text.
	//   "MISSING_FIELD" - Field must be set.
	//   "INCONSISTENT_CURRENCY_CODES" - Inconsistent currency codes.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Price extension cannot have
	// duplicated headers.
	//   "PRICE_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Price item cannot
	// have duplicated header and description.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items
	//   "PRICE_EXTENSION_HAS_TOO_MANY_ITEMS" - Price extension has too many items
	//   "UNSUPPORTED_VALUE" - The input value is not currently supported.
	//   "INVALID_DEVICE_PREFERENCE" - Unknown or unsupported device preference.
	//   "INVALID_SCHEDULE_END" - Invalid feed item schedule end time (for example,
	// endHour = 24 and endMinute != 0).
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "OVERLAPPING_SCHEDULES_NOT_ALLOWED" - Overlapping feed item schedule times
	// (for example, 7-10AM and 8-11AM) are not allowed.
	//   "SCHEDULE_END_NOT_AFTER_START" - Feed item schedule end time must be after
	// start time.
	//   "TOO_MANY_SCHEDULES_PER_DAY" - There are too many feed item schedules per
	// day.
	//   "DUPLICATE_EXTENSION_FEED_ITEM_EDIT" - Cannot edit the same extension feed
	// item more than once in the same request.
	//   "INVALID_SNIPPETS_HEADER" - Invalid structured snippet header.
	//   "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY" - Phone number
	// with call tracking enabled is not supported for the specified country.
	//   "CAMPAIGN_TARGETING_MISMATCH" - The targeted adgroup must belong to the
	// targeted campaign.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED" - The feed used by the ExtensionSetting
	// is removed and cannot be operated on. Remove the ExtensionSetting to allow a
	// new one to be created using an active feed.
	//   "EXTENSION_TYPE_REQUIRED" - The ExtensionFeedItem type is required for
	// this operation.
	//   "INCOMPATIBLE_UNDERLYING_MATCHING_FUNCTION" - The matching function that
	// links the extension feed to the customer, campaign, or ad group is not
	// compatible with the ExtensionSetting services.
	//   "START_DATE_AFTER_END_DATE" - Start date must be before end date.
	//   "INVALID_PRICE_FORMAT" - Input price is not in a valid format.
	//   "PROMOTION_INVALID_TIME" - The promotion time is invalid.
	//   "PROMOTION_CANNOT_SET_PERCENT_DISCOUNT_AND_MONEY_DISCOUNT" - Cannot set
	// both percent discount and money discount fields.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Cannot set
	// both promotion code and orders over amount fields.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - This field has too many decimal
	// places specified.
	//   "INVALID_LANGUAGE_CODE" - The language code is not valid.
	//   "UNSUPPORTED_LANGUAGE" - The language is not supported.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Customer hasn't consented
	// for call recording, which is required for adding/updating call extensions.
	// See https://support.google.com/google-ads/answer/7412639.
	//   "EXTENSION_SETTING_UPDATE_IS_A_NOOP" - The UPDATE operation does not
	// specify any fields other than the resource name in the update mask.
	//   "DISALLOWED_TEXT" - The extension contains text which has been prohibited
	// on policy grounds.
	ExtensionSettingError string `json:"extensionSettingError,omitempty"`
	// FeedAttributeReferenceError: The reasons for the feed attribute reference
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_REFERENCE_REMOVED_FEED" - A feed referenced by ID has been
	// removed.
	//   "INVALID_FEED_NAME" - There is no enabled feed with the given name.
	//   "INVALID_FEED_ATTRIBUTE_NAME" - There is no feed attribute in an enabled
	// feed with the given name.
	FeedAttributeReferenceError string `json:"feedAttributeReferenceError,omitempty"`
	// FeedError: The reasons for the feed error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ATTRIBUTE_NAMES_NOT_UNIQUE" - The names of the FeedAttributes must be
	// unique.
	//   "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES" - The attribute list must be
	// an exact copy of the existing list if the attribute ID's are present.
	//   "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED" - Cannot specify USER origin
	// for a system generated feed.
	//   "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED" - Cannot specify GOOGLE
	// origin for a non-system generated feed.
	//   "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED" - Cannot specify feed
	// attributes for system feed.
	//   "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE" - Cannot update
	// FeedAttributes on feed with origin GOOGLE.
	//   "FEED_REMOVED" - The given ID refers to a removed Feed. Removed Feeds are
	// immutable.
	//   "INVALID_ORIGIN_VALUE" - The origin of the feed is not valid for the
	// client.
	//   "FEED_ORIGIN_IS_NOT_USER" - A user can only create and modify feeds with
	// USER origin.
	//   "INVALID_AUTH_TOKEN_FOR_EMAIL" - Invalid auth token for the given email.
	//   "INVALID_EMAIL" - Invalid email specified.
	//   "DUPLICATE_FEED_NAME" - Feed name matches that of another active Feed.
	//   "INVALID_FEED_NAME" - Name of feed is not allowed.
	//   "MISSING_OAUTH_INFO" - Missing OAuthInfo.
	//   "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY" - New FeedAttributes must not
	// affect the unique key.
	//   "TOO_MANY_ATTRIBUTES" - Too many FeedAttributes for a Feed.
	//   "INVALID_BUSINESS_ACCOUNT" - The business account is not valid.
	//   "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT" - Business account
	// cannot access Business Profile.
	//   "INVALID_AFFILIATE_CHAIN_ID" - Invalid chain ID provided for affiliate
	// location feed.
	//   "DUPLICATE_SYSTEM_FEED" - There is already a feed with the given system
	// feed generation data.
	//   "GMB_ACCESS_ERROR" - An error occurred accessing Business Profile.
	//   "CANNOT_HAVE_LOCATION_AND_AFFILIATE_LOCATION_FEEDS" - A customer cannot
	// have both LOCATION and AFFILIATE_LOCATION feeds.
	//   "LEGACY_EXTENSION_TYPE_READ_ONLY" - Feed-based extension is read-only for
	// this extension type.
	FeedError string `json:"feedError,omitempty"`
	// FeedItemError: The reasons for the feed item error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING" - Cannot convert the feed
	// attribute value from string to its real type.
	//   "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM" - Cannot operate on removed feed
	// item.
	//   "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE" - Date time zone does not match
	// the account's time zone.
	//   "KEY_ATTRIBUTES_NOT_FOUND" - Feed item with the key attributes could not
	// be found.
	//   "INVALID_URL" - Url feed attribute value is not valid.
	//   "MISSING_KEY_ATTRIBUTES" - Some key attributes are missing.
	//   "KEY_ATTRIBUTES_NOT_UNIQUE" - Feed item has same key attributes as another
	// feed item.
	//   "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE" - Cannot modify key attributes on an
	// existing feed item.
	//   "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE" - The feed attribute value is
	// too large.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	FeedItemError string `json:"feedItemError,omitempty"`
	// FeedItemSetError: The reasons for the feed item set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ITEM_SET_REMOVED" - The given ID refers to a removed FeedItemSet.
	//   "CANNOT_CLEAR_DYNAMIC_FILTER" - The dynamic filter of a feed item set
	// cannot be cleared on UPDATE if it exists. A set is either static or dynamic
	// once added, and that cannot change.
	//   "CANNOT_CREATE_DYNAMIC_FILTER" - The dynamic filter of a feed item set
	// cannot be created on UPDATE if it does not exist. A set is either static or
	// dynamic once added, and that cannot change.
	//   "INVALID_FEED_TYPE" - FeedItemSets can only be made for location or
	// affiliate location feeds.
	//   "DUPLICATE_NAME" - FeedItemSets duplicate name. Name should be unique
	// within an account.
	//   "WRONG_DYNAMIC_FILTER_FOR_FEED_TYPE" - The feed type of the parent Feed is
	// not compatible with the type of dynamic filter being set. For example, you
	// can only set dynamic_location_set_filter for LOCATION feed item sets.
	//   "DYNAMIC_FILTER_INVALID_CHAIN_IDS" - Chain ID specified for
	// AffiliateLocationFeedData is invalid.
	FeedItemSetError string `json:"feedItemSetError,omitempty"`
	// FeedItemSetLinkError: The reasons for the feed item set link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FEED_ID_MISMATCH" - The feed IDs of the FeedItemSet and FeedItem do not
	// match. Only FeedItems in a given Feed can be linked to a FeedItemSet in that
	// Feed.
	//   "NO_MUTATE_ALLOWED_FOR_DYNAMIC_SET" - Cannot add or remove links to a
	// dynamic set.
	FeedItemSetLinkError string `json:"feedItemSetLinkError,omitempty"`
	// FeedItemTargetError: The reasons for the feed item target error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MUST_SET_TARGET_ONEOF_ON_CREATE" - On CREATE, the FeedItemTarget must
	// have a populated field in the oneof target.
	//   "FEED_ITEM_TARGET_ALREADY_EXISTS" - The specified feed item target already
	// exists, so it cannot be added.
	//   "FEED_ITEM_SCHEDULES_CANNOT_OVERLAP" - The schedules for a given feed item
	// cannot overlap.
	//   "TARGET_LIMIT_EXCEEDED_FOR_GIVEN_TYPE" - Too many targets of a given type
	// were added for a single feed item.
	//   "TOO_MANY_SCHEDULES_PER_DAY" - Too many AdSchedules are enabled for the
	// feed item for the given day.
	//   "CANNOT_HAVE_ENABLED_CAMPAIGN_AND_ENABLED_AD_GROUP_TARGETS" - A feed item
	// may either have an enabled campaign target or an enabled ad group target.
	//   "DUPLICATE_AD_SCHEDULE" - Duplicate ad schedules aren't allowed.
	//   "DUPLICATE_KEYWORD" - Duplicate keywords aren't allowed.
	FeedItemTargetError string `json:"feedItemTargetError,omitempty"`
	// FeedItemValidationError: The reasons for the feed item validation error
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STRING_TOO_SHORT" - String is too short.
	//   "STRING_TOO_LONG" - String is too long.
	//   "VALUE_NOT_SPECIFIED" - Value is not provided.
	//   "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT" - Phone number format is invalid
	// for region.
	//   "INVALID_PHONE_NUMBER" - String does not represent a phone number.
	//   "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY" - Phone number format is not
	// compatible with country code.
	//   "PREMIUM_RATE_NUMBER_NOT_ALLOWED" - Premium rate number is not allowed.
	//   "DISALLOWED_NUMBER_TYPE" - Phone number type is not allowed.
	//   "VALUE_OUT_OF_RANGE" - Specified value is outside of the valid range.
	//   "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Call tracking is not supported
	// in the selected country.
	//   "CUSTOMER_NOT_IN_ALLOWLIST_FOR_CALLTRACKING" - Customer is not on the
	// allow-list for call tracking.
	//   "INVALID_COUNTRY_CODE" - Country code is invalid.
	//   "INVALID_APP_ID" - The specified mobile app id is invalid.
	//   "MISSING_ATTRIBUTES_FOR_FIELDS" - Some required field attributes are
	// missing.
	//   "INVALID_TYPE_ID" - Invalid email button type for email extension.
	//   "INVALID_EMAIL_ADDRESS" - Email address is invalid.
	//   "INVALID_HTTPS_URL" - The HTTPS URL in email extension is invalid.
	//   "MISSING_DELIVERY_ADDRESS" - Delivery address is missing from email
	// extension.
	//   "START_DATE_AFTER_END_DATE" - FeedItem scheduling start date comes after
	// end date.
	//   "MISSING_FEED_ITEM_START_TIME" - FeedItem scheduling start time is
	// missing.
	//   "MISSING_FEED_ITEM_END_TIME" - FeedItem scheduling end time is missing.
	//   "MISSING_FEED_ITEM_ID" - Cannot compute system attributes on a FeedItem
	// that has no FeedItemId.
	//   "VANITY_PHONE_NUMBER_NOT_ALLOWED" - Call extension vanity phone numbers
	// are not supported.
	//   "INVALID_REVIEW_EXTENSION_SNIPPET" - Invalid review text.
	//   "INVALID_NUMBER_FORMAT" - Invalid format for numeric value in ad
	// parameter.
	//   "INVALID_DATE_FORMAT" - Invalid format for date value in ad parameter.
	//   "INVALID_PRICE_FORMAT" - Invalid format for price value in ad parameter.
	//   "UNKNOWN_PLACEHOLDER_FIELD" - Unrecognized type given for value in ad
	// parameter.
	//   "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE" - Enhanced sitelinks must
	// have both description lines specified.
	//   "REVIEW_EXTENSION_SOURCE_INELIGIBLE" - Review source is ineligible.
	//   "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain hyphens
	// or dashes.
	//   "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain
	// double quote characters.
	//   "QUOTES_IN_REVIEW_EXTENSION_SNIPPET" - Review text cannot contain quote
	// characters.
	//   "INVALID_FORM_ENCODED_PARAMS" - Parameters are encoded in the wrong
	// format.
	//   "INVALID_URL_PARAMETER_NAME" - URL parameter name must contain only
	// letters, numbers, underscores, and dashes.
	//   "NO_GEOCODING_RESULT" - Cannot find address location.
	//   "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT" - Review extension text has source
	// name.
	//   "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED" - Some phone numbers can be
	// shorter than usual. Some of these short numbers are carrier-specific, and we
	// disallow those in ad extensions because they will not be available to all
	// users.
	//   "INVALID_PLACEHOLDER_FIELD_ID" - Triggered when a request references a
	// placeholder field id that does not exist.
	//   "INVALID_URL_TAG" - URL contains invalid ValueTrack tags or format.
	//   "LIST_TOO_LONG" - Provided list exceeds acceptable size.
	//   "INVALID_ATTRIBUTES_COMBINATION" - Certain combinations of attributes
	// aren't allowed to be specified in the same feed item.
	//   "DUPLICATE_VALUES" - An attribute has the same value repeatedly.
	//   "INVALID_CALL_CONVERSION_ACTION_ID" - Advertisers can link a conversion
	// action with a phone number to indicate that sufficiently long calls
	// forwarded to that phone number should be counted as conversions of the
	// specified type. This is an error message indicating that the conversion
	// action specified is invalid (for example, the conversion action does not
	// exist within the appropriate Google Ads account, or it is a type of
	// conversion not appropriate to phone call conversions).
	//   "CANNOT_SET_WITHOUT_FINAL_URLS" - Tracking template requires final url to
	// be set.
	//   "APP_ID_DOESNT_EXIST_IN_APP_STORE" - An app id was provided that doesn't
	// exist in the given app store.
	//   "INVALID_FINAL_URL" - Invalid U2 final url.
	//   "INVALID_TRACKING_URL" - Invalid U2 tracking url.
	//   "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL" - Final URL should start from App
	// download URL.
	//   "LIST_TOO_SHORT" - List provided is too short.
	//   "INVALID_USER_ACTION" - User Action field has invalid value.
	//   "INVALID_TYPE_NAME" - Type field has invalid value.
	//   "INVALID_EVENT_CHANGE_STATUS" - Change status for event is invalid.
	//   "INVALID_SNIPPETS_HEADER" - The header of a structured snippets extension
	// is not one of the valid headers.
	//   "INVALID_ANDROID_APP_LINK" - Android app link is not formatted correctly
	//   "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY" - Phone number
	// incompatible with call tracking for country.
	//   "RESERVED_KEYWORD_OTHER" - The input is identical to a reserved keyword
	//   "DUPLICATE_OPTION_LABELS" - Each option label in the message extension
	// must be unique.
	//   "DUPLICATE_OPTION_PREFILLS" - Each option prefill in the message extension
	// must be unique.
	//   "UNEQUAL_LIST_LENGTHS" - In message extensions, the number of optional
	// labels and optional prefills must be the same.
	//   "INCONSISTENT_CURRENCY_CODES" - All currency codes in an ad extension must
	// be the same.
	//   "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS" - Headers in price extension are
	// not unique.
	//   "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION" - Header and description in
	// an item are the same.
	//   "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS" - Price extension has too few items.
	//   "UNSUPPORTED_VALUE" - The given value is not supported.
	//   "INVALID_FINAL_MOBILE_URL" - Invalid final mobile url.
	//   "INVALID_KEYWORDLESS_AD_RULE_LABEL" - The given string value of Label
	// contains invalid characters
	//   "VALUE_TRACK_PARAMETER_NOT_SUPPORTED" - The given URL contains value track
	// parameters.
	//   "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE" - The given value is not
	// supported in the selected language of an extension.
	//   "INVALID_IOS_APP_LINK" - The iOS app link is not formatted correctly.
	//   "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID" - iOS app link or iOS app store
	// id is missing.
	//   "PROMOTION_INVALID_TIME" - Promotion time is invalid.
	//   "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF" - Both the percent
	// off and money amount off fields are set.
	//   "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT" - Both the
	// promotion code and orders over amount fields are set.
	//   "TOO_MANY_DECIMAL_PLACES_SPECIFIED" - Too many decimal places are
	// specified.
	//   "AD_CUSTOMIZERS_NOT_ALLOWED" - Ad Customizers are present and not allowed.
	//   "INVALID_LANGUAGE_CODE" - Language code is not valid.
	//   "UNSUPPORTED_LANGUAGE" - Language is not supported.
	//   "IF_FUNCTION_NOT_ALLOWED" - IF Function is present and not allowed.
	//   "INVALID_FINAL_URL_SUFFIX" - Final url suffix is not valid.
	//   "INVALID_TAG_IN_FINAL_URL_SUFFIX" - Final url suffix contains an invalid
	// tag.
	//   "INVALID_FINAL_URL_SUFFIX_FORMAT" - Final url suffix is formatted
	// incorrectly.
	//   "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED" - Consent for call
	// recording, which is required for the use of call extensions, was not
	// provided by the advertiser. See
	// https://support.google.com/google-ads/answer/7412639.
	//   "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED" - Multiple message delivery options
	// are set.
	//   "NO_DELIVERY_OPTION_IS_SET" - No message delivery option is set.
	//   "INVALID_CONVERSION_REPORTING_STATE" - String value of conversion
	// reporting state field is not valid.
	//   "IMAGE_SIZE_WRONG" - Image size is not right.
	//   "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY" - Email delivery is not
	// supported in the country specified in the country code field.
	//   "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY" - Auto reply is not supported in the
	// country specified in the country code field.
	//   "INVALID_LATITUDE_VALUE" - Invalid value specified for latitude.
	//   "INVALID_LONGITUDE_VALUE" - Invalid value specified for longitude.
	//   "TOO_MANY_LABELS" - Too many label fields provided.
	//   "INVALID_IMAGE_URL" - Invalid image url.
	//   "MISSING_LATITUDE_VALUE" - Latitude value is missing.
	//   "MISSING_LONGITUDE_VALUE" - Longitude value is missing.
	//   "ADDRESS_NOT_FOUND" - Unable to find address.
	//   "ADDRESS_NOT_TARGETABLE" - Cannot target provided address.
	//   "INVALID_ASSET_ID" - The specified asset ID does not exist.
	//   "INCOMPATIBLE_ASSET_TYPE" - The asset type cannot be set for the field.
	//   "IMAGE_ERROR_UNEXPECTED_SIZE" - The image has unexpected size.
	//   "IMAGE_ERROR_ASPECT_RATIO_NOT_ALLOWED" - The image aspect ratio is not
	// allowed.
	//   "IMAGE_ERROR_FILE_TOO_LARGE" - The image file is too large.
	//   "IMAGE_ERROR_FORMAT_NOT_ALLOWED" - The image format is unsupported.
	//   "IMAGE_ERROR_CONSTRAINTS_VIOLATED" - Image violates constraints without
	// more details.
	//   "IMAGE_ERROR_SERVER_ERROR" - An error occurred when validating image.
	FeedItemValidationError string `json:"feedItemValidationError,omitempty"`
	// FeedMappingError: The reasons for the feed mapping error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_PLACEHOLDER_FIELD" - The given placeholder field does not exist.
	//   "INVALID_CRITERION_FIELD" - The given criterion field does not exist.
	//   "INVALID_PLACEHOLDER_TYPE" - The given placeholder type does not exist.
	//   "INVALID_CRITERION_TYPE" - The given criterion type does not exist.
	//   "NO_ATTRIBUTE_FIELD_MAPPINGS" - A feed mapping must contain at least one
	// attribute field mapping.
	//   "FEED_ATTRIBUTE_TYPE_MISMATCH" - The type of the feed attribute referenced
	// in the attribute field mapping must match the type of the placeholder field.
	//   "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED" - A feed mapping
	// for a system generated feed cannot be operated on.
	//   "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE" - Only one feed mapping for a
	// placeholder type is allowed per feed or customer (depending on the
	// placeholder type).
	//   "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE" - Only one feed mapping for a
	// criterion type is allowed per customer.
	//   "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD" - Only one feed attribute
	// mapping for a placeholder field is allowed (depending on the placeholder
	// type).
	//   "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD" - Only one feed attribute mapping
	// for a criterion field is allowed (depending on the criterion type).
	//   "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS" - This feed mapping may not contain
	// any explicit attribute field mappings.
	//   "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS" - Location placeholder feed
	// mappings can only be created for Places feeds.
	//   "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED" - Mappings for typed feeds cannot
	// be modified.
	//   "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED" - The given
	// placeholder type can only be mapped to system generated feeds.
	//   "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE" - The given
	// placeholder type cannot be mapped to a system generated feed with the given
	// type.
	//   "ATTRIBUTE_FIELD_MAPPING_MISSING_FIELD" - The "field" oneof was not set in
	// an AttributeFieldMapping.
	//   "LEGACY_FEED_TYPE_READ_ONLY" - Feed is read only.
	FeedMappingError string `json:"feedMappingError,omitempty"`
	// FieldError: The reasons for the field error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUIRED" - The required field was not present.
	//   "IMMUTABLE_FIELD" - The field attempted to be mutated is immutable.
	//   "INVALID_VALUE" - The field's value is invalid.
	//   "VALUE_MUST_BE_UNSET" - The field cannot be set.
	//   "REQUIRED_NONEMPTY_LIST" - The required repeated field was empty.
	//   "FIELD_CANNOT_BE_CLEARED" - The field cannot be cleared.
	//   "BLOCKED_VALUE" - The field's value is on a deny-list for this field.
	//   "FIELD_CAN_ONLY_BE_CLEARED" - The field's value cannot be modified, except
	// for clearing.
	FieldError string `json:"fieldError,omitempty"`
	// FieldMaskError: An error with a field mask
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FIELD_MASK_MISSING" - The field mask must be provided for update
	// operations.
	//   "FIELD_MASK_NOT_ALLOWED" - The field mask must be empty for create and
	// remove operations.
	//   "FIELD_NOT_FOUND" - The field mask contained an invalid field.
	//   "FIELD_HAS_SUBFIELDS" - The field mask updated a field with subfields.
	// Fields with subfields may be cleared, but not updated. To fix this, the
	// field mask should select all the subfields of the invalid field.
	FieldMaskError string `json:"fieldMaskError,omitempty"`
	// FinalUrlExpansionAssetViewError: The reasons for the final url expansion
	// asset view error
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MISSING_REQUIRED_FILTER" - At least one required filter has to be applied
	// in the query.
	//   "REQUIRES_ADVERTISING_CHANNEL_TYPE_FILTER" - Advertising channel type
	// filter is required.
	//   "INVALID_ADVERTISING_CHANNEL_TYPE_IN_FILTER" - Advertising channel type
	// filter has an invalid value.
	//   "CANNOT_SELECT_ASSET_GROUP" - Asset group cannot be selected in the query.
	//   "CANNOT_SELECT_AD_GROUP" - Ad group cannot be selected in the query.
	//   "REQUIRES_FILTER_BY_SINGLE_RESOURCE" - A selected field/resource requires
	// filtering by a single resource.
	//   "CANNOT_SELECT_BOTH_AD_GROUP_AND_ASSET_GROUP" - Both ad group and asset
	// group cannot be selected in the query.
	//   "CANNOT_FILTER_BY_BOTH_AD_GROUP_AND_ASSET_GROUP" - Both ad group and asset
	// group cannot be filtered in the query.
	FinalUrlExpansionAssetViewError string `json:"finalUrlExpansionAssetViewError,omitempty"`
	// FunctionError: The reasons for the function error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FUNCTION_FORMAT" - The format of the function is not recognized
	// as a supported function format.
	//   "DATA_TYPE_MISMATCH" - Operand data types do not match.
	//   "INVALID_CONJUNCTION_OPERANDS" - The operands cannot be used together in a
	// conjunction.
	//   "INVALID_NUMBER_OF_OPERANDS" - Invalid numer of Operands.
	//   "INVALID_OPERAND_TYPE" - Operand Type not supported.
	//   "INVALID_OPERATOR" - Operator not supported.
	//   "INVALID_REQUEST_CONTEXT_TYPE" - Request context type not supported.
	//   "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER" - The matching function is not
	// allowed for call placeholders
	//   "INVALID_FUNCTION_FOR_PLACEHOLDER" - The matching function is not allowed
	// for the specified placeholder
	//   "INVALID_OPERAND" - Invalid operand.
	//   "MISSING_CONSTANT_OPERAND_VALUE" - Missing value for the constant operand.
	//   "INVALID_CONSTANT_OPERAND_VALUE" - The value of the constant operand is
	// invalid.
	//   "INVALID_NESTING" - Invalid function nesting.
	//   "MULTIPLE_FEED_IDS_NOT_SUPPORTED" - The Feed ID was different from another
	// Feed ID in the same function.
	//   "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA" - The matching function is
	// invalid for use with a feed with a fixed schema.
	//   "INVALID_ATTRIBUTE_NAME" - Invalid attribute name.
	FunctionError string `json:"functionError,omitempty"`
	// FunctionParsingError: The reasons for the function parsing error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_MORE_INPUT" - Unexpected end of function string.
	//   "EXPECTED_CHARACTER" - Could not find an expected character.
	//   "UNEXPECTED_SEPARATOR" - Unexpected separator character.
	//   "UNMATCHED_LEFT_BRACKET" - Unmatched left bracket or parenthesis.
	//   "UNMATCHED_RIGHT_BRACKET" - Unmatched right bracket or parenthesis.
	//   "TOO_MANY_NESTED_FUNCTIONS" - Functions are nested too deeply.
	//   "MISSING_RIGHT_HAND_OPERAND" - Missing right-hand-side operand.
	//   "INVALID_OPERATOR_NAME" - Invalid operator/function name.
	//   "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER" - Feed attribute operand's
	// argument is not an integer.
	//   "NO_OPERANDS" - Missing function operands.
	//   "TOO_MANY_OPERANDS" - Function had too many operands.
	FunctionParsingError string `json:"functionParsingError,omitempty"`
	// GeoTargetConstantSuggestionError: The reasons for the geo target constant
	// suggestion error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "LOCATION_NAME_SIZE_LIMIT" - A location name cannot be greater than 300
	// characters.
	//   "LOCATION_NAME_LIMIT" - At most 25 location names can be specified in a
	// SuggestGeoTargetConstants method.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	//   "REQUEST_PARAMETERS_UNSET" - Geo target constant resource names or
	// location names must be provided in the request.
	GeoTargetConstantSuggestionError string `json:"geoTargetConstantSuggestionError,omitempty"`
	// GoalError: The reasons for the goal error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RETENTION_GOAL_ALREADY_EXISTS" - Retention goal already exists.
	//   "HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT" - When using customer
	// lifecycle optimization goal, if high lifetime value is present then value
	// should be present.
	//   "HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE" - When using customer
	// lifecycle optimization goal, high lifetime value should be greater than
	// value.
	//   "CUSTOMER_LIFECYCLE_OPTIMIZATION_ACCOUNT_TYPE_NOT_ALLOWED" - Only Google
	// Ads account can have customer lifecycle optimization goal.
	GoalError string `json:"goalError,omitempty"`
	// HeaderError: The reasons for the header error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_LOGIN_CUSTOMER_ID" - The login customer ID could not be
	// validated.
	//   "INVALID_LINKED_CUSTOMER_ID" - The linked customer ID could not be
	// validated.
	HeaderError string `json:"headerError,omitempty"`
	// IdError: The reasons for the id error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_FOUND" - ID not found
	IdError string `json:"idError,omitempty"`
	// IdentityVerificationError: The reasons for an identity verification error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NO_EFFECTIVE_BILLING" - No effective billing linked to this customer.
	//   "BILLING_NOT_ON_MONTHLY_INVOICING" - Customer is not on monthly invoicing.
	//   "VERIFICATION_ALREADY_STARTED" - Verification for this program type was
	// already started.
	IdentityVerificationError string `json:"identityVerificationError,omitempty"`
	// ImageError: The reasons for the image error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_IMAGE" - The image is not valid.
	//   "STORAGE_ERROR" - The image could not be stored.
	//   "BAD_REQUEST" - There was a problem with the request.
	//   "UNEXPECTED_SIZE" - The image is not of legal dimensions.
	//   "ANIMATED_NOT_ALLOWED" - Animated image are not permitted.
	//   "ANIMATION_TOO_LONG" - Animation is too long.
	//   "SERVER_ERROR" - There was an error on the server.
	//   "CMYK_JPEG_NOT_ALLOWED" - Image cannot be in CMYK color format.
	//   "FLASH_NOT_ALLOWED" - Flash images are not permitted.
	//   "FLASH_WITHOUT_CLICKTAG" - Flash images must support clickTag.
	//   "FLASH_ERROR_AFTER_FIXING_CLICK_TAG" - A flash error has occurred after
	// fixing the click tag.
	//   "ANIMATED_VISUAL_EFFECT" - Unacceptable visual effects.
	//   "FLASH_ERROR" - There was a problem with the flash image.
	//   "LAYOUT_PROBLEM" - Incorrect image layout.
	//   "PROBLEM_READING_IMAGE_FILE" - There was a problem reading the image file.
	//   "ERROR_STORING_IMAGE" - There was an error storing the image.
	//   "ASPECT_RATIO_NOT_ALLOWED" - The aspect ratio of the image is not allowed.
	//   "FLASH_HAS_NETWORK_OBJECTS" - Flash cannot have network objects.
	//   "FLASH_HAS_NETWORK_METHODS" - Flash cannot have network methods.
	//   "FLASH_HAS_URL" - Flash cannot have a Url.
	//   "FLASH_HAS_MOUSE_TRACKING" - Flash cannot use mouse tracking.
	//   "FLASH_HAS_RANDOM_NUM" - Flash cannot have a random number.
	//   "FLASH_SELF_TARGETS" - Ad click target cannot be '_self'.
	//   "FLASH_BAD_GETURL_TARGET" - GetUrl method should only use '_blank'.
	//   "FLASH_VERSION_NOT_SUPPORTED" - Flash version is not supported.
	//   "FLASH_WITHOUT_HARD_CODED_CLICK_URL" - Flash movies need to have hard
	// coded click URL or clickTAG
	//   "INVALID_FLASH_FILE" - Uploaded flash file is corrupted.
	//   "FAILED_TO_FIX_CLICK_TAG_IN_FLASH" - Uploaded flash file can be parsed,
	// but the click tag can not be fixed properly.
	//   "FLASH_ACCESSES_NETWORK_RESOURCES" - Flash movie accesses network
	// resources
	//   "FLASH_EXTERNAL_JS_CALL" - Flash movie attempts to call external
	// javascript code
	//   "FLASH_EXTERNAL_FS_CALL" - Flash movie attempts to call flash system
	// commands
	//   "FILE_TOO_LARGE" - Image file is too large.
	//   "IMAGE_DATA_TOO_LARGE" - Image data is too large.
	//   "IMAGE_PROCESSING_ERROR" - Error while processing the image.
	//   "IMAGE_TOO_SMALL" - Image is too small.
	//   "INVALID_INPUT" - Input was invalid.
	//   "PROBLEM_READING_FILE" - There was a problem reading the image file.
	//   "IMAGE_CONSTRAINTS_VIOLATED" - Image constraints are violated, but details
	// like ASPECT_RATIO_NOT_ALLOWED can't be provided. This happens when asset
	// spec contains more than one constraint and different criteria of different
	// constraints are violated.
	//   "FORMAT_NOT_ALLOWED" - Image format is not allowed.
	ImageError string `json:"imageError,omitempty"`
	// IncentiveError: The reasons for the incentive error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_INCENTIVE_ID" - The incentive ID is either invalid or not
	// supported for the given country.
	IncentiveError string `json:"incentiveError,omitempty"`
	// InternalError: An unexpected server-side error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INTERNAL_ERROR" - API encountered unexpected internal error.
	//   "ERROR_CODE_NOT_PUBLISHED" - The intended error code doesn't exist in
	// specified API version. It will be released in a future API version.
	//   "TRANSIENT_ERROR" - API encountered an unexpected transient error. The
	// user should retry their request in these cases.
	//   "DEADLINE_EXCEEDED" - The request took longer than a deadline.
	InternalError string `json:"internalError,omitempty"`
	// InvalidParameterError: The reasons for invalid parameter errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_CURRENCY_CODE" - The specified currency code is invalid.
	InvalidParameterError string `json:"invalidParameterError,omitempty"`
	// InvoiceError: The reasons for the invoice error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "YEAR_MONTH_TOO_OLD" - Cannot request invoices issued before 2019-01-01.
	//   "NOT_INVOICED_CUSTOMER" - Cannot request invoices for customer who doesn't
	// receive invoices.
	//   "BILLING_SETUP_NOT_APPROVED" - Cannot request invoices for a non approved
	// billing setup.
	//   "BILLING_SETUP_NOT_ON_MONTHLY_INVOICING" - Cannot request invoices for a
	// billing setup that is not on monthly invoicing.
	//   "NON_SERVING_CUSTOMER" - Cannot request invoices for a non serving
	// customer.
	InvoiceError string `json:"invoiceError,omitempty"`
	// KeywordPlanAdGroupError: The reason for keyword plan ad group error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_NAME" - The keyword plan ad group name is missing, empty, longer
	// than allowed limit or contains invalid chars.
	//   "DUPLICATE_NAME" - The keyword plan ad group name is duplicate to an
	// existing keyword plan AdGroup name or other keyword plan AdGroup name in the
	// request.
	KeywordPlanAdGroupError string `json:"keywordPlanAdGroupError,omitempty"`
	// KeywordPlanAdGroupKeywordError: The reason for keyword plan ad group keyword
	// error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_KEYWORD_MATCH_TYPE" - A keyword or negative keyword has invalid
	// match type.
	//   "DUPLICATE_KEYWORD" - A keyword or negative keyword with same text and
	// match type already exists.
	//   "KEYWORD_TEXT_TOO_LONG" - Keyword or negative keyword text exceeds the
	// allowed limit.
	//   "KEYWORD_HAS_INVALID_CHARS" - Keyword or negative keyword text has invalid
	// characters or symbols.
	//   "KEYWORD_HAS_TOO_MANY_WORDS" - Keyword or negative keyword text has too
	// many words.
	//   "INVALID_KEYWORD_TEXT" - Keyword or negative keyword has invalid text.
	//   "NEGATIVE_KEYWORD_HAS_CPC_BID" - Cpc Bid set for negative keyword.
	//   "NEW_BMM_KEYWORDS_NOT_ALLOWED" - New broad match modifier (BMM)
	// KpAdGroupKeywords are not allowed.
	KeywordPlanAdGroupKeywordError string `json:"keywordPlanAdGroupKeywordError,omitempty"`
	// KeywordPlanCampaignError: The reason for keyword plan campaign error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_NAME" - A keyword plan campaign name is missing, empty, longer
	// than allowed limit or contains invalid chars.
	//   "INVALID_LANGUAGES" - A keyword plan campaign contains one or more
	// untargetable languages.
	//   "INVALID_GEOS" - A keyword plan campaign contains one or more invalid geo
	// targets.
	//   "DUPLICATE_NAME" - The keyword plan campaign name is duplicate to an
	// existing keyword plan campaign name or other keyword plan campaign name in
	// the request.
	//   "MAX_GEOS_EXCEEDED" - The number of geo targets in the keyword plan
	// campaign exceeds limits.
	//   "MAX_LANGUAGES_EXCEEDED" - The number of languages in the keyword plan
	// campaign exceeds limits.
	KeywordPlanCampaignError string `json:"keywordPlanCampaignError,omitempty"`
	// KeywordPlanCampaignKeywordError: The reason for keyword plan campaign
	// keyword error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CAMPAIGN_KEYWORD_IS_POSITIVE" - Keyword plan campaign keyword is
	// positive.
	KeywordPlanCampaignKeywordError string `json:"keywordPlanCampaignKeywordError,omitempty"`
	// KeywordPlanError: The reason for keyword plan error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BID_MULTIPLIER_OUT_OF_RANGE" - The plan's bid multiplier value is outside
	// the valid range.
	//   "BID_TOO_HIGH" - The plan's bid value is too high.
	//   "BID_TOO_LOW" - The plan's bid value is too low.
	//   "BID_TOO_MANY_FRACTIONAL_DIGITS" - The plan's cpc bid is not a multiple of
	// the minimum billable unit.
	//   "DAILY_BUDGET_TOO_LOW" - The plan's daily budget value is too low.
	//   "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS" - The plan's daily budget is not
	// a multiple of the minimum billable unit.
	//   "INVALID_VALUE" - The input has an invalid value.
	//   "KEYWORD_PLAN_HAS_NO_KEYWORDS" - The plan has no keyword.
	//   "KEYWORD_PLAN_NOT_ENABLED" - The plan is not enabled and API cannot
	// provide mutation, forecast or stats.
	//   "KEYWORD_PLAN_NOT_FOUND" - The requested plan cannot be found for
	// providing forecast or stats.
	//   "MISSING_BID" - The plan is missing a cpc bid.
	//   "MISSING_FORECAST_PERIOD" - The plan is missing required forecast_period
	// field.
	//   "INVALID_FORECAST_DATE_RANGE" - The plan's forecast_period has invalid
	// forecast date range.
	//   "INVALID_NAME" - The plan's name is invalid.
	KeywordPlanError string `json:"keywordPlanError,omitempty"`
	// KeywordPlanIdeaError: The reason for keyword idea error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "URL_CRAWL_ERROR" - Error when crawling the input URL.
	//   "INVALID_VALUE" - The input has an invalid value.
	KeywordPlanIdeaError string `json:"keywordPlanIdeaError,omitempty"`
	// LabelError: The reason for the label error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_APPLY_INACTIVE_LABEL" - An inactive label cannot be applied.
	//   "CANNOT_APPLY_LABEL_TO_DISABLED_AD_GROUP_CRITERION" - A label cannot be
	// applied to a disabled ad group criterion.
	//   "CANNOT_APPLY_LABEL_TO_NEGATIVE_AD_GROUP_CRITERION" - A label cannot be
	// applied to a negative ad group criterion.
	//   "EXCEEDED_LABEL_LIMIT_PER_TYPE" - Cannot apply more than 50 labels per
	// resource.
	//   "INVALID_RESOURCE_FOR_MANAGER_LABEL" - Labels from a manager account
	// cannot be applied to campaign, ad group, ad group ad, or ad group criterion
	// resources.
	//   "DUPLICATE_NAME" - Label names must be unique.
	//   "INVALID_LABEL_NAME" - Label names cannot be empty.
	//   "CANNOT_ATTACH_LABEL_TO_DRAFT" - Labels cannot be applied to a draft.
	//   "CANNOT_ATTACH_NON_MANAGER_LABEL_TO_CUSTOMER" - Labels not from a manager
	// account cannot be applied to the customer resource.
	LabelError string `json:"labelError,omitempty"`
	// LanguageCodeError: The reasons for the language code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "LANGUAGE_CODE_NOT_FOUND" - The input language code is not recognized.
	//   "INVALID_LANGUAGE_CODE" - The language code is not supported.
	LanguageCodeError string `json:"languageCodeError,omitempty"`
	// ListOperationError: An error with a list operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUIRED_FIELD_MISSING" - Field required in value is missing.
	//   "DUPLICATE_VALUES" - Duplicate or identical value is sent in multiple list
	// operations.
	ListOperationError string `json:"listOperationError,omitempty"`
	// ManagerLinkError: The reasons for the manager link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACCOUNTS_NOT_COMPATIBLE_FOR_LINKING" - The manager and client have
	// incompatible account types.
	//   "TOO_MANY_MANAGERS" - Client is already linked to too many managers.
	//   "TOO_MANY_INVITES" - Manager has too many pending invitations.
	//   "ALREADY_INVITED_BY_THIS_MANAGER" - Client is already invited by this
	// manager.
	//   "ALREADY_MANAGED_BY_THIS_MANAGER" - The client is already managed by this
	// manager.
	//   "ALREADY_MANAGED_IN_HIERARCHY" - Client is already managed in hierarchy.
	//   "DUPLICATE_CHILD_FOUND" - Manager and sub-manager to be linked have
	// duplicate client.
	//   "CLIENT_HAS_NO_ADMIN_USER" - Client has no active user that can access the
	// client account.
	//   "MAX_DEPTH_EXCEEDED" - Adding this link would exceed the maximum hierarchy
	// depth.
	//   "CYCLE_NOT_ALLOWED" - Adding this link will create a cycle.
	//   "TOO_MANY_ACCOUNTS" - Manager account has the maximum number of linked
	// clients.
	//   "TOO_MANY_ACCOUNTS_AT_MANAGER" - Parent manager account has the maximum
	// number of linked clients.
	//   "NON_OWNER_USER_CANNOT_MODIFY_LINK" - The account is not authorized owner.
	//   "SUSPENDED_ACCOUNT_CANNOT_ADD_CLIENTS" - Your manager account is
	// suspended, and you are no longer allowed to link to clients.
	//   "CLIENT_OUTSIDE_TREE" - You are not allowed to move a client to a manager
	// that is not under your current hierarchy.
	//   "INVALID_STATUS_CHANGE" - The changed status for mutate link is invalid.
	//   "INVALID_CHANGE" - The change for mutate link is invalid.
	//   "CUSTOMER_CANNOT_MANAGE_SELF" - You are not allowed to link a manager
	// account to itself.
	//   "CREATING_ENABLED_LINK_NOT_ALLOWED" - The link was created with status
	// ACTIVE and not PENDING.
	ManagerLinkError string `json:"managerLinkError,omitempty"`
	// MediaBundleError: The reasons for the media bundle error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BAD_REQUEST" - There was a problem with the request.
	//   "DOUBLECLICK_BUNDLE_NOT_ALLOWED" - HTML5 ads using DoubleClick Studio
	// created ZIP files are not supported.
	//   "EXTERNAL_URL_NOT_ALLOWED" - Cannot reference URL external to the media
	// bundle.
	//   "FILE_TOO_LARGE" - Media bundle file is too large.
	//   "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED" - ZIP file from Google Web
	// Designer is not published.
	//   "INVALID_INPUT" - Input was invalid.
	//   "INVALID_MEDIA_BUNDLE" - There was a problem with the media bundle.
	//   "INVALID_MEDIA_BUNDLE_ENTRY" - There was a problem with one or more of the
	// media bundle entries.
	//   "INVALID_MIME_TYPE" - The media bundle contains a file with an unknown
	// mime type
	//   "INVALID_PATH" - The media bundle contain an invalid asset path.
	//   "INVALID_URL_REFERENCE" - HTML5 ad is trying to reference an asset not in
	// .ZIP file
	//   "MEDIA_DATA_TOO_LARGE" - Media data is too large.
	//   "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY" - The media bundle contains no
	// primary entry.
	//   "SERVER_ERROR" - There was an error on the server.
	//   "STORAGE_ERROR" - The image could not be stored.
	//   "SWIFFY_BUNDLE_NOT_ALLOWED" - Media bundle created with the Swiffy tool is
	// not allowed.
	//   "TOO_MANY_FILES" - The media bundle contains too many files.
	//   "UNEXPECTED_SIZE" - The media bundle is not of legal dimensions.
	//   "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT" - Google Web Designer not
	// created for "Google Ads" environment.
	//   "UNSUPPORTED_HTML5_FEATURE" - Unsupported HTML5 feature in HTML5 asset.
	//   "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT" - URL in HTML5 entry is not ssl
	// compliant.
	//   "CUSTOM_EXIT_NOT_ALLOWED" - Custom exits not allowed in HTML5 entry.
	MediaBundleError string `json:"mediaBundleError,omitempty"`
	// MediaFileError: The reasons for the media file error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_CREATE_STANDARD_ICON" - Cannot create a standard icon type.
	//   "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES" - May only select Standard
	// Icons alone.
	//   "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA" - Image contains both a media file
	// ID and data.
	//   "DUPLICATE_MEDIA" - A media file with given type and reference ID already
	// exists.
	//   "EMPTY_FIELD" - A required field was not specified or is an empty string.
	//   "RESOURCE_REFERENCED_IN_MULTIPLE_OPS" - A media file may only be modified
	// once per call.
	//   "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE" - Field is not supported for the
	// media sub type.
	//   "INVALID_MEDIA_FILE_ID" - The media file ID is invalid.
	//   "INVALID_MEDIA_SUB_TYPE" - The media subtype is invalid.
	//   "INVALID_MEDIA_FILE_TYPE" - The media file type is invalid.
	//   "INVALID_MIME_TYPE" - The mimetype is invalid.
	//   "INVALID_REFERENCE_ID" - The media reference ID is invalid.
	//   "INVALID_YOU_TUBE_ID" - The YouTube video ID is invalid.
	//   "MEDIA_FILE_FAILED_TRANSCODING" - Media file has failed transcoding
	//   "MEDIA_NOT_TRANSCODED" - Media file has not been transcoded.
	//   "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE" - The media type does not
	// match the actual media file's type.
	//   "NO_FIELDS_SPECIFIED" - None of the fields have been specified.
	//   "NULL_REFERENCE_ID_AND_MEDIA_ID" - One of reference ID or media file ID
	// must be specified.
	//   "TOO_LONG" - The string has too many characters.
	//   "UNSUPPORTED_TYPE" - The specified type is not supported.
	//   "YOU_TUBE_SERVICE_UNAVAILABLE" - YouTube is unavailable for requesting
	// video data.
	//   "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION" - The YouTube video has a non
	// positive duration.
	//   "YOU_TUBE_VIDEO_NOT_FOUND" - The YouTube video ID is syntactically valid
	// but the video was not found.
	MediaFileError string `json:"mediaFileError,omitempty"`
	// MediaUploadError: The reasons for media uploading errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FILE_TOO_BIG" - The uploaded file is too big.
	//   "UNPARSEABLE_IMAGE" - Image data is unparseable.
	//   "ANIMATED_IMAGE_NOT_ALLOWED" - Animated images are not allowed.
	//   "FORMAT_NOT_ALLOWED" - The image or media bundle format is not allowed.
	//   "EXTERNAL_URL_NOT_ALLOWED" - Cannot reference URL external to the media
	// bundle.
	//   "INVALID_URL_REFERENCE" - HTML5 ad is trying to reference an asset not in
	// .ZIP file.
	//   "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY" - The media bundle contains no
	// primary entry.
	//   "ANIMATED_VISUAL_EFFECT" - Animation has disallowed visual effects.
	//   "ANIMATION_TOO_LONG" - Animation longer than the allowed 30 second limit.
	//   "ASPECT_RATIO_NOT_ALLOWED" - The aspect ratio of the image does not match
	// the expected aspect ratios provided in the asset spec.
	//   "AUDIO_NOT_ALLOWED_IN_MEDIA_BUNDLE" - Audio files are not allowed in
	// bundle.
	//   "CMYK_JPEG_NOT_ALLOWED" - CMYK jpegs are not supported.
	//   "FLASH_NOT_ALLOWED" - Flash movies are not allowed.
	//   "FRAME_RATE_TOO_HIGH" - The frame rate of the video is higher than the
	// allowed 5fps.
	//   "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED" - ZIP file from Google Web
	// Designer is not published.
	//   "IMAGE_CONSTRAINTS_VIOLATED" - Image constraints are violated, but more
	// details (like DIMENSIONS_NOT_ALLOWED or ASPECT_RATIO_NOT_ALLOWED) can not be
	// provided. This happens when asset spec contains more than one constraint and
	// criteria of different constraints are violated.
	//   "INVALID_MEDIA_BUNDLE" - Media bundle data is unrecognizable.
	//   "INVALID_MEDIA_BUNDLE_ENTRY" - There was a problem with one or more of the
	// media bundle entries.
	//   "INVALID_MIME_TYPE" - The asset has an invalid mime type.
	//   "INVALID_PATH" - The media bundle contains an invalid asset path.
	//   "LAYOUT_PROBLEM" - Image has layout problem.
	//   "MALFORMED_URL" - An asset had a URL reference that is malformed per RFC
	// 1738 convention.
	//   "MEDIA_BUNDLE_NOT_ALLOWED" - The uploaded media bundle format is not
	// allowed.
	//   "MEDIA_BUNDLE_NOT_COMPATIBLE_TO_PRODUCT_TYPE" - The media bundle is not
	// compatible with the asset spec product type. (For example, Gmail, dynamic
	// remarketing, etc.)
	//   "MEDIA_BUNDLE_REJECTED_BY_MULTIPLE_ASSET_SPECS" - A bundle being uploaded
	// that is incompatible with multiple assets for different reasons.
	//   "TOO_MANY_FILES_IN_MEDIA_BUNDLE" - The media bundle contains too many
	// files.
	//   "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT" - Google Web Designer not
	// created for "Google Ads" environment.
	//   "UNSUPPORTED_HTML5_FEATURE" - Unsupported HTML5 feature in HTML5 asset.
	//   "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT" - URL in HTML5 entry is not SSL
	// compliant.
	//   "VIDEO_FILE_NAME_TOO_LONG" - Video file name is longer than the 50 allowed
	// characters.
	//   "VIDEO_MULTIPLE_FILES_WITH_SAME_NAME" - Multiple videos with same name in
	// a bundle.
	//   "VIDEO_NOT_ALLOWED_IN_MEDIA_BUNDLE" - Videos are not allowed in media
	// bundle.
	//   "CANNOT_UPLOAD_MEDIA_TYPE_THROUGH_API" - This type of media cannot be
	// uploaded through the Google Ads API.
	//   "DIMENSIONS_NOT_ALLOWED" - The dimensions of the image are not allowed.
	MediaUploadError string `json:"mediaUploadError,omitempty"`
	// MerchantCenterError: Container for enum describing possible merchant center
	// errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MERCHANT_ID_CANNOT_BE_ACCESSED" - Merchant ID is either not found or not
	// linked to the Google Ads customer.
	//   "CUSTOMER_NOT_ALLOWED_FOR_SHOPPING_PERFORMANCE_MAX" - Customer not
	// allowlisted for Shopping in Performance Max Campaign.
	MerchantCenterError string `json:"merchantCenterError,omitempty"`
	// MultiplierError: The reasons for the multiplier error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MULTIPLIER_TOO_HIGH" - Multiplier value is too high
	//   "MULTIPLIER_TOO_LOW" - Multiplier value is too low
	//   "TOO_MANY_FRACTIONAL_DIGITS" - Too many fractional digits
	//   "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY" - A multiplier cannot be set
	// for this bidding strategy
	//   "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING" - A multiplier cannot be
	// set when there is no base bid (for example, content max cpc)
	//   "NO_MULTIPLIER_SPECIFIED" - A bid multiplier must be specified
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET" - Multiplier causes bid to
	// exceed daily budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET" - Multiplier causes bid
	// to exceed monthly budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET" - Multiplier causes bid to
	// exceed custom budget
	//   "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID" - Multiplier causes bid
	// to exceed maximum allowed bid
	//   "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER" - Multiplier causes bid to
	// become less than the minimum bid allowed
	//   "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH" - Multiplier type (cpc
	// versus cpm) needs to match campaign's bidding strategy
	MultiplierError string `json:"multiplierError,omitempty"`
	// MutateError: An error with a mutate
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NOT_FOUND" - Requested resource was not found.
	//   "ID_EXISTS_IN_MULTIPLE_MUTATES" - Cannot mutate the same resource twice in
	// one request.
	//   "INCONSISTENT_FIELD_VALUES" - The field's contents don't match another
	// field that represents the same data.
	//   "MUTATE_NOT_ALLOWED" - Mutates are not allowed for the requested resource.
	//   "RESOURCE_NOT_IN_GOOGLE_ADS" - The resource isn't in Google Ads. It
	// belongs to another ads system.
	//   "RESOURCE_ALREADY_EXISTS" - The resource being created already exists.
	//   "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY" - This resource cannot be used
	// with "validate_only".
	//   "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE" - This operation cannot be
	// used with "partial_failure".
	//   "RESOURCE_READ_ONLY" - Attempt to write to read-only fields.
	//   "EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED" - Mutates are generally
	// not allowed if the customer contains non-exempt campaigns without the EU
	// political advertising declaration.
	MutateError string `json:"mutateError,omitempty"`
	// NewResourceCreationError: The reasons for the new resource creation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CANNOT_SET_ID_FOR_CREATE" - Do not set the id field while creating new
	// resources.
	//   "DUPLICATE_TEMP_IDS" - Creating more than one resource with the same temp
	// ID is not allowed.
	//   "TEMP_ID_RESOURCE_HAD_ERRORS" - Parent resource with specified temp ID
	// failed validation, so no validation will be done for this child resource.
	NewResourceCreationError string `json:"newResourceCreationError,omitempty"`
	// NotAllowlistedError: The reasons for the not allowlisted error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE" - Customer is not allowlisted
	// for accessing this feature.
	NotAllowlistedError string `json:"notAllowlistedError,omitempty"`
	// NotEmptyError: The reasons for the not empty error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EMPTY_LIST" - Empty list.
	NotEmptyError string `json:"notEmptyError,omitempty"`
	// NullError: The reasons for the null error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NULL_CONTENT" - Specified list/container must not contain any null
	// elements
	NullError string `json:"nullError,omitempty"`
	// OfflineUserDataJobError: The reasons for the offline user data job error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_USER_LIST_ID" - The user list ID provided for the job is invalid.
	//   "INVALID_USER_LIST_TYPE" - Type of the user list is not applicable for the
	// job.
	//   "NOT_ON_ALLOWLIST_FOR_USER_ID" - Customer is not allowisted for using user
	// ID in upload data.
	//   "INCOMPATIBLE_UPLOAD_KEY_TYPE" - Upload data is not compatible with the
	// upload key type of the associated user list.
	//   "MISSING_USER_IDENTIFIER" - The user identifier is missing valid data.
	//   "INVALID_MOBILE_ID_FORMAT" - The mobile ID is malformed.
	//   "TOO_MANY_USER_IDENTIFIERS" - Maximum number of user identifiers allowed
	// per request is 100,000 and per operation is 20.
	//   "NOT_ON_ALLOWLIST_FOR_STORE_SALES_DIRECT" - Customer is not on the
	// allow-list for store sales direct data.
	//   "NOT_ON_ALLOWLIST_FOR_UNIFIED_STORE_SALES" - Customer is not on the
	// allow-list for unified store sales data.
	//   "INVALID_PARTNER_ID" - The partner ID in store sales direct metadata is
	// invalid.
	//   "INVALID_ENCODING" - The data in user identifier should not be encoded.
	//   "INVALID_COUNTRY_CODE" - The country code is invalid.
	//   "INCOMPATIBLE_USER_IDENTIFIER" - Incompatible user identifier when using
	// third_party_user_id for store sales direct first party data or not using
	// third_party_user_id for store sales third party data.
	//   "FUTURE_TRANSACTION_TIME" - A transaction time in the future is not
	// allowed.
	//   "INVALID_CONVERSION_ACTION" - The conversion_action specified in
	// transaction_attributes is used to report conversions to a conversion action
	// configured in Google Ads. This error indicates there is no such conversion
	// action in the account.
	//   "MOBILE_ID_NOT_SUPPORTED" - Mobile ID is not supported for store sales
	// direct data.
	//   "INVALID_OPERATION_ORDER" - When a remove-all operation is provided, it
	// has to be the first operation of the operation list.
	//   "CONFLICTING_OPERATION" - Mixing creation and removal of offline data in
	// the same job is not allowed.
	//   "EXTERNAL_UPDATE_ID_ALREADY_EXISTS" - The external update ID already
	// exists.
	//   "JOB_ALREADY_STARTED" - Once the upload job is started, new operations
	// cannot be added.
	//   "REMOVE_NOT_SUPPORTED" - Remove operation is not allowed for store sales
	// direct updates.
	//   "REMOVE_ALL_NOT_SUPPORTED" - Remove-all is not supported for certain
	// offline user data job types.
	//   "INVALID_SHA256_FORMAT" - The SHA256 encoded value is malformed.
	//   "CUSTOM_KEY_DISABLED" - The custom key specified is not enabled for the
	// unified store sales upload.
	//   "CUSTOM_KEY_NOT_PREDEFINED" - The custom key specified is not predefined
	// through the Google Ads UI.
	//   "CUSTOM_KEY_NOT_SET" - The custom key specified is not set in the upload.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - The customer has not
	// accepted the customer data terms in the conversion settings page.
	//   "ATTRIBUTES_NOT_APPLICABLE_FOR_CUSTOMER_MATCH_USER_LIST" - User attributes
	// cannot be uploaded into a user list.
	//   "LIFETIME_VALUE_BUCKET_NOT_IN_RANGE" - Lifetime bucket value must be a
	// number from 0 to 10; 0 is only accepted for remove operations
	//   "INCOMPATIBLE_USER_IDENTIFIER_FOR_ATTRIBUTES" - Identifiers not supported
	// for Customer Match attributes. User attributes can only be provided with
	// contact info (email, phone, address) user identifiers.
	//   "FUTURE_TIME_NOT_ALLOWED" - A time in the future is not allowed.
	//   "LAST_PURCHASE_TIME_LESS_THAN_ACQUISITION_TIME" - Last purchase date time
	// cannot be less than acquisition date time.
	//   "CUSTOMER_IDENTIFIER_NOT_ALLOWED" - Only emails are accepted as user
	// identifiers for shopping loyalty match. {-- api.dev/not-precedent: The
	// identifier is not limited to ids, but also include other user info eg. phone
	// numbers.}
	//   "INVALID_ITEM_ID" - Provided item ID is invalid.
	//   "FIRST_PURCHASE_TIME_GREATER_THAN_LAST_PURCHASE_TIME" - First purchase
	// date time cannot be greater than the last purchase date time.
	//   "INVALID_LIFECYCLE_STAGE" - Provided lifecycle stage is invalid.
	//   "INVALID_EVENT_VALUE" - The event value of the Customer Match user
	// attribute is invalid.
	//   "EVENT_ATTRIBUTE_ALL_FIELDS_ARE_REQUIRED" - All the fields are not present
	// in the EventAttribute of the Customer Match.
	//   "OPERATION_LEVEL_CONSENT_PROVIDED" - Consent was provided at the operation
	// level for an OfflineUserDataJobType that expects it at the job level. The
	// provided operation-level consent will be ignored.
	OfflineUserDataJobError string `json:"offlineUserDataJobError,omitempty"`
	// OperationAccessDeniedError: The reasons for the operation access denied
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACTION_NOT_PERMITTED" - Unauthorized invocation of a service's method
	// (get, mutate, etc.)
	//   "CREATE_OPERATION_NOT_PERMITTED" - Unauthorized CREATE operation in
	// invoking a service's mutate method.
	//   "REMOVE_OPERATION_NOT_PERMITTED" - Unauthorized REMOVE operation in
	// invoking a service's mutate method.
	//   "UPDATE_OPERATION_NOT_PERMITTED" - Unauthorized UPDATE operation in
	// invoking a service's mutate method.
	//   "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT" - A mutate action is not allowed
	// on this resource, from this client.
	//   "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE" - This operation is not
	// permitted on this campaign type
	//   "CREATE_AS_REMOVED_NOT_PERMITTED" - A CREATE operation may not set status
	// to REMOVED.
	//   "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE" - This operation is not
	// allowed because the resource is removed.
	//   "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE" - This operation is not
	// permitted on this ad group type.
	//   "MUTATE_NOT_PERMITTED_FOR_CUSTOMER" - The mutate is not allowed for this
	// customer.
	OperationAccessDeniedError string `json:"operationAccessDeniedError,omitempty"`
	// OperatorError: The reasons for the operator error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATOR_NOT_SUPPORTED" - Operator not supported.
	OperatorError string `json:"operatorError,omitempty"`
	// PartialFailureError: The reasons for the mutate job error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "PARTIAL_FAILURE_MODE_REQUIRED" - The partial failure field was false in
	// the request. This method requires this field be set to true.
	PartialFailureError string `json:"partialFailureError,omitempty"`
	// PaymentsAccountError: The reasons for errors in payments accounts service
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_SUPPORTED_FOR_MANAGER_CUSTOMER" - Manager customers are not supported
	// for payments account service.
	PaymentsAccountError string `json:"paymentsAccountError,omitempty"`
	// PolicyFindingError: The reasons for the policy finding error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "POLICY_FINDING" - The resource has been disapproved since the policy
	// summary includes policy topics of type PROHIBITED.
	//   "POLICY_TOPIC_NOT_FOUND" - The given policy topic does not exist.
	PolicyFindingError string `json:"policyFindingError,omitempty"`
	// PolicyValidationParameterError: The reasons for the policy validation
	// parameter error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "UNSUPPORTED_AD_TYPE_FOR_IGNORABLE_POLICY_TOPICS" - Ignorable policy
	// topics are not supported for the ad type.
	//   "UNSUPPORTED_AD_TYPE_FOR_EXEMPT_POLICY_VIOLATION_KEYS" - Exempt policy
	// violation keys are not supported for the ad type.
	//   "CANNOT_SET_BOTH_IGNORABLE_POLICY_TOPICS_AND_EXEMPT_POLICY_VIOLATION_KEYS"
	// - Cannot set ignorable policy topics and exempt policy violation keys in the
	// same policy violation parameter.
	PolicyValidationParameterError string `json:"policyValidationParameterError,omitempty"`
	// PolicyViolationError: The reasons for the policy violation error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "POLICY_ERROR" - A policy was violated. See PolicyViolationDetails for
	// more detail.
	PolicyViolationError string `json:"policyViolationError,omitempty"`
	// ProductLinkError: The reasons for the product link error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_OPERATION" - The requested operation is invalid. For example, you
	// are not allowed to remove a link from a partner account.
	//   "CREATION_NOT_PERMITTED" - The creation request is not permitted.
	//   "INVITATION_EXISTS" - A link cannot be created because a pending link
	// already exists.
	//   "LINK_EXISTS" - A link cannot be created because an active link already
	// exists.
	ProductLinkError string `json:"productLinkError,omitempty"`
	// ProductLinkInvitationError: The reasons for the product link invitation
	// error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in the version.
	//   "INVALID_STATUS" - The invitation status is invalid.
	//   "PERMISSION_DENIED" - The customer doesn't have the permission to perform
	// this action
	//   "NO_INVITATION_REQUIRED" - An invitation could not be created, since the
	// user already has admin access to the invited account. Use the
	// ProductLinkService to directly create an active link.
	//   "CUSTOMER_NOT_PERMITTED_TO_CREATE_INVITATION" - The customer is not
	// permitted to create the invitation.
	ProductLinkInvitationError string `json:"productLinkInvitationError,omitempty"`
	// QueryError: An error with the query
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "QUERY_ERROR" - Returned if all other query error reasons are not
	// applicable.
	//   "BAD_ENUM_CONSTANT" - A condition used in the query references an invalid
	// enum constant.
	//   "BAD_ESCAPE_SEQUENCE" - Query contains an invalid escape sequence.
	//   "BAD_FIELD_NAME" - Field name is invalid.
	//   "BAD_LIMIT_VALUE" - Limit value is invalid (for example, not a number)
	//   "BAD_NUMBER" - Encountered number can not be parsed.
	//   "BAD_OPERATOR" - Invalid operator encountered.
	//   "BAD_PARAMETER_NAME" - Parameter unknown or not supported.
	//   "BAD_PARAMETER_VALUE" - Parameter have invalid value.
	//   "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE" - Invalid resource type was specified
	// in the FROM clause.
	//   "BAD_SYMBOL" - Non-ASCII symbol encountered outside of strings.
	//   "BAD_VALUE" - Value is invalid.
	//   "DATE_RANGE_TOO_WIDE" - Date filters fail to restrict date to a range
	// smaller than 31 days. Applicable if the query is segmented by date.
	//   "DATE_RANGE_TOO_NARROW" - Filters on date/week/month/quarter have a start
	// date after end date.
	//   "EXPECTED_AND" - Expected AND between values with BETWEEN operator.
	//   "EXPECTED_BY" - Expecting ORDER BY to have BY.
	//   "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE" - There was no dimension field
	// selected.
	//   "EXPECTED_FILTERS_ON_DATE_RANGE" - Missing filters on date related fields.
	//   "EXPECTED_FROM" - Missing FROM clause.
	//   "EXPECTED_LIST" - The operator used in the conditions requires the value
	// to be a list.
	//   "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE" - Fields used in WHERE or
	// ORDER BY clauses are missing from the SELECT clause.
	//   "EXPECTED_SELECT" - SELECT is missing at the beginning of query.
	//   "EXPECTED_SINGLE_VALUE" - A list was passed as a value to a condition
	// whose operator expects a single value.
	//   "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR" - Missing one or both values with
	// BETWEEN operator.
	//   "INVALID_DATE_FORMAT" - Invalid date format. Expected 'YYYY-MM-DD'.
	//   "MISALIGNED_DATE_FOR_FILTER" - Misaligned date value for the filter. The
	// date should be the start of a week/month/quarter if the filtered field is
	// segments.week/segments.month/segments.quarter.
	//   "INVALID_STRING_VALUE" - Value passed was not a string when it should have
	// been. For example, it was a number or unquoted literal.
	//   "INVALID_VALUE_WITH_BETWEEN_OPERATOR" - A String value passed to the
	// BETWEEN operator does not parse as a date.
	//   "INVALID_VALUE_WITH_DURING_OPERATOR" - The value passed to the DURING
	// operator is not a Date range literal
	//   "INVALID_VALUE_WITH_LIKE_OPERATOR" - A value was passed to the LIKE
	// operator.
	//   "OPERATOR_FIELD_MISMATCH" - An operator was provided that is inapplicable
	// to the field being filtered.
	//   "PROHIBITED_EMPTY_LIST_IN_CONDITION" - A Condition was found with an empty
	// list.
	//   "PROHIBITED_ENUM_CONSTANT" - A condition used in the query references an
	// unsupported enum constant.
	//   "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE" - Fields that are not
	// allowed to be selected together were included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE" - A field that is not orderable was
	// included in the ORDER BY clause.
	//   "PROHIBITED_FIELD_IN_SELECT_CLAUSE" - A field that is not selectable was
	// included in the SELECT clause.
	//   "PROHIBITED_FIELD_IN_WHERE_CLAUSE" - A field that is not filterable was
	// included in the WHERE clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE" - Resource type specified in the
	// FROM clause is not supported by this service.
	//   "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE" - A field that comes from an
	// incompatible resource was included in the SELECT clause.
	//   "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE" - A field that comes from an
	// incompatible resource was included in the WHERE clause.
	//   "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A metric incompatible with
	// the main resource or other selected segmenting resources was included in the
	// SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE" - A segment incompatible
	// with the main resource or other selected segmenting resources was included
	// in the SELECT or WHERE clause.
	//   "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE" - A segment in
	// the SELECT clause is incompatible with a metric in the SELECT or WHERE
	// clause.
	//   "PROHIBITED_FIELD_OR_SEGMENT_WITH_METRIC" - A metric may not be selected
	// with one of the selected resource fields, or segmented by one of the
	// selected segment fields.
	//   "LIMIT_VALUE_TOO_LOW" - The value passed to the limit clause is too low.
	//   "PROHIBITED_NEWLINE_IN_STRING" - Query has a string containing a newline
	// character.
	//   "PROHIBITED_VALUE_COMBINATION_IN_LIST" - List contains values of different
	// types.
	//   "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR" - The values passed
	// to the BETWEEN operator are not of the same type.
	//   "STRING_NOT_TERMINATED" - Query contains unterminated string.
	//   "TOO_MANY_SEGMENTS" - Too many segments are specified in SELECT clause.
	//   "UNEXPECTED_END_OF_QUERY" - Query is incomplete and cannot be parsed.
	//   "UNEXPECTED_FROM_CLAUSE" - FROM clause cannot be specified in this query.
	//   "UNRECOGNIZED_FIELD" - Query contains one or more unrecognized fields.
	//   "UNEXPECTED_INPUT" - Query has an unexpected extra part.
	//   "REQUESTED_METRICS_FOR_MANAGER" - Metrics cannot be requested for a
	// manager account. To retrieve metrics, issue separate requests against each
	// client account under the manager account.
	//   "FILTER_HAS_TOO_MANY_VALUES" - The number of values (right-hand-side
	// operands) in a filter exceeds the limit.
	//   "REQUIRED_SEGMENT_FIELD_MISSING" - Required segment field is missing.
	QueryError string `json:"queryError,omitempty"`
	// QuotaError: An error with the amount of quota remaining.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_EXHAUSTED" - Too many requests.
	//   "ACCESS_PROHIBITED" - Access is prohibited.
	//   "RESOURCE_TEMPORARILY_EXHAUSTED" - Too many requests in a short amount of
	// time.
	//   "EXCESSIVE_SHORT_TERM_QUERY_RESOURCE_CONSUMPTION" - Too many expensive
	// requests from query pattern over a short amount of time.
	//   "EXCESSIVE_LONG_TERM_QUERY_RESOURCE_CONSUMPTION" - Too many expensive
	// requests from query pattern over an extended duration of time.
	//   "PAYMENTS_PROFILE_ACTIVATION_RATE_LIMIT_EXCEEDED" - To activate ad serving
	// in a customer account, it has to be linked with a payment profile (also
	// known as a Billing Customer Number, or BCN), which is then billed for the
	// costs incurred by that customer account. This error will be thrown if too
	// many customer accounts are activated in a short period of time for the same
	// payment profile. Once this rate limit is exceeded, the customer should wait
	// for a week before trying again, or contact Google Ads customer support to
	// reset the rate limits. See
	// https://support.google.com/google-ads/answer/6372658 to learn more about
	// this limit.
	QuotaError string `json:"quotaError,omitempty"`
	// RangeError: The reasons for the range error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_LOW" - Too low.
	//   "TOO_HIGH" - Too high.
	RangeError string `json:"rangeError,omitempty"`
	// ReachPlanError: The reasons for the reach plan error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "NOT_FORECASTABLE_MISSING_RATE" - Not forecastable due to missing rate
	// card data.
	//   "NOT_FORECASTABLE_NOT_ENOUGH_INVENTORY" - Not forecastable due to not
	// enough inventory.
	//   "NOT_FORECASTABLE_ACCOUNT_NOT_ENABLED" - Not forecastable due to account
	// not being enabled.
	ReachPlanError string `json:"reachPlanError,omitempty"`
	// RecommendationError: The reasons for error in applying a recommendation
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "BUDGET_AMOUNT_TOO_SMALL" - The specified budget amount is too low for
	// example, lower than minimum currency unit or lower than ad group minimum
	// cost-per-click.
	//   "BUDGET_AMOUNT_TOO_LARGE" - The specified budget amount is too large.
	//   "INVALID_BUDGET_AMOUNT" - The specified budget amount is not a valid
	// amount, for example, not a multiple of minimum currency unit.
	//   "POLICY_ERROR" - The specified keyword or ad violates ad policy.
	//   "INVALID_BID_AMOUNT" - The specified bid amount is not valid, for example,
	// too many fractional digits, or negative amount.
	//   "ADGROUP_KEYWORD_LIMIT" - The number of keywords in ad group have reached
	// the maximum allowed.
	//   "RECOMMENDATION_ALREADY_APPLIED" - The recommendation requested to apply
	// has already been applied.
	//   "RECOMMENDATION_INVALIDATED" - The recommendation requested to apply has
	// been invalidated.
	//   "TOO_MANY_OPERATIONS" - The number of operations in a single request
	// exceeds the maximum allowed.
	//   "NO_OPERATIONS" - There are no operations in the request.
	//   "DIFFERENT_TYPES_NOT_SUPPORTED" - Operations with multiple recommendation
	// types are not supported when partial failure mode is not enabled.
	//   "DUPLICATE_RESOURCE_NAME" - Request contains multiple operations with the
	// same resource_name.
	//   "RECOMMENDATION_ALREADY_DISMISSED" - The recommendation requested to
	// dismiss has already been dismissed.
	//   "INVALID_APPLY_REQUEST" - The recommendation apply request was malformed
	// and invalid.
	//   "RECOMMENDATION_TYPE_APPLY_NOT_SUPPORTED" - The type of recommendation
	// requested to apply is not supported.
	//   "INVALID_MULTIPLIER" - The target multiplier specified is invalid.
	//   "ADVERTISING_CHANNEL_TYPE_GENERATE_NOT_SUPPORTED" - The passed in
	// advertising_channel_type is not supported.
	//   "RECOMMENDATION_TYPE_GENERATE_NOT_SUPPORTED" - The passed in
	// recommendation_type is not supported.
	//   "RECOMMENDATION_TYPES_CANNOT_BE_EMPTY" - One or more recommendation_types
	// need to be passed into the generate recommendations request.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_INFO" - Bidding info
	// is required for the CAMPAIGN_BUDGET recommendation type.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_BIDDING_STRATEGY_TYPE" -
	// Bidding strategy type is required for the CAMPAIGN_BUDGET recommendation
	// type.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO" - Asset
	// group info is required for the campaign budget recommendation type.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_ASSET_GROUP_INFO_WITH_FINAL_URL
	// " - Asset group info with final url is required for the CAMPAIGN_BUDGET
	// recommendation type.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_COUNTRY_CODES_FOR_SEARCH_CHANNE
	// L" - Country codes are required for the CAMPAIGN_BUDGET recommendation type
	// for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_INVALID_COUNTRY_CODE_FOR_SEARCH_CHANNEL"
	//  - Country code is invalid for the CAMPAIGN_BUDGET recommendation type for
	// SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_LANGUAGE_CODES_FOR_SEARCH_CHANN
	// EL" - Language codes are required for the CAMPAIGN_BUDGET recommendation
	// type for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_EITHER_POSITIVE_OR_NEGATIVE_LOC
	// ATION_IDS_FOR_SEARCH_CHANNEL" - Either positive or negative location ids are
	// required for the CAMPAIGN_BUDGET recommendation type for SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_AD_GROUP_INFO_FOR_SEARCH_CHANNE
	// L" - Ad group info is required for the CAMPAIGN_BUDGET recommendation type
	// for SEARCH channel.
	//   "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_REQUIRES_KEYWORDS_FOR_SEARCH_CHANNEL"
	// - Keywords are required for the CAMPAIGN_BUDGET recommendation type for
	// SEARCH channel.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_LOCATION" - Location is required
	// for the CAMPAIGN_BUDGET recommendation type for bidding strategy type
	// TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_MICROS"
	// - Target impression share micros are required for the CAMPAIGN_BUDGET
	// recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_TARGET_IMPRESSION_SHARE_MICROS_BETWEEN_1
	// _AND_1000000" - Target impression share micros are required to be between 1
	// and 1000000 for the CAMPAIGN_BUDGET recommendation type for bidding strategy
	// type TARGET_IMPRESSION_SHARE.
	//
	// "CAMPAIGN_BUDGET_RECOMMENDATION_TYPE_WITH_CHANNEL_TYPE_SEARCH_AND_BIDDING_STR
	// ATEGY_TYPE_TARGET_IMPRESSION_SHARE_REQUIRES_TARGET_IMPRESSION_SHARE_INFO" -
	// Target impression share info is required for the CAMPAIGN_BUDGET
	// recommendation type for bidding strategy type TARGET_IMPRESSION_SHARE.
	//   "MERCHANT_CENTER_ACCOUNT_ID_NOT_SUPPORTED_ADVERTISING_CHANNEL_TYPE" -
	// Merchant Center Account ID is only supported for advertising_channel_type
	// PERFORMANCE_MAX.
	RecommendationError string `json:"recommendationError,omitempty"`
	// RecommendationSubscriptionError: The reasons for the recommendation
	// subscription error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	RecommendationSubscriptionError string `json:"recommendationSubscriptionError,omitempty"`
	// RegionCodeError: The reasons for the region code error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_REGION_CODE" - Invalid region code.
	RegionCodeError string `json:"regionCodeError,omitempty"`
	// RequestError: An error caused by the request
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NAME_MISSING" - Resource name is required for this request.
	//   "RESOURCE_NAME_MALFORMED" - Resource name provided is malformed.
	//   "BAD_RESOURCE_ID" - Resource name provided is malformed.
	//   "INVALID_CUSTOMER_ID" - Customer ID is invalid.
	//   "OPERATION_REQUIRED" - Mutate operation should have either create, update,
	// or remove specified.
	//   "RESOURCE_NOT_FOUND" - Requested resource not found.
	//   "INVALID_PAGE_TOKEN" - Next page token specified in user request is
	// invalid.
	//   "EXPIRED_PAGE_TOKEN" - Next page token specified in user request has
	// expired.
	//   "INVALID_PAGE_SIZE" - Page size specified in user request is invalid.
	//   "PAGE_SIZE_NOT_SUPPORTED" - Setting the page size is not supported, and
	// will be unavailable in a future version.
	//   "REQUIRED_FIELD_MISSING" - Required field is missing.
	//   "IMMUTABLE_FIELD" - The field cannot be modified because it's immutable.
	// It's also possible that the field can be modified using 'create' operation
	// but not 'update'.
	//   "TOO_MANY_MUTATE_OPERATIONS" - Received too many entries in request.
	//   "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT" - Request cannot be executed by a
	// manager account.
	//   "CANNOT_MODIFY_FOREIGN_FIELD" - Mutate request was attempting to modify a
	// readonly field. For instance, Budget fields can be requested for Ad Group,
	// but are read-only for adGroups:mutate.
	//   "INVALID_ENUM_VALUE" - Enum value is not permitted.
	//   "DEVELOPER_TOKEN_PARAMETER_MISSING" - The developer-token parameter is
	// required for all requests.
	//   "LOGIN_CUSTOMER_ID_PARAMETER_MISSING" - The login-customer-id parameter is
	// required for this request.
	//   "VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN" - page_token is set in the validate
	// only request
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS" -
	// return_summary_row cannot be enabled if request did not select any metrics
	// field.
	//   "CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS" -
	// return_summary_row should not be enabled for validate only requests.
	//   "INCONSISTENT_RETURN_SUMMARY_ROW_VALUE" - return_summary_row parameter
	// value should be the same between requests with page_token field set and
	// their original request.
	//   "TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED" - The total results count
	// cannot be returned if it was not requested in the original request.
	//   "RPC_DEADLINE_TOO_SHORT" - Deadline specified by the client was too short.
	//   "UNSUPPORTED_VERSION" - This API version has been sunset and is no longer
	// supported.
	//   "CLOUD_PROJECT_NOT_FOUND" - The Google Cloud project in the request was
	// not found.
	RequestError string `json:"requestError,omitempty"`
	// ResourceAccessDeniedError: The reasons for the resource access denied error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "WRITE_ACCESS_DENIED" - User did not have write access.
	ResourceAccessDeniedError string `json:"resourceAccessDeniedError,omitempty"`
	// ResourceCountLimitExceededError: The reasons for the resource count limit
	// exceeded error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ACCOUNT_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources for the Google Ads account. The exact resource type and
	// limit being checked can be inferred from accountLimitType.
	//   "CAMPAIGN_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources in a Campaign. The exact resource type and limit being
	// checked can be inferred from accountLimitType, and the numeric id of the
	// Campaign involved is given by enclosingId.
	//   "ADGROUP_LIMIT" - Indicates that this request would exceed the number of
	// allowed resources in an ad group. The exact resource type and limit being
	// checked can be inferred from accountLimitType, and the numeric id of the ad
	// group involved is given by enclosingId.
	//   "AD_GROUP_AD_LIMIT" - Indicates that this request would exceed the number
	// of allowed resources in an ad group ad. The exact resource type and limit
	// being checked can be inferred from accountLimitType, and the enclosingId
	// contains the ad group id followed by the ad id, separated by a single comma
	// (,).
	//   "AD_GROUP_CRITERION_LIMIT" - Indicates that this request would exceed the
	// number of allowed resources in an ad group criterion. The exact resource
	// type and limit being checked can be inferred from accountLimitType, and the
	// enclosingId contains the ad group id followed by the criterion id, separated
	// by a single comma (,).
	//   "SHARED_SET_LIMIT" - Indicates that this request would exceed the number
	// of allowed resources in this shared set. The exact resource type and limit
	// being checked can be inferred from accountLimitType, and the numeric id of
	// the shared set involved is given by enclosingId.
	//   "MATCHING_FUNCTION_LIMIT" - Exceeds a limit related to a matching
	// function.
	//   "RESPONSE_ROW_LIMIT_EXCEEDED" - The response for this request would exceed
	// the maximum number of rows that can be returned.
	//   "RESOURCE_LIMIT" - This request would exceed a limit on the number of
	// allowed resources. The details of which type of limit was exceeded will
	// eventually be returned in ErrorDetails.
	ResourceCountLimitExceededError string `json:"resourceCountLimitExceededError,omitempty"`
	// SearchTermInsightError: The reasons for the Search term insight error
	//
	// Possible values:
	//   "UNSPECIFIED" - Name unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "FILTERING_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot be
	// filtered by metrics when segmenting.
	//   "LIMIT_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot have a
	// LIMIT when segmenting.
	//   "MISSING_FIELD_IN_SELECT_CLAUSE" - A selected field requires another field
	// to be selected with it.
	//   "REQUIRES_FILTER_BY_SINGLE_RESOURCE" - A selected field/resource requires
	// filtering by a single resource.
	//   "SORTING_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot be
	// sorted when segmenting.
	//   "SUMMARY_ROW_NOT_ALLOWED_WITH_SEGMENTS" - Search term insights cannot have
	// a summary row when segmenting.
	SearchTermInsightError string `json:"searchTermInsightError,omitempty"`
	// SettingError: The reasons for the setting error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "SETTING_TYPE_IS_NOT_AVAILABLE" - The campaign setting is not available
	// for this Google Ads account.
	//   "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN" - The setting is not
	// compatible with the campaign.
	//   "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP" - The supplied
	// TargetingSetting contains an invalid CriterionTypeGroup. See
	// CriterionTypeGroup documentation for CriterionTypeGroups allowed in Campaign
	// or AdGroup TargetingSettings.
	//
	// "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_AL
	// L" - TargetingSetting must not explicitly set any of the Demographic
	// CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) to false (it's
	// okay to not set them at all, in which case the system will set them to true
	// automatically).
	//
	// "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERIO
	// N_TYPE_GROUP" - TargetingSetting cannot change any of the Demographic
	// CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, INCOME_RANGE) from true to
	// false.
	//   "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT" - At
	// least one feed id should be present.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME" - The supplied
	// DynamicSearchAdsSetting contains an invalid domain name.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME" - The supplied
	// DynamicSearchAdsSetting contains a subdomain name.
	//   "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE" - The supplied
	// DynamicSearchAdsSetting contains an invalid language code.
	//   "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN" -
	// TargetingSettings in search campaigns should not have
	// CriterionTypeGroup.PLACEMENT set to targetAll.
	//   "SETTING_VALUE_NOT_COMPATIBLE_WITH_CAMPAIGN" - The setting value is not
	// compatible with the campaign type.
	//   "BID_ONLY_IS_NOT_ALLOWED_TO_BE_MODIFIED_WITH_CUSTOMER_MATCH_TARGETING" -
	// Switching from observation setting to targeting setting is not allowed for
	// Customer Match lists. See
	// https://support.google.com/google-ads/answer/6299717.
	SettingError string `json:"settingError,omitempty"`
	// ShareablePreviewError: The reasons for the shareable preview error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_MANY_ASSET_GROUPS_IN_REQUEST" - The maximum of 10 asset groups was
	// exceeded.
	//   "ASSET_GROUP_DOES_NOT_EXIST_UNDER_THIS_CUSTOMER" - asset group does not
	// exist under this customer.
	ShareablePreviewError string `json:"shareablePreviewError,omitempty"`
	// SharedCriterionError: The reasons for the shared criterion error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE" - The criterion is not
	// appropriate for the shared set type.
	SharedCriterionError string `json:"sharedCriterionError,omitempty"`
	// SharedSetError: The reasons for the shared set error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE" - The customer cannot
	// create this type of shared set.
	//   "DUPLICATE_NAME" - A shared set with this name already exists.
	//   "SHARED_SET_REMOVED" - Removed shared sets cannot be mutated.
	//   "SHARED_SET_IN_USE" - The shared set cannot be removed because it is in
	// use.
	SharedSetError string `json:"sharedSetError,omitempty"`
	// ShoppingProductError: The reasons for error in querying shopping product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MISSING_CAMPAIGN_FILTER" - A filter on the `campaign` resource name is
	// missing.
	//   "MISSING_AD_GROUP_FILTER" - A filter on the `ad_group` resource name is
	// missing.
	//   "UNSUPPORTED_DATE_SEGMENTATION" - Date segmentation is not supported.
	ShoppingProductError string `json:"shoppingProductError,omitempty"`
	// SizeLimitError: The reasons for the size limit error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUEST_SIZE_LIMIT_EXCEEDED" - The number of entries in the request
	// exceeds the system limit, or the contents of the operations exceed
	// transaction limits due to their size or complexity. Try reducing the number
	// of entries per request.
	//   "RESPONSE_SIZE_LIMIT_EXCEEDED" - The number of entries in the response
	// exceeds the system limit.
	SizeLimitError string `json:"sizeLimitError,omitempty"`
	// SmartCampaignError: The reasons for the Smart campaign error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_BUSINESS_LOCATION_ID" - The business location id is invalid.
	//   "INVALID_CAMPAIGN" - The SmartCampaignSetting resource is only applicable
	// for campaigns with advertising channel type SMART.
	//   "BUSINESS_NAME_OR_BUSINESS_LOCATION_ID_MISSING" - The business name or
	// business location id is required.
	//   "REQUIRED_SUGGESTION_FIELD_MISSING" - A Smart campaign suggestion request
	// field is required.
	//   "GEO_TARGETS_REQUIRED" - A location list or proximity is required.
	//   "CANNOT_DETERMINE_SUGGESTION_LOCALE" - The locale could not be determined.
	//   "FINAL_URL_NOT_CRAWLABLE" - The final URL could not be crawled.
	SmartCampaignError string `json:"smartCampaignError,omitempty"`
	// StringFormatError: The reasons for the string format error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ILLEGAL_CHARS" - The input string value contains disallowed characters.
	//   "INVALID_FORMAT" - The input string value is invalid for the associated
	// field.
	StringFormatError string `json:"stringFormatError,omitempty"`
	// StringLengthError: The reasons for the string length error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EMPTY" - The specified field should have a least one non-whitespace
	// character in it.
	//   "TOO_SHORT" - Too short.
	//   "TOO_LONG" - Too long.
	StringLengthError string `json:"stringLengthError,omitempty"`
	// ThirdPartyAppAnalyticsLinkError: The reasons for the third party app
	// analytics link mutate error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_ANALYTICS_PROVIDER_ID" - The provided analytics provider ID is
	// invalid.
	//   "INVALID_MOBILE_APP_ID" - The provided mobile app ID is invalid.
	//   "MOBILE_APP_IS_NOT_ENABLED" - The mobile app corresponding to the provided
	// app ID is not active/enabled.
	//   "CANNOT_REGENERATE_SHAREABLE_LINK_ID_FOR_REMOVED_LINK" - Regenerating
	// shareable link ID is only allowed on active links
	ThirdPartyAppAnalyticsLinkError string `json:"thirdPartyAppAnalyticsLinkError,omitempty"`
	// TimeZoneError: The reasons for the time zone error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_TIME_ZONE" - Time zone is not valid.
	TimeZoneError string `json:"timeZoneError,omitempty"`
	// UrlFieldError: An error with a URL field mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_TRACKING_URL_TEMPLATE" - The tracking url template is invalid.
	//   "INVALID_TAG_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// contains invalid tag.
	//   "MISSING_TRACKING_URL_TEMPLATE_TAG" - The tracking url template must
	// contain at least one tag (for example, {lpurl}), This applies only to
	// tracking url template associated with website ads or product ads.
	//   "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// must start with a valid protocol (or lpurl tag).
	//   "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE" - The tracking url template
	// starts with an invalid protocol.
	//   "MALFORMED_TRACKING_URL_TEMPLATE" - The tracking url template contains
	// illegal characters.
	//   "MISSING_HOST_IN_TRACKING_URL_TEMPLATE" - The tracking url template must
	// contain a host name (or lpurl tag).
	//   "INVALID_TLD_IN_TRACKING_URL_TEMPLATE" - The tracking url template has an
	// invalid or missing top level domain extension.
	//   "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG" - The tracking url template
	// contains nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "INVALID_FINAL_URL" - The final url is invalid.
	//   "INVALID_TAG_IN_FINAL_URL" - The final url contains invalid tag.
	//   "REDUNDANT_NESTED_FINAL_URL_TAG" - The final url contains nested
	// occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL_IN_FINAL_URL" - The final url must start with a valid
	// protocol.
	//   "INVALID_PROTOCOL_IN_FINAL_URL" - The final url starts with an invalid
	// protocol.
	//   "MALFORMED_FINAL_URL" - The final url contains illegal characters.
	//   "MISSING_HOST_IN_FINAL_URL" - The final url must contain a host name.
	//   "INVALID_TLD_IN_FINAL_URL" - The tracking url template has an invalid or
	// missing top level domain extension.
	//   "INVALID_FINAL_MOBILE_URL" - The final mobile url is invalid.
	//   "INVALID_TAG_IN_FINAL_MOBILE_URL" - The final mobile url contains invalid
	// tag.
	//   "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG" - The final mobile url contains
	// nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL" - The final mobile url must start
	// with a valid protocol.
	//   "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL" - The final mobile url starts with
	// an invalid protocol.
	//   "MALFORMED_FINAL_MOBILE_URL" - The final mobile url contains illegal
	// characters.
	//   "MISSING_HOST_IN_FINAL_MOBILE_URL" - The final mobile url must contain a
	// host name.
	//   "INVALID_TLD_IN_FINAL_MOBILE_URL" - The tracking url template has an
	// invalid or missing top level domain extension.
	//   "INVALID_FINAL_APP_URL" - The final app url is invalid.
	//   "INVALID_TAG_IN_FINAL_APP_URL" - The final app url contains invalid tag.
	//   "REDUNDANT_NESTED_FINAL_APP_URL_TAG" - The final app url contains nested
	// occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MULTIPLE_APP_URLS_FOR_OSTYPE" - More than one app url found for the same
	// OS type.
	//   "INVALID_OSTYPE" - The OS type given for an app url is not valid.
	//   "INVALID_PROTOCOL_FOR_APP_URL" - The protocol given for an app url is not
	// valid. (For example, "android-app://")
	//   "INVALID_PACKAGE_ID_FOR_APP_URL" - The package id (app id) given for an
	// app url is not valid.
	//   "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT" - The number of url custom
	// parameters for an resource exceeds the maximum limit allowed.
	//   "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY" - An invalid character
	// appears in the parameter key.
	//   "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE" - An invalid character
	// appears in the parameter value.
	//   "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE" - The url custom parameter
	// value fails url tag validation.
	//   "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG" - The custom parameter
	// contains nested occurrences of the same conditional tag (for example,
	// {ifmobile:{ifmobile:x}}).
	//   "MISSING_PROTOCOL" - The protocol (http:// or https://) is missing.
	//   "INVALID_PROTOCOL" - Unsupported protocol in URL. Only http and https are
	// supported.
	//   "INVALID_URL" - The url is invalid.
	//   "DESTINATION_URL_DEPRECATED" - Destination Url is deprecated.
	//   "INVALID_TAG_IN_URL" - The url contains invalid tag.
	//   "MISSING_URL_TAG" - The url must contain at least one tag (for example,
	// {lpurl}).
	//   "DUPLICATE_URL_ID" - Duplicate url id.
	//   "INVALID_URL_ID" - Invalid url id.
	//   "FINAL_URL_SUFFIX_MALFORMED" - The final url suffix cannot begin with '?'
	// or '&' characters and must be a valid query string.
	//   "INVALID_TAG_IN_FINAL_URL_SUFFIX" - The final url suffix cannot contain
	// {lpurl} related or {ignore} tags.
	//   "INVALID_TOP_LEVEL_DOMAIN" - The top level domain is invalid, for example,
	// not a public top level domain listed in publicsuffix.org.
	//   "MALFORMED_TOP_LEVEL_DOMAIN" - Malformed top level domain in URL.
	//   "MALFORMED_URL" - Malformed URL.
	//   "MISSING_HOST" - No host found in URL.
	//   "NULL_CUSTOM_PARAMETER_VALUE" - Custom parameter value cannot be null.
	//   "VALUE_TRACK_PARAMETER_NOT_SUPPORTED" - Track parameter is not supported.
	//   "UNSUPPORTED_APP_STORE" - The app store connected to the url is not
	// supported.
	UrlFieldError string `json:"urlFieldError,omitempty"`
	// UserDataError: The reasons for the user data error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "OPERATIONS_FOR_CUSTOMER_MATCH_NOT_ALLOWED" - Customer is not allowed to
	// perform operations related to Customer Match.
	//   "TOO_MANY_USER_IDENTIFIERS" - Maximum number of user identifiers allowed
	// for each request is 100 and for each operation is 20.
	//   "USER_LIST_NOT_APPLICABLE" - Current user list is not applicable for the
	// given customer.
	UserDataError string `json:"userDataError,omitempty"`
	// UserListCustomerTypeError: The reasons for a user list customer type error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CONFLICTING_CUSTOMER_TYPES" - Cannot add the conflicting customer types
	// to the same user list. Conflicting labels: 1. Purchasers - Converted Leads
	// 2. Purchasers - Qualified Leads 3. Purchasers - Cart Abandoners 4. Qualified
	// Leads - Converted Leads 5. Disengaged customers - Converted Leads 6.
	// Disengaged customers - Qualified Leads 7. Disengaged customers - Cart
	// Abandoners 8. Converted Leads - Loyalty Tier X Members (X = 1..7) 9.
	// Qualified Leads - Loyalty Tier X Members (X = 1..7) 10. Loyalty Tier X
	// Members - Loyalty Tier Y Members (X != Y)
	//   "NO_ACCESS_TO_USER_LIST" - The account does not have access to the user
	// list.
	//   "USERLIST_NOT_ELIGIBLE" - The given user list is not eligible for applying
	// customer types. The user list must belong to one of the following types:
	// CRM_BASED, RULE_BASED, ADVERTISER_DATA_MODEL_BASED, GCN.
	//   "CONVERSION_TRACKING_NOT_ENABLED_OR_NOT_MCC_MANAGER_ACCOUNT" - To edit the
	// user list customer type, conversion tracking must be enabled in your
	// account. If cross-tracking is enabled, your account must be a MCC manager
	// account to modify user list customer types. More info at
	// https://support.google.com/google-ads/answer/3030657
	//   "TOO_MANY_USER_LISTS_FOR_THE_CUSTOMER_TYPE" - Too many user lists for the
	// customer type.
	UserListCustomerTypeError string `json:"userListCustomerTypeError,omitempty"`
	// UserListError: The reasons for the user list error
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED" - Creating and
	// updating external remarketing user lists is not supported.
	//   "CONCRETE_TYPE_REQUIRED" - Concrete type of user list is required.
	//   "CONVERSION_TYPE_ID_REQUIRED" - Creating/updating user list conversion
	// types requires specifying the conversion type Id.
	//   "DUPLICATE_CONVERSION_TYPES" - Remarketing user list cannot have duplicate
	// conversion types.
	//   "INVALID_CONVERSION_TYPE" - Conversion type is invalid/unknown.
	//   "INVALID_DESCRIPTION" - User list description is empty or invalid.
	//   "INVALID_NAME" - User list name is empty or invalid.
	//   "INVALID_TYPE" - Type of the UserList does not match.
	//   "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND" - Embedded logical user
	// lists are not allowed.
	//   "INVALID_USER_LIST_LOGICAL_RULE_OPERAND" - User list rule operand is
	// invalid.
	//   "NAME_ALREADY_USED" - Name is already being used for another user list for
	// the account.
	//   "NEW_CONVERSION_TYPE_NAME_REQUIRED" - Name is required when creating a new
	// conversion type.
	//   "CONVERSION_TYPE_NAME_ALREADY_USED" - The given conversion type name has
	// been used.
	//   "OWNERSHIP_REQUIRED_FOR_SET" - Only an owner account may edit a user list.
	//   "USER_LIST_MUTATE_NOT_SUPPORTED" - Creating user list without setting type
	// in oneof user_list field, or creating/updating read-only user list types is
	// not allowed.
	//   "INVALID_RULE" - Rule is invalid.
	//   "INVALID_DATE_RANGE" - The specified date range is empty.
	//   "CAN_NOT_MUTATE_SENSITIVE_USERLIST" - A UserList which is privacy
	// sensitive or legal rejected cannot be mutated by external users.
	//   "MAX_NUM_RULEBASED_USERLISTS" - Maximum number of rulebased user lists a
	// customer can have.
	//   "CANNOT_MODIFY_BILLABLE_RECORD_COUNT" - BasicUserList's billable record
	// field cannot be modified once it is set.
	//   "APP_ID_NOT_SET" - crm_based_user_list.app_id field must be set when
	// upload_key_type is MOBILE_ADVERTISING_ID.
	//   "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST" - Name of the user list is
	// reserved for system generated lists and cannot be used.
	//   "ADVERTISER_NOT_ON_ALLOWLIST_FOR_USING_UPLOADED_DATA" - Advertiser needs
	// to be on the allow-list to use remarketing lists created from advertiser
	// uploaded data (for example, Customer Match lists).
	//   "RULE_TYPE_IS_NOT_SUPPORTED" - The provided rule_type is not supported for
	// the user list.
	//   "CAN_NOT_ADD_A_SIMILAR_USERLIST_AS_LOGICAL_LIST_OPERAND" - Similar user
	// list cannot be used as a logical user list operand.
	//   "CAN_NOT_MIX_CRM_BASED_IN_LOGICAL_LIST_WITH_OTHER_LISTS" - Logical user
	// list should not have a mix of CRM based user list and other types of lists
	// in its rules.
	//   "APP_ID_NOT_ALLOWED" - crm_based_user_list.app_id field can only be set
	// when upload_key_type is MOBILE_ADVERTISING_ID.
	//   "CANNOT_MUTATE_SYSTEM_LIST" - Google system generated user lists cannot be
	// mutated.
	//   "MOBILE_APP_IS_SENSITIVE" - The mobile app associated with the remarketing
	// list is sensitive.
	//   "SEED_LIST_DOES_NOT_EXIST" - One or more given seed lists do not exist.
	//   "INVALID_SEED_LIST_ACCESS_REASON" - One or more given seed lists are not
	// accessible to the current user.
	//   "INVALID_SEED_LIST_TYPE" - One or more given seed lists have an
	// unsupported type.
	//   "INVALID_COUNTRY_CODES" - One or more invalid country codes are added to
	// Lookalike UserList.
	//   "PARTNER_AUDIENCE_SOURCE_NOT_SUPPORTED_FOR_USER_LIST_TYPE" - The partner
	// audience source is not supported for the user list type.
	//   "COMMERCE_PARTNER_NOT_ALLOWED" - The commerce partner is only supported
	// for COMMERCE_AUDIENCE.
	//   "PARTNER_AUDIENCE_INFO_NOT_SUPPORTED_FOR_USER_LIST_TYPE" - The partner
	// audience info is not supported for the user list type.
	//   "PARTNER_MANAGER_ACCOUNT_DISALLOWED" - Manager account is not allowed to
	// create this UserList.
	//   "PARTNER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA" - This UserList can
	// only be created by allowlisted partners.
	//   "ADVERTISER_TOS_NOT_ACCEPTED" - The advertiser must accept the Terms of
	// Service to create this UserList.
	//   "ADVERTISER_PARTNER_LINK_MISSING" - The advertiser must have an active
	// link to the partner to create this UserList.
	//   "ADVERTISER_NOT_ALLOWLISTED_FOR_THIRD_PARTY_PARTNER_DATA" - This UserList
	// can only be created for allowlisted advertisers.
	//   "ACCOUNT_SETTING_TYPE_NOT_ALLOWED" - This UserList is not allowed for this
	// account type.
	UserListError string `json:"userListError,omitempty"`
	// VideoCampaignError: An error with a Video Campaign mutate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "MUTATE_REQUIRES_RESERVATION" - Cannot modify the video campaign without
	// reservation. See https://support.google.com/google-ads/answer/9547606.
	VideoCampaignError string `json:"videoCampaignError,omitempty"`
	// YoutubeVideoRegistrationError: The reasons for YouTube video registration
	// errors.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "VIDEO_NOT_FOUND" - Video to be registered wasn't found.
	//   "VIDEO_NOT_ACCESSIBLE" - Video to be registered is not accessible (for
	// example, private).
	//   "VIDEO_NOT_ELIGIBLE" - Video to be registered is not eligible (for
	// example, mature content).
	YoutubeVideoRegistrationError string `json:"youtubeVideoRegistrationError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessInvitationError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessInvitationError") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorCode) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorDetails: Additional error details.
type GoogleAdsSearchads360V23Errors__ErrorDetails struct {
	// BudgetPerDayMinimumErrorDetails: Details for a budget below per-day minimum
	// error.
	BudgetPerDayMinimumErrorDetails *GoogleAdsSearchads360V23Errors__BudgetPerDayMinimumErrorDetails `json:"budgetPerDayMinimumErrorDetails,omitempty"`
	// PolicyFindingDetails: Describes policy violation findings.
	PolicyFindingDetails *GoogleAdsSearchads360V23Errors__PolicyFindingDetails `json:"policyFindingDetails,omitempty"`
	// PolicyViolationDetails: Describes an ad policy violation.
	PolicyViolationDetails *GoogleAdsSearchads360V23Errors__PolicyViolationDetails `json:"policyViolationDetails,omitempty"`
	// QuotaErrorDetails: Details on the quota error, including the scope (account
	// or developer), the rate bucket name and the retry delay.
	QuotaErrorDetails *GoogleAdsSearchads360V23Errors__QuotaErrorDetails `json:"quotaErrorDetails,omitempty"`
	// ResourceCountDetails: Details for a resource count limit exceeded error.
	ResourceCountDetails *GoogleAdsSearchads360V23Errors__ResourceCountDetails `json:"resourceCountDetails,omitempty"`
	// UnpublishedErrorCode: The error code that should have been returned, but
	// wasn't. This is used when the error code is not published in the client
	// specified version.
	UnpublishedErrorCode string `json:"unpublishedErrorCode,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BudgetPerDayMinimumErrorDetails") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetPerDayMinimumErrorDetails")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ErrorLocation: Describes the part of the
// request proto that caused the error.
type GoogleAdsSearchads360V23Errors__ErrorLocation struct {
	// FieldPathElements: A field path that indicates which field was invalid in
	// the request.
	FieldPathElements []*GoogleAdsSearchads360V23ErrorsErrorLocationFieldPathElement `json:"fieldPathElements,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPathElements") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPathElements") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ErrorLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ErrorLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__PolicyFindingDetails: Error returned as part
// of a mutate response. This error indicates one or more policy findings in
// the fields of a resource.
type GoogleAdsSearchads360V23Errors__PolicyFindingDetails struct {
	// PolicyTopicEntries: The list of policy topics for the resource. Contains the
	// PROHIBITED or FULLY_LIMITED policy topic entries that prevented the resource
	// from being saved (among any other entries the resource may also have).
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyTopicEntries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyTopicEntries") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__PolicyFindingDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__PolicyFindingDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__PolicyViolationDetails: Error returned as
// part of a mutate response. This error indicates single policy violation by
// some text in one of the fields.
type GoogleAdsSearchads360V23Errors__PolicyViolationDetails struct {
	// ExternalPolicyDescription: Human readable description of policy violation.
	ExternalPolicyDescription string `json:"externalPolicyDescription,omitempty"`
	// ExternalPolicyName: Human readable name of the policy.
	ExternalPolicyName string `json:"externalPolicyName,omitempty"`
	// IsExemptible: Whether user can file an exemption request for this violation.
	IsExemptible bool `json:"isExemptible,omitempty"`
	// Key: Unique identifier for this violation. If policy is exemptible, this key
	// may be used to request exemption.
	Key *GoogleAdsSearchads360V23Common__PolicyViolationKey `json:"key,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalPolicyDescription")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalPolicyDescription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__PolicyViolationDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__PolicyViolationDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__QuotaErrorDetails: Additional quota error
// details when there is QuotaError.
type GoogleAdsSearchads360V23Errors__QuotaErrorDetails struct {
	// RateName: The high level description of the quota bucket. Examples are "Get
	// requests for standard access" or "Requests per account".
	RateName string `json:"rateName,omitempty"`
	// RateScope: The rate scope of the quota limit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified enum
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCOUNT" - Per customer account quota
	//   "DEVELOPER" - Per project quota
	RateScope string `json:"rateScope,omitempty"`
	// RetryDelay: Backoff period that customers should wait before sending next
	// request.
	RetryDelay string `json:"retryDelay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RateName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RateName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__QuotaErrorDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__QuotaErrorDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__ResourceCountDetails: Error details returned
// when an resource count limit was exceeded.
type GoogleAdsSearchads360V23Errors__ResourceCountDetails struct {
	// EnclosingId: The ID of the resource whose limit was exceeded. External
	// customer ID if the limit is for a customer.
	EnclosingId string `json:"enclosingId,omitempty"`
	// EnclosingResource: The name of the resource ( etc.) whose limit was
	// exceeded.
	EnclosingResource string `json:"enclosingResource,omitempty"`
	// ExistingCount: The count of existing entities.
	ExistingCount int64 `json:"existingCount,omitempty"`
	// Limit: The limit which was exceeded.
	Limit int64 `json:"limit,omitempty"`
	// LimitType: The resource limit type which was exceeded.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// operation unknown in this version.
	//   "CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED campaigns per
	// customer.
	//   "BASE_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED base
	// campaigns per customer.
	//   "EXPERIMENT_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED
	// experiment campaigns per customer.
	//   "HOTEL_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED Hotel
	// campaigns per customer.
	//   "SMART_SHOPPING_CAMPAIGNS_PER_CUSTOMER" - Number of ENABLED and PAUSED
	// Smart Shopping campaigns per customer.
	//   "AD_GROUPS_PER_CAMPAIGN" - Number of ENABLED ad groups per campaign.
	//   "AD_GROUPS_PER_SHOPPING_CAMPAIGN" - Number of ENABLED ad groups per
	// Shopping campaign.
	//   "AD_GROUPS_PER_HOTEL_CAMPAIGN" - Number of ENABLED ad groups per Hotel
	// campaign.
	//   "REPORTING_AD_GROUPS_PER_LOCAL_CAMPAIGN" - Number of ENABLED reporting ad
	// groups per local campaign.
	//   "REPORTING_AD_GROUPS_PER_APP_CAMPAIGN" - Number of ENABLED reporting ad
	// groups per App campaign. It includes app campaign and app campaign for
	// engagement.
	//   "MANAGED_AD_GROUPS_PER_SMART_CAMPAIGN" - Number of ENABLED managed ad
	// groups per smart campaign.
	//   "AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ENABLED ad group criteria per
	// customer. An ad group criterion is considered as ENABLED if: 1. it's not
	// REMOVED 2. its ad group is not REMOVED 3. its campaign is not REMOVED.
	//   "BASE_AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ad group criteria across
	// all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_CRITERIA_PER_CUSTOMER" - Number of ad group criteria
	// across all experiment campaigns for a customer.
	//   "AD_GROUP_CRITERIA_PER_CAMPAIGN" - Number of ENABLED ad group criteria per
	// campaign. An ad group criterion is considered as ENABLED if: 1. it's not
	// REMOVED 2. its ad group is not REMOVED.
	//   "CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign criteria per
	// customer.
	//   "BASE_CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign
	// criteria across all base campaigns for a customer.
	//   "EXPERIMENT_CAMPAIGN_CRITERIA_PER_CUSTOMER" - Number of ENABLED campaign
	// criteria across all experiment campaigns for a customer.
	//   "WEBPAGE_CRITERIA_PER_CUSTOMER" - Number of ENABLED webpage criteria per
	// customer, including campaign level and ad group level.
	//   "BASE_WEBPAGE_CRITERIA_PER_CUSTOMER" - Number of ENABLED webpage criteria
	// across all base campaigns for a customer.
	//   "EXPERIMENT_WEBPAGE_CRITERIA_PER_CUSTOMER" - Meximum number of ENABLED
	// webpage criteria across all experiment campaigns for a customer.
	//   "COMBINED_AUDIENCE_CRITERIA_PER_AD_GROUP" - Number of combined audience
	// criteria per ad group.
	//   "CUSTOMER_NEGATIVE_PLACEMENT_CRITERIA_PER_CUSTOMER" - Limit for placement
	// criterion type group in customer negative criterion.
	//   "CUSTOMER_NEGATIVE_YOUTUBE_CHANNEL_CRITERIA_PER_CUSTOMER" - Limit for
	// YouTube TV channels in customer negative criterion.
	//   "CRITERIA_PER_AD_GROUP" - Number of ENABLED criteria per ad group.
	//   "LISTING_GROUPS_PER_AD_GROUP" - Number of listing group criteria per ad
	// group.
	//   "EXPLICITLY_SHARED_BUDGETS_PER_CUSTOMER" - Number of ENABLED explicitly
	// shared budgets per customer.
	//   "IMPLICITLY_SHARED_BUDGETS_PER_CUSTOMER" - Number of ENABLED implicitly
	// shared budgets per customer.
	//   "COMBINED_AUDIENCE_CRITERIA_PER_CAMPAIGN" - Number of combined audience
	// criteria per campaign.
	//   "NEGATIVE_KEYWORDS_PER_CAMPAIGN" - Number of negative keywords per
	// campaign.
	//   "NEGATIVE_PLACEMENTS_PER_CAMPAIGN" - Number of excluded campaign criteria
	// in placement dimension, for example, placement, mobile application, YouTube
	// channel, etc. The API criterion type is NOT limited to placement only, and
	// this does not include exclusions at the ad group or other levels.
	//   "GEO_TARGETS_PER_CAMPAIGN" - Number of geo targets per campaign.
	//   "NEGATIVE_IP_BLOCKS_PER_CAMPAIGN" - Number of negative IP blocks per
	// campaign.
	//   "PROXIMITIES_PER_CAMPAIGN" - Number of proximity targets per campaign.
	//   "LISTING_SCOPES_PER_SHOPPING_CAMPAIGN" - Number of listing scopes per
	// Shopping campaign.
	//   "LISTING_SCOPES_PER_NON_SHOPPING_CAMPAIGN" - Number of listing scopes per
	// non-Shopping campaign.
	//   "NEGATIVE_KEYWORDS_PER_SHARED_SET" - Number of criteria per negative
	// keyword shared set.
	//   "NEGATIVE_PLACEMENTS_PER_SHARED_SET" - Number of criteria per negative
	// placement shared set.
	//   "SHARED_SETS_PER_CUSTOMER_FOR_TYPE_DEFAULT" - Default number of shared
	// sets allowed per type per customer.
	//   "SHARED_SETS_PER_CUSTOMER_FOR_NEGATIVE_PLACEMENT_LIST_LOWER" - Number of
	// shared sets of negative placement list type for a manager customer.
	//   "HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP" - Number of
	// hotel_advance_booking_window bid modifiers per ad group.
	//   "BIDDING_STRATEGIES_PER_CUSTOMER" - Number of ENABLED shared bidding
	// strategies per customer.
	//   "BASIC_USER_LISTS_PER_CUSTOMER" - Number of open basic user lists per
	// customer.
	//   "LOGICAL_USER_LISTS_PER_CUSTOMER" - Number of open logical user lists per
	// customer.
	//   "RULE_BASED_USER_LISTS_PER_CUSTOMER" - Number of open rule based user
	// lists per customer.
	//   "BASE_AD_GROUP_ADS_PER_CUSTOMER" - Number of ENABLED and PAUSED ad group
	// ads across all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_ADS_PER_CUSTOMER" - Number of ENABLED and PAUSED ad
	// group ads across all experiment campaigns for a customer.
	//   "AD_GROUP_ADS_PER_CAMPAIGN" - Number of ENABLED and PAUSED ad group ads
	// per campaign.
	//   "TEXT_AND_OTHER_ADS_PER_AD_GROUP" - Number of ENABLED ads per ad group
	// that do not fall in to other buckets. Includes text and many other types.
	//   "IMAGE_ADS_PER_AD_GROUP" - Number of ENABLED image ads per ad group.
	//   "SHOPPING_SMART_ADS_PER_AD_GROUP" - Number of ENABLED shopping smart ads
	// per ad group.
	//   "RESPONSIVE_SEARCH_ADS_PER_AD_GROUP" - Number of ENABLED responsive search
	// ads per ad group.
	//   "APP_ADS_PER_AD_GROUP" - Number of ENABLED app ads per ad group.
	//   "APP_ENGAGEMENT_ADS_PER_AD_GROUP" - Number of ENABLED app engagement ads
	// per ad group.
	//   "LOCAL_ADS_PER_AD_GROUP" - Number of ENABLED local ads per ad group.
	//   "VIDEO_ADS_PER_AD_GROUP" - Number of ENABLED video ads per ad group.
	//   "LEAD_FORM_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED lead form
	// CampaignAssets per campaign.
	//   "PROMOTION_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED promotion
	// CustomerAssets per customer.
	//   "PROMOTION_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED promotion
	// CampaignAssets per campaign.
	//   "PROMOTION_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED promotion
	// AdGroupAssets per ad group.
	//   "CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED callout
	// CustomerAssets per customer.
	//   "CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED callout
	// CampaignAssets per campaign.
	//   "CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED callout
	// AdGroupAssets per ad group.
	//   "SITELINK_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED sitelink
	// CustomerAssets per customer.
	//   "SITELINK_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED sitelink
	// CampaignAssets per campaign.
	//   "SITELINK_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED sitelink
	// AdGroupAssets per ad group.
	//   "STRUCTURED_SNIPPET_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED
	// structured snippet CustomerAssets per customer.
	//   "STRUCTURED_SNIPPET_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED
	// structured snippet CampaignAssets per campaign.
	//   "STRUCTURED_SNIPPET_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED
	// structured snippet AdGroupAssets per ad group.
	//   "MOBILE_APP_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED mobile app
	// CustomerAssets per customer.
	//   "MOBILE_APP_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED mobile app
	// CampaignAssets per campaign.
	//   "MOBILE_APP_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED mobile app
	// AdGroupAssets per ad group.
	//   "HOTEL_CALLOUT_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED hotel
	// callout CustomerAssets per customer.
	//   "HOTEL_CALLOUT_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED hotel
	// callout CampaignAssets per campaign.
	//   "HOTEL_CALLOUT_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED hotel
	// callout AdGroupAssets per ad group.
	//   "CALL_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED call
	// CustomerAssets per customer.
	//   "CALL_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED call
	// CampaignAssets per campaign.
	//   "CALL_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED call AdGroupAssets
	// per ad group.
	//   "PRICE_CUSTOMER_ASSETS_PER_CUSTOMER" - Number of ENABLED price
	// CustomerAssets per customer.
	//   "PRICE_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED price
	// CampaignAssets per campaign.
	//   "PRICE_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED price
	// AdGroupAssets per ad group.
	//   "AD_IMAGE_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED ad image
	// CampaignAssets per campaign.
	//   "AD_IMAGE_AD_GROUP_ASSETS_PER_AD_GROUP" - Number of ENABLED ad image
	// AdGroupAssets per ad group.
	//   "PAGE_FEED_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED page feed asset
	// sets per customer.
	//   "DYNAMIC_EDUCATION_FEED_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED
	// dynamic education feed asset sets per customer.
	//   "ASSETS_PER_PAGE_FEED_ASSET_SET" - Number of ENABLED assets per page feed
	// asset set.
	//   "ASSETS_PER_DYNAMIC_EDUCATION_FEED_ASSET_SET" - Number of ENABLED assets
	// per dynamic education asset set.
	//   "DYNAMIC_REAL_ESTATE_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// real estate asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_REAL_ESTATE_ASSET_SET" - Number of ENABLED assets per
	// dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// custom asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_CUSTOM_ASSET_SET" - Number of ENABLED assets per
	// dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED
	// dynamic hotels and rentals asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_HOTELS_AND_RENTALS_ASSET_SET" - Number of ENABLED
	// assets per dynamic hotels and rentals asset set.
	//   "DYNAMIC_LOCAL_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic local
	// asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_LOCAL_ASSET_SET" - Number of ENABLED assets per
	// dynamic local asset set.
	//   "DYNAMIC_FLIGHTS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// flights asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_FLIGHTS_ASSET_SET" - Number of ENABLED assets per
	// dynamic flights asset set.
	//   "DYNAMIC_TRAVEL_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic
	// travel asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_TRAVEL_ASSET_SET" - Number of ENABLED assets per
	// dynamic travel asset set.
	//   "DYNAMIC_JOBS_ASSET_SETS_PER_CUSTOMER" - Number of ENABLED dynamic jobs
	// asset sets per customer.
	//   "ASSETS_PER_DYNAMIC_JOBS_ASSET_SET" - Number of ENABLED assets per dynamic
	// jobs asset set.
	//   "BUSINESS_NAME_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED business
	// name CampaignAssets per campaign.
	//   "BUSINESS_LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Number of ENABLED business
	// logo CampaignAssets per campaign.
	//   "VERSIONS_PER_AD" - Number of versions per ad.
	//   "USER_FEEDS_PER_CUSTOMER" - Number of ENABLED user feeds per customer.
	//   "SYSTEM_FEEDS_PER_CUSTOMER" - Number of ENABLED system feeds per customer.
	//   "FEED_ATTRIBUTES_PER_FEED" - Number of feed attributes per feed.
	//   "FEED_ITEMS_PER_CUSTOMER" - Number of ENABLED feed items per customer.
	//   "CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign feeds per
	// customer.
	//   "BASE_CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign feeds
	// across all base campaigns for a customer.
	//   "EXPERIMENT_CAMPAIGN_FEEDS_PER_CUSTOMER" - Number of ENABLED campaign
	// feeds across all experiment campaigns for a customer.
	//   "AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group feeds per
	// customer.
	//   "BASE_AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group feeds
	// across all base campaigns for a customer.
	//   "EXPERIMENT_AD_GROUP_FEEDS_PER_CUSTOMER" - Number of ENABLED ad group
	// feeds across all experiment campaigns for a customer.
	//   "AD_GROUP_FEEDS_PER_CAMPAIGN" - Number of ENABLED ad group feeds per
	// campaign.
	//   "FEED_ITEM_SETS_PER_CUSTOMER" - Number of ENABLED feed items per customer.
	//   "FEED_ITEMS_PER_FEED_ITEM_SET" - Number of feed items per feed item set.
	//   "CAMPAIGN_EXPERIMENTS_PER_CUSTOMER" - Number of ENABLED campaign
	// experiments per customer.
	//   "EXPERIMENT_ARMS_PER_VIDEO_EXPERIMENT" - Number of video experiment arms
	// per experiment.
	//   "OWNED_LABELS_PER_CUSTOMER" - Number of owned labels per customer.
	//   "LABELS_PER_CAMPAIGN" - Number of applied labels per campaign.
	//   "LABELS_PER_AD_GROUP" - Number of applied labels per ad group.
	//   "LABELS_PER_AD_GROUP_AD" - Number of applied labels per ad group ad.
	//   "LABELS_PER_AD_GROUP_CRITERION" - Number of applied labels per ad group
	// criterion.
	//   "TARGET_CUSTOMERS_PER_LABEL" - Number of customers with a single label
	// applied.
	//   "KEYWORD_PLANS_PER_USER_PER_CUSTOMER" - Number of ENABLED keyword plans
	// per user per customer. The limit is applied per pair because by default a
	// plan is private to a user of a customer. Each user of a customer has their
	// own independent limit.
	//   "KEYWORD_PLAN_AD_GROUP_KEYWORDS_PER_KEYWORD_PLAN" - Number of keyword plan
	// ad group keywords per keyword plan.
	//   "KEYWORD_PLAN_AD_GROUPS_PER_KEYWORD_PLAN" - Number of keyword plan ad
	// groups per keyword plan.
	//   "KEYWORD_PLAN_NEGATIVE_KEYWORDS_PER_KEYWORD_PLAN" - Number of keyword plan
	// negative keywords (both campaign and ad group) per keyword plan.
	//   "KEYWORD_PLAN_CAMPAIGNS_PER_KEYWORD_PLAN" - Number of keyword plan
	// campaigns per keyword plan.
	//   "CONVERSION_ACTIONS_PER_CUSTOMER" - Number of ENABLED conversion actions
	// per customer.
	//   "BATCH_JOB_OPERATIONS_PER_JOB" - Number of operations in a single batch
	// job.
	//   "BATCH_JOBS_PER_CUSTOMER" - Number of PENDING or ENABLED batch jobs per
	// customer.
	//   "HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP" - Number of hotel
	// check-in date range bid modifiers per ad agroup.
	//   "SHARED_SETS_PER_ACCOUNT_FOR_ACCOUNT_LEVEL_NEGATIVE_KEYWORDS" - Number of
	// shared sets of type ACCOUNT_LEVEL_NEGATIVE_KEYWORDS per account.
	//   "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS_PER_SHARED_SET" - Number of keywords per
	// ACCOUNT_LEVEL_NEGATIVE_KEYWORDS shared set.
	//   "ENABLED_ASSET_PER_HOTEL_PROPERTY_ASSET_SET" - Maximum number of asset per
	// hotel property asset set.
	//   "ENABLED_HOTEL_PROPERTY_ASSET_LINKS_PER_ASSET_GROUP" - Maximum number of
	// enabled hotel property assets per asset group.
	//   "BRANDS_PER_SHARED_SET" - Number of criteria per brand shared set.
	//   "ENABLED_BRAND_LIST_CRITERIA_PER_CAMPAIGN" - Number of active brand list
	// criteria per campaign.
	//   "SHARED_SETS_PER_ACCOUNT_FOR_BRAND" - Maximum number of shared sets of
	// brand type for an account.
	//   "LOOKALIKE_USER_LISTS_PER_CUSTOMER" - Maximum number of lookalike lists
	// per customer.
	//   "LOGO_CAMPAIGN_ASSETS_PER_CAMPAIGN" - Total number of enabled IMAGE
	// CampaignAssets with LOGO and LANDSCAPE_LOGO field types per campaign.
	//   "BUSINESS_MESSAGE_ASSET_LINKS_PER_CUSTOMER" - Maximum number of active
	// business message asset links at customer level.
	//   "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_CAMPAIGN" - Maximum number of
	// active WhatsApp business message asset links at campaign level.
	//   "WHATSAPP_BUSINESS_MESSAGE_ASSET_LINKS_PER_AD_GROUP" - Maximum number of
	// active WhatsApp business message asset links at ad group level.
	//   "BRAND_LIST_CRITERIA_PER_AD_GROUP" - Number of ENABLED brand list criteria
	// per ad group.
	LimitType string `json:"limitType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnclosingId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnclosingId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__ResourceCountDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__ResourceCountDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__SearchAds360Error: Search Ads 360-specific
// error.
type GoogleAdsSearchads360V23Errors__SearchAds360Error struct {
	// Details: Additional error details, which are returned by certain error
	// codes. Most error codes do not include details.
	Details *GoogleAdsSearchads360V23Errors__ErrorDetails `json:"details,omitempty"`
	// ErrorCode: An enum value that indicates which error occurred.
	ErrorCode *GoogleAdsSearchads360V23Errors__ErrorCode `json:"errorCode,omitempty"`
	// Location: Describes the part of the request proto that caused the error.
	Location *GoogleAdsSearchads360V23Errors__ErrorLocation `json:"location,omitempty"`
	// Message: A human-readable description of the error.
	Message string `json:"message,omitempty"`
	// Trigger: The value that triggered the error.
	Trigger *GoogleAdsSearchads360V23Common__Value `json:"trigger,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Details") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Details") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__SearchAds360Error) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__SearchAds360Error
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Errors__SearchAds360Failure: Describes how a Search
// Ads 360 API call failed. It's returned inside google.rpc.Status.details when
// a call fails.
type GoogleAdsSearchads360V23Errors__SearchAds360Failure struct {
	// Errors: The list of errors that occurred.
	Errors []*GoogleAdsSearchads360V23Errors__SearchAds360Error `json:"errors,omitempty"`
	// RequestId: The unique ID of the request that is used for debugging purposes.
	RequestId string `json:"requestId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Errors__SearchAds360Failure) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Errors__SearchAds360Failure
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionV
// alue: An automated bidding strategy to help get the most conversion value
// for your campaigns while spending your budget.
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue struct {
	// TargetRoas: Output only. The target return on ad spend (ROAS) option. If
	// set, the bid strategy will maximize revenue while averaging the target
	// return on ad spend. If the target ROAS is high, the bid strategy may not be
	// able to spend the full budget. If the target ROAS is not set, the bid
	// strategy will aim to achieve the highest possible ROAS for the budget.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRoas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRoas") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversions
// : An automated bidding strategy to help get the most conversions for your
// campaigns while spending your budget.
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversions struct {
	// TargetCpaMicros: Output only. The target cost per acquisition (CPA) option.
	// This is the average amount that you would like to spend per acquisition.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TargetCpaMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpaMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetCpa: An
// automated bid strategy that sets bids to help get as many conversions as
// possible at the target cost-per-acquisition (CPA) you set.
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetCpa struct {
	// TargetCpaMicros: Output only. Average CPA target. This target should be
	// greater than or equal to minimum billable unit based on the currency for the
	// account.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TargetCpaMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpaMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetCpa) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetCpa
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetImpressionSha
// re: An automated bidding strategy that sets bids so that a certain
// percentage of search ads are shown at the top of the first page (or other
// targeted location).
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetImpressionShare struct {
	// CpcBidCeilingMicros: Output only. The highest CPC bid the automated bidding
	// system is permitted to specify. This is a required field entered by the
	// advertiser that sets the ceiling and specified in local micros.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// Location: Output only. The targeted location on the search results page.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANYWHERE_ON_PAGE" - Any location on the web page.
	//   "TOP_OF_PAGE" - Top box of ads.
	//   "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads.
	Location string `json:"location,omitempty"`
	// LocationFractionMicros: The chosen fraction of ads to be shown in the
	// targeted location in micros. For example, 1% equals 10,000.
	LocationFractionMicros int64 `json:"locationFractionMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetImpressionShare) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetImpressionShare
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas: An
// automated bidding strategy that helps you maximize revenue while averaging a
// specific target return on ad spend (ROAS).
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas struct {
	// TargetRoas: Output only. The chosen revenue (based on conversion data) per
	// unit of spend.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRoas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRoas") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetSpend: An
// automated bid strategy that sets your bids to help get as many clicks as
// possible within your budget.
type GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetSpend struct {
	// CpcBidCeilingMicros: Output only. Maximum bid limit that can be set by the
	// bid strategy. The limit applies to all keywords managed by the strategy.
	CpcBidCeilingMicros int64 `json:"cpcBidCeilingMicros,omitempty,string"`
	// TargetSpendMicros: Output only. The spend target under which to maximize
	// clicks. A TargetSpend bidder will attempt to spend the smaller of this value
	// or the natural throttling spend amount. If not specified, the budget is used
	// as the spend target. This field is deprecated and should no longer be used.
	// See
	// https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
	// for details.
	TargetSpendMicros int64 `json:"targetSpendMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CpcBidCeilingMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidCeilingMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetSpend) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetSpend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAccountBudgetPendingAccountBudgetProposal:
// A pending proposal associated with the enclosing account-level budget, if
// applicable.
type GoogleAdsSearchads360V23ResourcesAccountBudgetPendingAccountBudgetProposal struct {
	// AccountBudgetProposal: Output only. The resource name of the proposal.
	// AccountBudgetProposal resource names have the form:
	// `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
	AccountBudgetProposal string `json:"accountBudgetProposal,omitempty"`
	// CreationDateTime: Output only. The time when this account-level budget
	// proposal was created. Formatted as yyyy-MM-dd HH:mm:ss.
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// EndDateTime: Output only. The end time in yyyy-MM-dd HH:mm:ss format.
	EndDateTime string `json:"endDateTime,omitempty"`
	// EndTimeType: Output only. The end time as a well-defined type, for example,
	// FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	EndTimeType string `json:"endTimeType,omitempty"`
	// Name: Output only. The name to assign to the account-level budget.
	Name string `json:"name,omitempty"`
	// Notes: Output only. Notes associated with this budget.
	Notes string `json:"notes,omitempty"`
	// ProposalType: Output only. The type of this proposal, for example, END to
	// end the budget associated with this proposal.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CREATE" - Identifies a request to create a new budget.
	//   "UPDATE" - Identifies a request to edit an existing budget.
	//   "END" - Identifies a request to end a budget that has already started.
	//   "REMOVE" - Identifies a request to remove a budget that hasn't started
	// yet.
	ProposalType string `json:"proposalType,omitempty"`
	// PurchaseOrderNumber: Output only. A purchase order number is a value that
	// helps users reference this budget in their monthly invoices.
	PurchaseOrderNumber string `json:"purchaseOrderNumber,omitempty"`
	// SpendingLimitMicros: Output only. The spending limit in micros. One million
	// is equivalent to one unit.
	SpendingLimitMicros int64 `json:"spendingLimitMicros,omitempty,string"`
	// SpendingLimitType: Output only. The spending limit as a well-defined type,
	// for example, INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	SpendingLimitType string `json:"spendingLimitType,omitempty"`
	// StartDateTime: Output only. The start time in yyyy-MM-dd HH:mm:ss format.
	StartDateTime string `json:"startDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountBudgetProposal") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountBudgetProposal") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAccountBudgetPendingAccountBudgetProposal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAccountBudgetPendingAccountBudgetProposal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupCriterionPositionEstimates:
// Estimates for criterion bids at various positions.
type GoogleAdsSearchads360V23ResourcesAdGroupCriterionPositionEstimates struct {
	// EstimatedAddClicksAtFirstPositionCpc: Output only. Estimate of how many
	// clicks per week you might get by changing your keyword bid to the value in
	// first_position_cpc_micros.
	EstimatedAddClicksAtFirstPositionCpc int64 `json:"estimatedAddClicksAtFirstPositionCpc,omitempty,string"`
	// EstimatedAddCostAtFirstPositionCpc: Output only. Estimate of how your cost
	// per week might change when changing your keyword bid to the value in
	// first_position_cpc_micros.
	EstimatedAddCostAtFirstPositionCpc int64 `json:"estimatedAddCostAtFirstPositionCpc,omitempty,string"`
	// FirstPageCpcMicros: Output only. The estimate of the CPC bid required for ad
	// to be shown on first page of search results.
	FirstPageCpcMicros int64 `json:"firstPageCpcMicros,omitempty,string"`
	// FirstPositionCpcMicros: Output only. The estimate of the CPC bid required
	// for ad to be displayed in first position, at the top of the first page of
	// search results.
	FirstPositionCpcMicros int64 `json:"firstPositionCpcMicros,omitempty,string"`
	// TopOfPageCpcMicros: Output only. The estimate of the CPC bid required for ad
	// to be displayed at the top of the first page of search results.
	TopOfPageCpcMicros int64 `json:"topOfPageCpcMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "EstimatedAddClicksAtFirstPositionCpc") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EstimatedAddClicksAtFirstPositionCpc") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupCriterionPositionEstimates) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupCriterionPositionEstimates
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupCriterionQualityInfo: A container
// for ad group criterion quality information.
type GoogleAdsSearchads360V23ResourcesAdGroupCriterionQualityInfo struct {
	// CreativeQualityScore: Output only. The performance of the ad compared to
	// other advertisers.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	CreativeQualityScore string `json:"creativeQualityScore,omitempty"`
	// PostClickQualityScore: Output only. The quality score of the landing page.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	PostClickQualityScore string `json:"postClickQualityScore,omitempty"`
	// QualityScore: Output only. The quality score. This field may not be
	// populated if Google does not have enough information to determine a value.
	QualityScore int64 `json:"qualityScore,omitempty"`
	// SearchPredictedCtr: Output only. The click-through rate compared to that of
	// other advertisers.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_AVERAGE" - Quality of the creative is below average.
	//   "AVERAGE" - Quality of the creative is average.
	//   "ABOVE_AVERAGE" - Quality of the creative is above average.
	SearchPredictedCtr string `json:"searchPredictedCtr,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreativeQualityScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreativeQualityScore") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupCriterionQualityInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupCriterionQualityInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChan
// nelControlsDemandGenSelectedChannels: Explicitly selected channels for
// channel controls in Demand Gen ad groups.
type GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControlsDemandGenSelectedChannels struct {
	// Discover: Whether to enable ads on the Discover channel.
	Discover bool `json:"discover,omitempty"`
	// Display: Whether to enable ads on the Display channel.
	Display bool `json:"display,omitempty"`
	// Gmail: Whether to enable ads on the Gmail channel.
	Gmail bool `json:"gmail,omitempty"`
	// YoutubeInFeed: Whether to enable ads on the YouTube In-Feed channel.
	YoutubeInFeed bool `json:"youtubeInFeed,omitempty"`
	// YoutubeInStream: Whether to enable ads on the YouTube In-Stream channel.
	YoutubeInStream bool `json:"youtubeInStream,omitempty"`
	// YoutubeShorts: Whether to enable ads on the YouTube Shorts channel.
	YoutubeShorts bool `json:"youtubeShorts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Discover") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Discover") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControlsDemandGenSelectedChannels) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControlsDemandGenSelectedChannels
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChan
// nelControls: Channel controls for Demand Gen ad groups.
type GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControls struct {
	// ChannelConfig: Output only. Channel configuration reflecting which field in
	// the oneof is populated.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CHANNEL_STRATEGY" - The channel controls configuration uses a general
	// channel strategy; individual channels are not configured separately.
	//   "SELECTED_CHANNELS" - The channel controls configuration explicitly
	// defines the selected channels.
	ChannelConfig string `json:"channelConfig,omitempty"`
	// ChannelStrategy: High level channel strategy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ALL_CHANNELS" - All channels are enabled.
	//   "ALL_OWNED_AND_OPERATED_CHANNELS" - All Google-owned and operated channels
	// are enabled; third-party channels (e.g., Display) are disabled.
	ChannelStrategy string `json:"channelStrategy,omitempty"`
	// SelectedChannels: Explicitly selected channels. This field should be set
	// with at least one true value when present.
	SelectedChannels *GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControlsDemandGenSelectedChannels `json:"selectedChannels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControls) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControls
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupAiMaxAdGroupSetting: Settings for AI
// Max feature in standard search adgroups.
type GoogleAdsSearchads360V23ResourcesAdGroupAiMaxAdGroupSetting struct {
	// DisableSearchTermMatching: Disable search term matching for this adgroup
	// when AI Max is enabled. Search term matching uses broad match, asset-based,
	// and landing page-based technology to improve reach.
	DisableSearchTermMatching bool `json:"disableSearchTermMatching,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableSearchTermMatching")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableSearchTermMatching") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupAiMaxAdGroupSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupAiMaxAdGroupSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupAudienceSetting: Settings for the
// audience targeting.
type GoogleAdsSearchads360V23ResourcesAdGroupAudienceSetting struct {
	// UseAudienceGrouped: Immutable. If true, this ad group uses an Audience
	// resource for audience targeting. If false, this ad group may use audience
	// segment criteria instead.
	UseAudienceGrouped bool `json:"useAudienceGrouped,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UseAudienceGrouped") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UseAudienceGrouped") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupAudienceSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupAudienceSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettings: Settings
// for Demand Gen ad groups.
type GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettings struct {
	// ChannelControls: Channel controls for Demand Gen ad groups.
	ChannelControls *GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettingsDemandGenChannelControls `json:"channelControls,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelControls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelControls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdGroupVerticalAdsFormatSetting: Vertical
// ads setting feature to enable/disable ad group format controls in search
// campaigns.
type GoogleAdsSearchads360V23ResourcesAdGroupVerticalAdsFormatSetting struct {
	// DisableTextAds: If true, text ads will be disabled for this ad group.
	DisableTextAds bool `json:"disableTextAds,omitempty"`
	// EnableBookingLinks: If true, booking links will be enabled for this ad
	// group.
	EnableBookingLinks bool `json:"enableBookingLinks,omitempty"`
	// EnableVerticalPromotionAds: If true, vertical promotion ads will be enabled
	// for this ad group.
	EnableVerticalPromotionAds bool `json:"enableVerticalPromotionAds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableTextAds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableTextAds") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdGroupVerticalAdsFormatSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdGroupVerticalAdsFormatSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails: The
// details of the asset to add.
type GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails struct {
	// AssetCount: Output only. The number of assets to add.
	AssetCount int64 `json:"assetCount,omitempty"`
	// AssetFieldType: Output only. The asset field type of the asset(s) to add.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// VideoAspectRatioRequirement: Output only. For video field types, the
	// required aspect ratio of the video. When unset and asset_field_type is
	// YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube
	// video, regardless of aspect ratio.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "HORIZONTAL" - The video requires a horizontal aspect ratio.
	//   "SQUARE" - The video requires a square aspect ratio.
	//   "VERTICAL" - The video requires a vertical aspect ratio.
	VideoAspectRatioRequirement string `json:"videoAspectRatioRequirement,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAssetSetHotelPropertyData: For Performance
// Max for travel goals campaigns with a Hotel Center account link. Read-only.
type GoogleAdsSearchads360V23ResourcesAssetSetHotelPropertyData struct {
	// HotelCenterId: Output only. The hotel center ID of the partner.
	HotelCenterId int64 `json:"hotelCenterId,omitempty,string"`
	// PartnerName: Output only. Name of the hotel partner.
	PartnerName string `json:"partnerName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HotelCenterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HotelCenterId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAssetSetHotelPropertyData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAssetSetHotelPropertyData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesAssetSetMerchantCenterFeed: Merchant ID and
// Feed Label from Google Merchant Center.
type GoogleAdsSearchads360V23ResourcesAssetSetMerchantCenterFeed struct {
	// FeedLabel: Optional. Feed Label from Google Merchant Center.
	FeedLabel string `json:"feedLabel,omitempty"`
	// MerchantId: Required. Merchant ID from Google Merchant Center
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FeedLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesAssetSetMerchantCenterFeed) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesAssetSetMerchantCenterFeed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata: Additional
// information about the batch job. This message is also used as metadata
// returned in batch job Long Running Operations.
type GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata struct {
	// CompletionDateTime: Output only. The time when this batch job was completed.
	// Formatted as yyyy-MM-dd HH:mm:ss. Example: "2018-03-05 09:16:00"
	CompletionDateTime string `json:"completionDateTime,omitempty"`
	// CreationDateTime: Output only. The time when this batch job was created.
	// Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:00"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// EstimatedCompletionRatio: Output only. The fraction (between 0.0 and 1.0) of
	// mutates that have been processed. This is empty if the job hasn't started
	// running yet.
	EstimatedCompletionRatio float64 `json:"estimatedCompletionRatio,omitempty"`
	// ExecutedOperationCount: Output only. The number of mutate operations
	// executed by the batch job. Present only if the job has started running.
	ExecutedOperationCount int64 `json:"executedOperationCount,omitempty,string"`
	// ExecutionLimitSeconds: Immutable. The approximate upper bound for how long a
	// batch job can be executed, in seconds. If the job runs more than the given
	// upper bound, the job will be canceled.
	ExecutionLimitSeconds int64 `json:"executionLimitSeconds,omitempty"`
	// OperationCount: Output only. The number of mutate operations in the batch
	// job.
	OperationCount int64 `json:"operationCount,omitempty,string"`
	// StartDateTime: Output only. The time when this batch job started running.
	// Formatted as yyyy-mm-dd hh:mm:ss. Example: "2018-03-05 09:15:30"
	StartDateTime string `json:"startDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletionDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletionDateTime") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata
	var s1 struct {
		EstimatedCompletionRatio gensupport.JSONFloat64 `json:"estimatedCompletionRatio"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.EstimatedCompletionRatio = float64(s1.EstimatedCompletionRatio)
	return nil
}

// GoogleAdsSearchads360V23ResourcesBillingSetupPaymentsAccountInfo: Container
// of payments account information for this billing.
type GoogleAdsSearchads360V23ResourcesBillingSetupPaymentsAccountInfo struct {
	// PaymentsAccountId: Output only. A 16 digit id used to identify the payments
	// account associated with the billing setup. This must be passed as a string
	// with dashes, for example, "1234-5678-9012-3456".
	PaymentsAccountId string `json:"paymentsAccountId,omitempty"`
	// PaymentsAccountName: Immutable. The name of the payments account associated
	// with the billing setup. This enables the user to specify a meaningful name
	// for a payments account to aid in reconciling monthly invoices. This name
	// will be printed in the monthly invoices.
	PaymentsAccountName string `json:"paymentsAccountName,omitempty"`
	// PaymentsProfileId: Immutable. A 12 digit id used to identify the payments
	// profile associated with the billing setup. This must be passed in as a
	// string with dashes, for example, "1234-5678-9012".
	PaymentsProfileId string `json:"paymentsProfileId,omitempty"`
	// PaymentsProfileName: Output only. The name of the payments profile
	// associated with the billing setup.
	PaymentsProfileName string `json:"paymentsProfileName,omitempty"`
	// SecondaryPaymentsProfileId: Output only. A secondary payments profile id
	// present in uncommon situations, for example, when a sequential liability
	// agreement has been arranged.
	SecondaryPaymentsProfileId string `json:"secondaryPaymentsProfileId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PaymentsAccountId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PaymentsAccountId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesBillingSetupPaymentsAccountInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesBillingSetupPaymentsAccountInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettingsBrandTargetingOv
// errides: Overrides of brand targeting for various ad types.
type GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettingsBrandTargetingOverrides struct {
	// IgnoreExclusionsForShoppingAds: If true, brand exclusions are ignored for
	// Shopping ads.
	IgnoreExclusionsForShoppingAds bool `json:"ignoreExclusionsForShoppingAds,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "IgnoreExclusionsForShoppingAds") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreExclusionsForShoppingAds")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettingsBrandTargetingOverrides) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettingsBrandTargetingOverrides
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignAiMaxSetting: Settings for AI Max
// in search campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignAiMaxSetting struct {
	// BundlingRequired: Output only. Indicates whether a search campaign has
	// adopted AI Max before, and is required to have AI Max enabled to adopt
	// campaign-level text asset automation and brand list targeting in all API
	// versions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOT_REQUIRED" - Search campaign is using text asset automation or brand
	// list targeting, and AI Max is not required to be enabled to serve these
	// features.
	//   "REQUIRED" - AI Max is required to be enabled for this search campaign to
	// serve existing text asset automation and brand list targeting, or to add new
	// text asset automation and brand list targeting settings.
	BundlingRequired string `json:"bundlingRequired,omitempty"`
	// EnableAiMax: Controls whether or not AI Max features are served for this
	// campaign. Individual AI Max features are enabled or disabled by their
	// respective settings. But if enable_ai_max is set to false or cleared, then
	// no AI Max features will serve for this campaign, regardless of the other
	// settings. Search Term Matching is enabled by default when AI Max is enabled,
	// and can be disabled at the ad group level.
	EnableAiMax bool `json:"enableAiMax,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BundlingRequired") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BundlingRequired") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignAiMaxSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignAiMaxSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignAppCampaignSetting: Campaign-level
// settings for App Campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignAppCampaignSetting struct {
	// AppId: Immutable. A string that uniquely identifies a mobile application.
	AppId string `json:"appId,omitempty"`
	// AppStore: Immutable. The application store that distributes this specific
	// app.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Apple app store.
	//   "GOOGLE_APP_STORE" - Google play.
	AppStore string `json:"appStore,omitempty"`
	// BiddingStrategyGoalType: Represents the goal which the bidding strategy of
	// this app campaign should optimize towards.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OPTIMIZE_INSTALLS_TARGET_INSTALL_COST" - Aim to maximize the number of
	// app installs. The cpa bid is the target cost per install.
	//   "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_INSTALL_COST" - Aim to maximize the
	// long term number of selected in-app conversions from app installs. The cpa
	// bid is the target cost per install.
	//   "OPTIMIZE_IN_APP_CONVERSIONS_TARGET_CONVERSION_COST" - Aim to maximize the
	// long term number of selected in-app conversions from app installs. The cpa
	// bid is the target cost per in-app conversion. Note that the actual cpa may
	// seem higher than the target cpa at first, since the long term conversions
	// haven't happened yet.
	//   "OPTIMIZE_RETURN_ON_ADVERTISING_SPEND" - Aim to maximize all conversions'
	// value, for example, install + selected in-app conversions while achieving or
	// exceeding target return on advertising spend.
	//   "OPTIMIZE_PRE_REGISTRATION_CONVERSION_VOLUME" - Aim to maximize the
	// pre-registration of the app.
	//   "OPTIMIZE_INSTALLS_WITHOUT_TARGET_INSTALL_COST" - Aim to maximize
	// installation of the app without target cost-per-install.
	//   "OPTIMIZE_IN_APP_CONVERSIONS_WITHOUT_TARGET_CPA" - Aim to maximize the
	// selected in-app conversion's volume while spending the full budget. No
	// advertiser-specific target CPA.
	//   "OPTIMIZE_TOTAL_VALUE_WITHOUT_TARGET_ROAS" - Aim to maximize total
	// conversion value, such as install and selected in-app conversions, while
	// spending the full budget. No advertiser-specified target ROAS.
	BiddingStrategyGoalType string `json:"biddingStrategyGoalType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignAppCampaignSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignAppCampaignSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignAssetAutomationSetting: Asset
// automation setting contains pair of AssetAutomationType and the asset
// automation opt-in/out status
type GoogleAdsSearchads360V23ResourcesCampaignAssetAutomationSetting struct {
	// AssetAutomationStatus: The opt-in/out status of asset automation type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "OPTED_IN" - Opted-in will enable generating and serving an asset
	// automation type.
	//   "OPTED_OUT" - Opted-out will stop generating and serving an asset
	// automation type.
	AssetAutomationStatus string `json:"assetAutomationStatus,omitempty"`
	// AssetAutomationType: The asset automation type advertiser would like to
	// opt-in/out.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "TEXT_ASSET_AUTOMATION" - Text asset automation includes headlines and
	// descriptions. By default, advertisers are opted-in for Performance Max and
	// opted-out for Search.
	//   "GENERATE_VERTICAL_YOUTUBE_VIDEOS" - Converts horizontal video assets to
	// vertical orientation using content-aware technology. By default, advertisers
	// are opted in for DemandGenVideoResponsiveAd.
	//   "GENERATE_SHORTER_YOUTUBE_VIDEOS" - Shortens video assets to better
	// capture user attention using content-aware technology.
	//   "GENERATE_LANDING_PAGE_PREVIEW" - Generates a preview of the landing page
	// shown in the engagement panel. By using this feature, you confirm that you
	// own all legal rights to the images on the landing page used by this account
	// (or you have permission to share the images with Google). You hereby
	// instruct Google to publish these images on your behalf for advertising or
	// other commercial purposes.
	//   "GENERATE_ENHANCED_YOUTUBE_VIDEOS" - Generates video enhancements
	// (vertical and shorter videos) for PMax campaigns. Opted in by default.
	//   "GENERATE_IMAGE_ENHANCEMENT" - Generates image enhancements (AutoCrop and
	// AutoEnhance). Opted in by default for pmax.
	//   "GENERATE_IMAGE_EXTRACTION" - Generates image extraction. It defaults to
	// account level Dynamic Image Extension control value.
	//   "GENERATE_DESIGN_VERSIONS_FOR_IMAGES" - Adds design elements and embeds
	// text assets into image assets to create images with different aspect ratios.
	// By default, advertisers are opted in for DemandGenMultiAssetAd.
	//   "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION" - Controls automation for text
	// assets related to Final URL expansion. This includes automatically creating
	// dynamic landing pages from the final URL and generating text assets from the
	// content of those landing pages. This setting is turned OFF by default for
	// Search campaigns, but it is turned ON by default for Performance Max
	// campaigns.
	//   "GENERATE_VIDEOS_FROM_OTHER_ASSETS" - Generates videos using other Assets
	// as input, such as images and text. By default, advertisers are opted in for
	// DemandGenMultiAssetAd.
	AssetAutomationType string `json:"assetAutomationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetAutomationStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetAutomationStatus") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignAssetAutomationSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignAssetAutomationSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignAudienceSetting: Settings for the
// audience targeting.
type GoogleAdsSearchads360V23ResourcesCampaignAudienceSetting struct {
	// UseAudienceGrouped: Immutable. If true, this campaign uses an Audience
	// resource for audience targeting. If false, this campaign may use audience
	// segment criteria instead.
	UseAudienceGrouped bool `json:"useAudienceGrouped,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UseAudienceGrouped") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UseAudienceGrouped") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignAudienceSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignAudienceSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignBrandGuidelines: Settings that
// control the visual appearance of your brand in a campaign's automatically
// generated assets and formats. Only applicable to Performance Max campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignBrandGuidelines struct {
	// AccentColor: The accent brand color, entered as a hex code (e.g., #00ff00).
	// You must provide the accent_color if you provide a main_color.
	AccentColor string `json:"accentColor,omitempty"`
	// MainColor: The main brand color, entered as a hex code (e.g., #00ff00). You
	// must provide the main_color if you provide an accent_color.
	MainColor string `json:"mainColor,omitempty"`
	// PredefinedFontFamily: The brand's font family. Must be one of the following
	// Google Fonts (case sensitive): Open Sans, Roboto, Montserrat, Poppins, Lato,
	// Oswald, Playfair Display, Roboto Slab.
	PredefinedFontFamily string `json:"predefinedFontFamily,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccentColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccentColor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignBrandGuidelines) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignBrandGuidelines
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignCategoryBid: Category bids in
// LocalServicesReportingCampaignSettings.
type GoogleAdsSearchads360V23ResourcesCampaignCategoryBid struct {
	// CategoryId: Category for which the bid will be associated with. For example,
	// xcat:service_area_business_plumber.
	CategoryId string `json:"categoryId,omitempty"`
	// ManualCpaBidMicros: Manual CPA bid for the category. Bid must be greater
	// than the reserve price associated for that category. Value is in micros and
	// in the advertiser's currency.
	ManualCpaBidMicros int64 `json:"manualCpaBidMicros,omitempty,string"`
	// TargetCpaBidMicros: Target CPA bid for the category. Value is in micros and
	// in the advertiser's currency.
	TargetCpaBidMicros int64 `json:"targetCpaBidMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignCategoryBid) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignCategoryBid
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignDemandGenCampaignSettings: Settings
// for Demand Gen campaign.
type GoogleAdsSearchads360V23ResourcesCampaignDemandGenCampaignSettings struct {
	// UpgradedTargeting: Immutable. Specifies whether this campaign uses upgraded
	// targeting options. When this field is set to `true`, you can use location
	// and language targeting at the ad group level as opposed to the standard
	// campaign-level targeting.
	UpgradedTargeting bool `json:"upgradedTargeting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpgradedTargeting") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpgradedTargeting") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignDemandGenCampaignSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignDemandGenCampaignSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignDynamicSearchAdsSetting: The
// setting for controlling Dynamic Search Ads (DSA).
type GoogleAdsSearchads360V23ResourcesCampaignDynamicSearchAdsSetting struct {
	// DomainName: Required. The Internet domain name that this setting represents,
	// for example, "google.com" or "www.google.com".
	DomainName string `json:"domainName,omitempty"`
	// LanguageCode: Required. The language code specifying the language of the
	// domain, for example, "en".
	LanguageCode string `json:"languageCode,omitempty"`
	// UseSuppliedUrlsOnly: Whether the campaign uses advertiser supplied URLs
	// exclusively.
	UseSuppliedUrlsOnly bool `json:"useSuppliedUrlsOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DomainName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DomainName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignDynamicSearchAdsSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignDynamicSearchAdsSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignGeoTargetTypeSetting: Represents a
// collection of settings related to ads geotargeting.
type GoogleAdsSearchads360V23ResourcesCampaignGeoTargetTypeSetting struct {
	// NegativeGeoTargetType: The setting used for negative geotargeting in this
	// particular campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "PRESENCE_OR_INTEREST" - Specifies that a user is excluded from seeing the
	// ad if they are in, or show interest in, advertiser's excluded locations.
	//   "PRESENCE" - Specifies that a user is excluded from seeing the ad if they
	// are in advertiser's excluded locations.
	NegativeGeoTargetType string `json:"negativeGeoTargetType,omitempty"`
	// PositiveGeoTargetType: The setting used for positive geotargeting in this
	// particular campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "PRESENCE_OR_INTEREST" - Specifies that an ad is triggered if the user is
	// in, or shows interest in, advertiser's targeted locations.
	//   "SEARCH_INTEREST" - Specifies that an ad is triggered if the user searches
	// for advertiser's targeted locations. This can only be used with Search and
	// standard Shopping campaigns.
	//   "PRESENCE" - Specifies that an ad is triggered if the user is in or
	// regularly in advertiser's targeted locations.
	PositiveGeoTargetType string `json:"positiveGeoTargetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NegativeGeoTargetType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NegativeGeoTargetType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignGeoTargetTypeSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignGeoTargetTypeSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignHotelSettingInfo: Campaign-level
// settings for hotel ads.
type GoogleAdsSearchads360V23ResourcesCampaignHotelSettingInfo struct {
	// HotelCenterId: Output only. The linked Hotel Center account.
	HotelCenterId int64 `json:"hotelCenterId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "HotelCenterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HotelCenterId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignHotelSettingInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignHotelSettingInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignLocalCampaignSetting: Campaign
// setting for local campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignLocalCampaignSetting struct {
	// LocationSourceType: The location source type for this local campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "GOOGLE_MY_BUSINESS" - Locations associated with the customer's linked
	// Business Profile.
	//   "AFFILIATE" - Affiliate (chain) store locations. For example, Best Buy
	// store locations.
	LocationSourceType string `json:"locationSourceType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocationSourceType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocationSourceType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignLocalCampaignSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignLocalCampaignSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignLocalServicesCampaignSettings:
// Settings for LocalServicesCampaign subresource.
type GoogleAdsSearchads360V23ResourcesCampaignLocalServicesCampaignSettings struct {
	// CategoryBids: Categorical level bids associated with MANUAL_CPA bidding
	// strategy.
	CategoryBids []*GoogleAdsSearchads360V23ResourcesCampaignCategoryBid `json:"categoryBids,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryBids") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryBids") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignLocalServicesCampaignSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignLocalServicesCampaignSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignNetworkSettings: The network
// settings for the campaign.
type GoogleAdsSearchads360V23ResourcesCampaignNetworkSettings struct {
	// TargetContentNetwork: Whether ads will be served on specified placements in
	// the Google Display Network. Placements are specified using the Placement
	// criterion.
	TargetContentNetwork bool `json:"targetContentNetwork,omitempty"`
	// TargetGoogleSearch: Whether ads will be served with google.com search
	// results.
	TargetGoogleSearch bool `json:"targetGoogleSearch,omitempty"`
	// TargetGoogleTvNetwork: Whether ads will be served on the Google TV network.
	TargetGoogleTvNetwork bool `json:"targetGoogleTvNetwork,omitempty"`
	// TargetPartnerSearchNetwork: Whether ads will be served on the partner
	// network. This is available only to some select partner accounts. Unless you
	// have been instructed to use this field, it likely does not apply to your
	// account. This does not control whether ads will be served on Google Search
	// Partners Network; use `target_search_network` for that instead.
	TargetPartnerSearchNetwork bool `json:"targetPartnerSearchNetwork,omitempty"`
	// TargetSearchNetwork: Whether ads will be served on sites in the Google
	// Search Partners Network (requires `target_google_search` to also be `true`).
	TargetSearchNetwork bool `json:"targetSearchNetwork,omitempty"`
	// TargetYoutube: Whether ads will be served on YouTube.
	TargetYoutube bool `json:"targetYoutube,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetContentNetwork") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetContentNetwork") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignNetworkSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignNetworkSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignOptimizationGoalSetting:
// Optimization goal setting for this campaign, which includes a set of
// optimization goal types.
type GoogleAdsSearchads360V23ResourcesCampaignOptimizationGoalSetting struct {
	// OptimizationGoalTypes: The list of optimization goal types.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "CALL_CLICKS" - Optimize for call clicks. Call click conversions are times
	// people selected 'Call' to contact a store after viewing an ad.
	//   "DRIVING_DIRECTIONS" - Optimize for driving directions. Driving directions
	// conversions are times people selected 'Get directions' to navigate to a
	// store after viewing an ad.
	//   "APP_PRE_REGISTRATION" - Optimize for pre-registration. Pre-registration
	// conversions are the number of pre-registration signups to receive a
	// notification when the app is released.
	OptimizationGoalTypes []string `json:"optimizationGoalTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OptimizationGoalTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OptimizationGoalTypes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignOptimizationGoalSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignOptimizationGoalSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignPerformanceMaxUpgrade: Information
// about a campaign being upgraded to Performance Max.
type GoogleAdsSearchads360V23ResourcesCampaignPerformanceMaxUpgrade struct {
	// PerformanceMaxCampaign: Output only. The resource name of the Performance
	// Max campaign the campaign is upgraded to.
	PerformanceMaxCampaign string `json:"performanceMaxCampaign,omitempty"`
	// PreUpgradeCampaign: Output only. The resource name of the legacy campaign
	// upgraded to Performance Max.
	PreUpgradeCampaign string `json:"preUpgradeCampaign,omitempty"`
	// Status: Output only. The upgrade status of a campaign requested to be
	// upgraded to Performance Max.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UPGRADE_IN_PROGRESS" - The upgrade to a Performance Max campaign is in
	// progress.
	//   "UPGRADE_COMPLETE" - The upgrade to a Performance Max campaign is
	// complete.
	//   "UPGRADE_FAILED" - The upgrade to a Performance Max campaign failed. The
	// campaign will still serve as it was before upgrade was attempted.
	//   "UPGRADE_ELIGIBLE" - The campaign is eligible for upgrade to a Performance
	// Max campaign.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PerformanceMaxCampaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PerformanceMaxCampaign") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignPerformanceMaxUpgrade) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignPerformanceMaxUpgrade
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettings: Settings for
// Performance Max campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettings struct {
	// BrandTargetingOverrides: Overrides of brand targeting for various ad types.
	BrandTargetingOverrides *GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettingsBrandTargetingOverrides `json:"brandTargetingOverrides,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BrandTargetingOverrides") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BrandTargetingOverrides") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignSelectiveOptimization: Selective
// optimization setting for this campaign, which includes a set of conversion
// actions to optimize this campaign towards. This feature only applies to app
// campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN
// or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.
type GoogleAdsSearchads360V23ResourcesCampaignSelectiveOptimization struct {
	// ConversionActions: The selected set of resource names for conversion actions
	// for optimizing this campaign.
	ConversionActions []string `json:"conversionActions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionActions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignSelectiveOptimization) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignSelectiveOptimization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignShoppingSetting: The setting for
// Shopping campaigns. Defines the universe of products that can be advertised
// by the campaign, and how this campaign interacts with other Shopping
// campaigns.
type GoogleAdsSearchads360V23ResourcesCampaignShoppingSetting struct {
	// AdvertisingPartnerIds: The list of Google Ads accounts IDs of advertising
	// partners cooperating within the campaign. This feature is currently
	// available only for accounts having an advertising partner link. This feature
	// is currently supported only for Performance Max, Shopping, Search and Demand
	// Gen campaign types.
	AdvertisingPartnerIds googleapi.Int64s `json:"advertisingPartnerIds,omitempty"`
	// CampaignPriority: Priority of the campaign. Campaigns with numerically
	// higher priorities take precedence over those with lower priorities. This
	// field is required for Shopping campaigns, with values between 0 and 2,
	// inclusive. This field is optional for Smart Shopping campaigns, but must be
	// equal to 3 if set.
	CampaignPriority int64 `json:"campaignPriority,omitempty"`
	// DisableProductFeed: Disable the optional product feed. This field is
	// currently supported only for Demand Gen campaigns. See
	// https://support.google.com/google-ads/answer/13721750 to learn more about
	// this feature.
	DisableProductFeed bool `json:"disableProductFeed,omitempty"`
	// EnableLocal: Whether to include local products.
	EnableLocal bool `json:"enableLocal,omitempty"`
	// FeedLabel: Feed label of products to include in the campaign. Valid feed
	// labels may contain a maximum of 20 characters including uppercase letters,
	// numbers, hyphens, and underscores. If you previously used the deprecated
	// `sales_country` in the two-letter country code (`XX`) format, the
	// `feed_label` field should be used instead. For more information see the feed
	// label (//support.google.com/merchants/answer/12453549) support article.
	FeedLabel string `json:"feedLabel,omitempty"`
	// MerchantId: ID of the Merchant Center account. This field is required for
	// create operations. This field is immutable for Shopping campaigns.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// UseVehicleInventory: Immutable. Whether to target Vehicle Listing inventory.
	UseVehicleInventory bool `json:"useVehicleInventory,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingPartnerIds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingPartnerIds") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignShoppingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignShoppingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignTrackingSetting: Campaign-level
// settings for tracking information.
type GoogleAdsSearchads360V23ResourcesCampaignTrackingSetting struct {
	// TrackingUrl: Output only. The url used for dynamic tracking.
	TrackingUrl string `json:"trackingUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TrackingUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TrackingUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignTrackingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignTrackingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignTravelCampaignSettings: Settings
// for Travel campaign.
type GoogleAdsSearchads360V23ResourcesCampaignTravelCampaignSettings struct {
	// TravelAccountId: Immutable. The Travel account ID associated with the Travel
	// campaign.
	TravelAccountId int64 `json:"travelAccountId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TravelAccountId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TravelAccountId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignTravelCampaignSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignTravelCampaignSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCampaignVanityPharma: Describes how
// unbranded pharma ads will be displayed.
type GoogleAdsSearchads360V23ResourcesCampaignVanityPharma struct {
	// VanityPharmaDisplayUrlMode: The display mode for vanity pharma URLs.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MANUFACTURER_WEBSITE_URL" - Replace vanity pharma URL with manufacturer
	// website url.
	//   "WEBSITE_DESCRIPTION" - Replace vanity pharma URL with description of the
	// website.
	VanityPharmaDisplayUrlMode string `json:"vanityPharmaDisplayUrlMode,omitempty"`
	// VanityPharmaText: The text that will be displayed in display URL of the text
	// ad when website description is the selected display mode for vanity pharma
	// URLs.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PRESCRIPTION_TREATMENT_WEBSITE_EN" - Prescription treatment website with
	// website content in English.
	//   "PRESCRIPTION_TREATMENT_WEBSITE_ES" - Prescription treatment website with
	// website content in Spanish (Sitio de tratamientos con receta).
	//   "PRESCRIPTION_DEVICE_WEBSITE_EN" - Prescription device website with
	// website content in English.
	//   "PRESCRIPTION_DEVICE_WEBSITE_ES" - Prescription device website with
	// website content in Spanish (Sitio de dispositivos con receta).
	//   "MEDICAL_DEVICE_WEBSITE_EN" - Medical device website with website content
	// in English.
	//   "MEDICAL_DEVICE_WEBSITE_ES" - Medical device website with website content
	// in Spanish (Sitio de dispositivos médicos).
	//   "PREVENTATIVE_TREATMENT_WEBSITE_EN" - Preventative treatment website with
	// website content in English.
	//   "PREVENTATIVE_TREATMENT_WEBSITE_ES" - Preventative treatment website with
	// website content in Spanish (Sitio de tratamientos preventivos).
	//   "PRESCRIPTION_CONTRACEPTION_WEBSITE_EN" - Prescription contraception
	// website with website content in English.
	//   "PRESCRIPTION_CONTRACEPTION_WEBSITE_ES" - Prescription contraception
	// website with website content in Spanish (Sitio de anticonceptivos con
	// receta).
	//   "PRESCRIPTION_VACCINE_WEBSITE_EN" - Prescription vaccine website with
	// website content in English.
	//   "PRESCRIPTION_VACCINE_WEBSITE_ES" - Prescription vaccine website with
	// website content in Spanish (Sitio de vacunas con receta).
	VanityPharmaText string `json:"vanityPharmaText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VanityPharmaDisplayUrlMode")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VanityPharmaDisplayUrlMode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCampaignVanityPharma) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCampaignVanityPharma
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesChangeEventChangedResource: A wrapper proto
// presenting all supported resources. Only the resource of the
// change_resource_type will be set.
type GoogleAdsSearchads360V23ResourcesChangeEventChangedResource struct {
	// Ad: Output only. Set if change_resource_type == AD.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// AdGroup: Output only. Set if change_resource_type == AD_GROUP.
	AdGroup *GoogleAdsSearchads360V23Resources__AdGroup `json:"adGroup,omitempty"`
	// AdGroupAd: Output only. Set if change_resource_type == AD_GROUP_AD.
	AdGroupAd *GoogleAdsSearchads360V23Resources__AdGroupAd `json:"adGroupAd,omitempty"`
	// AdGroupAsset: Output only. Set if change_resource_type == AD_GROUP_ASSET.
	AdGroupAsset *GoogleAdsSearchads360V23Resources__AdGroupAsset `json:"adGroupAsset,omitempty"`
	// AdGroupBidModifier: Output only. Set if change_resource_type ==
	// AD_GROUP_BID_MODIFIER.
	AdGroupBidModifier *GoogleAdsSearchads360V23Resources__AdGroupBidModifier `json:"adGroupBidModifier,omitempty"`
	// AdGroupCriterion: Output only. Set if change_resource_type ==
	// AD_GROUP_CRITERION.
	AdGroupCriterion *GoogleAdsSearchads360V23Resources__AdGroupCriterion `json:"adGroupCriterion,omitempty"`
	// Asset: Output only. Set if change_resource_type == ASSET.
	Asset *GoogleAdsSearchads360V23Resources__Asset `json:"asset,omitempty"`
	// AssetSet: Output only. Set if change_resource_type == ASSET_SET.
	AssetSet *GoogleAdsSearchads360V23Resources__AssetSet `json:"assetSet,omitempty"`
	// AssetSetAsset: Output only. Set if change_resource_type == ASSET_SET_ASSET.
	AssetSetAsset *GoogleAdsSearchads360V23Resources__AssetSetAsset `json:"assetSetAsset,omitempty"`
	// Campaign: Output only. Set if change_resource_type == CAMPAIGN.
	Campaign *GoogleAdsSearchads360V23Resources__Campaign `json:"campaign,omitempty"`
	// CampaignAsset: Output only. Set if change_resource_type == CAMPAIGN_ASSET.
	CampaignAsset *GoogleAdsSearchads360V23Resources__CampaignAsset `json:"campaignAsset,omitempty"`
	// CampaignAssetSet: Output only. Set if change_resource_type ==
	// CAMPAIGN_ASSET_SET.
	CampaignAssetSet *GoogleAdsSearchads360V23Resources__CampaignAssetSet `json:"campaignAssetSet,omitempty"`
	// CampaignBudget: Output only. Set if change_resource_type == CAMPAIGN_BUDGET.
	CampaignBudget *GoogleAdsSearchads360V23Resources__CampaignBudget `json:"campaignBudget,omitempty"`
	// CampaignCriterion: Output only. Set if change_resource_type ==
	// CAMPAIGN_CRITERION.
	CampaignCriterion *GoogleAdsSearchads360V23Resources__CampaignCriterion `json:"campaignCriterion,omitempty"`
	// CustomerAsset: Output only. Set if change_resource_type == CUSTOMER_ASSET.
	CustomerAsset *GoogleAdsSearchads360V23Resources__CustomerAsset `json:"customerAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesChangeEventChangedResource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesChangeEventChangedResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionAttributionModelSettings:
// Settings related to this conversion action's attribution model.
type GoogleAdsSearchads360V23ResourcesConversionActionAttributionModelSettings struct {
	// AttributionModel: The attribution model type of this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXTERNAL" - Uses external attribution.
	//   "GOOGLE_ADS_LAST_CLICK" - Attributes all credit for a conversion to its
	// last click.
	//   "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK" - Attributes all credit for a
	// conversion to its first click using Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_LINEAR" - Attributes credit for a conversion
	// equally across all of its clicks using Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY" - Attributes exponentially more
	// credit for a conversion to its more recent clicks using Google Search
	// attribution (half-life is 1 week).
	//   "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED" - Attributes 40% of the credit
	// for a conversion to its first and last clicks. Remaining 20% is evenly
	// distributed across all other clicks. This uses Google Search attribution.
	//   "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" - Flexible model that uses machine
	// learning to determine the appropriate distribution of credit among clicks
	// using Google Search attribution.
	AttributionModel string `json:"attributionModel,omitempty"`
	// DataDrivenModelStatus: Output only. The status of the data-driven
	// attribution model for the conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AVAILABLE" - The data driven model is available.
	//   "STALE" - The data driven model is stale. It hasn't been updated for at
	// least 7 days. It is still being used, but will become expired if it does not
	// get updated for 30 days.
	//   "EXPIRED" - The data driven model expired. It hasn't been updated for at
	// least 30 days and cannot be used. Most commonly this is because there hasn't
	// been the required number of events in a recent 30-day period.
	//   "NEVER_GENERATED" - The data driven model has never been generated. Most
	// commonly this is because there has never been the required number of events
	// in any 30-day period.
	DataDrivenModelStatus string `json:"dataDrivenModelStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributionModel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributionModel") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionAttributionModelSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionAttributionModelSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionFirebaseSettings: Settings
// related to a Firebase conversion action.
type GoogleAdsSearchads360V23ResourcesConversionActionFirebaseSettings struct {
	// EventName: Output only. The event name of a Firebase conversion.
	EventName string `json:"eventName,omitempty"`
	// ProjectId: Output only. The Firebase project ID of the conversion.
	ProjectId string `json:"projectId,omitempty"`
	// PropertyId: Output only. The GA property ID of the conversion.
	PropertyId int64 `json:"propertyId,omitempty,string"`
	// PropertyName: Output only. The GA property name of the conversion.
	PropertyName string `json:"propertyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionFirebaseSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionFirebaseSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionFloodlightSettings:
// Settings related to a Floodlight conversion action.
type GoogleAdsSearchads360V23ResourcesConversionActionFloodlightSettings struct {
	// ActivityGroupTag: Output only. String used to identify a Floodlight activity
	// group when reporting conversions.
	ActivityGroupTag string `json:"activityGroupTag,omitempty"`
	// ActivityId: Output only. ID of the Floodlight activity in DoubleClick
	// Campaign Manager (DCM).
	ActivityId int64 `json:"activityId,omitempty,string"`
	// ActivityTag: Output only. String used to identify a Floodlight activity when
	// reporting conversions.
	ActivityTag string `json:"activityTag,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActivityGroupTag") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActivityGroupTag") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionFloodlightSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionFloodlightSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionGoogleAnalytics4Settings:
// Settings related to a Google Analytics 4 conversion action.
type GoogleAdsSearchads360V23ResourcesConversionActionGoogleAnalytics4Settings struct {
	// EventName: Output only. The name of the GA 4 event.
	EventName string `json:"eventName,omitempty"`
	// PropertyId: Output only. The ID of the GA 4 property.
	PropertyId int64 `json:"propertyId,omitempty,string"`
	// PropertyName: Output only. The name of the GA 4 property.
	PropertyName string `json:"propertyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionGoogleAnalytics4Settings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionGoogleAnalytics4Settings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionThirdPartyAppAnalyticsSettin
// gs: Settings related to a third party app analytics conversion action.
type GoogleAdsSearchads360V23ResourcesConversionActionThirdPartyAppAnalyticsSettings struct {
	// EventName: Output only. The event name of a third-party app analytics
	// conversion.
	EventName string `json:"eventName,omitempty"`
	// ProviderName: Output only. Name of the third-party app analytics provider.
	ProviderName string `json:"providerName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EventName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EventName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionThirdPartyAppAnalyticsSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionThirdPartyAppAnalyticsSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionActionValueSettings: Settings
// related to the value for conversion events associated with this conversion
// action.
type GoogleAdsSearchads360V23ResourcesConversionActionValueSettings struct {
	// AlwaysUseDefaultValue: Controls whether the default value and default
	// currency code are used in place of the value and currency code specified in
	// conversion events for this conversion action.
	AlwaysUseDefaultValue bool `json:"alwaysUseDefaultValue,omitempty"`
	// DefaultCurrencyCode: The currency code to use when conversion events for
	// this conversion action are sent with an invalid or missing currency code, or
	// when this conversion action is configured to always use the default value.
	DefaultCurrencyCode string `json:"defaultCurrencyCode,omitempty"`
	// DefaultValue: The value to use when conversion events for this conversion
	// action are sent with an invalid, disallowed or missing value, or when this
	// conversion action is configured to always use the default value.
	DefaultValue float64 `json:"defaultValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlwaysUseDefaultValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlwaysUseDefaultValue") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionActionValueSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionValueSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesConversionActionValueSettings) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionActionValueSettings
	var s1 struct {
		DefaultValue gensupport.JSONFloat64 `json:"defaultValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DefaultValue = float64(s1.DefaultValue)
	return nil
}

// GoogleAdsSearchads360V23ResourcesConversionCustomVariableFloodlightConversion
// CustomVariableInfo: Information for Search Ads 360 Floodlight Conversion
// Custom Variables.
type GoogleAdsSearchads360V23ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo struct {
	// FloodlightVariableDataType: Output only. Floodlight variable data type
	// defined in Search Ads 360.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NUMBER" - Represents a floodlight variable of "Number" type. This
	// variable may be assigned to floodlight variables of DIMENSION or METRIC
	// types.
	//   "STRING" - Represents a floodlight variable of "String" type. This
	// variable may be assigned to floodlight variables of DIMENSION type.
	FloodlightVariableDataType string `json:"floodlightVariableDataType,omitempty"`
	// FloodlightVariableType: Output only. Floodlight variable type defined in
	// Search Ads 360.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DIMENSION" - Dimension floodlight variable type.
	//   "METRIC" - Metric floodlight variable type.
	//   "UNSET" - Floodlight variable type is unset.
	FloodlightVariableType string `json:"floodlightVariableType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FloodlightVariableDataType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FloodlightVariableDataType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction: Action
// applied when rule is applied.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction struct {
	// Operation: Specifies applied operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADD" - Add provided value to conversion value.
	//   "MULTIPLY" - Multiply conversion value by provided value.
	//   "SET" - Set conversion value to provided value.
	Operation string `json:"operation,omitempty"`
	// Value: Specifies applied value.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction
	var s1 struct {
		Value gensupport.JSONFloat64 `json:"value"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Value = float64(s1.Value)
	return nil
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAudienceConditio
// n: Condition on Audience dimension.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAudienceCondition struct {
	// UserInterests: User Interests.
	UserInterests []string `json:"userInterests,omitempty"`
	// UserLists: User Lists.
	UserLists []string `json:"userLists,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterests") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterests") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAudienceCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAudienceCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleDeviceCondition:
//
//	Condition on Device dimension.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleDeviceCondition struct {
	// DeviceTypes: Value for device type condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MOBILE" - Mobile device.
	//   "DESKTOP" - Desktop device.
	//   "TABLET" - Tablet device.
	DeviceTypes []string `json:"deviceTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeviceTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeviceTypes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleDeviceCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleDeviceCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleGeoLocationCondi
// tion: Condition on Geo dimension.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleGeoLocationCondition struct {
	// ExcludedGeoMatchType: Excluded Geo location match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANY" - Either Area of Interest or Location of Presence can be used to
	// match.
	//   "LOCATION_OF_PRESENCE" - Only Location of Presence can be used to match.
	ExcludedGeoMatchType string `json:"excludedGeoMatchType,omitempty"`
	// ExcludedGeoTargetConstants: Geo locations that advertisers want to exclude.
	ExcludedGeoTargetConstants []string `json:"excludedGeoTargetConstants,omitempty"`
	// GeoMatchType: Included Geo location match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANY" - Either Area of Interest or Location of Presence can be used to
	// match.
	//   "LOCATION_OF_PRESENCE" - Only Location of Presence can be used to match.
	GeoMatchType string `json:"geoMatchType,omitempty"`
	// GeoTargetConstants: Geo locations that advertisers want to include.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExcludedGeoMatchType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExcludedGeoMatchType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleGeoLocationCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleGeoLocationCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryAdvance
// BookingWindow: Range for the number of days between the date of the booking
// and the start of the itinerary.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryAdvanceBookingWindow struct {
	// MaxDays: Maximum number of days between the date of the booking the start
	// date.
	MaxDays int64 `json:"maxDays,omitempty"`
	// MinDays: Minimum number of days between the date of the booking the start
	// date.
	MinDays int64 `json:"minDays,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxDays") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxDays") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryAdvanceBookingWindow) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryAdvanceBookingWindow
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryConditi
// on: Condition on Itinerary dimension.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryCondition struct {
	// AdvanceBookingWindow: Range for the number of days between the date of the
	// booking and the start of the itinerary.
	AdvanceBookingWindow *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryAdvanceBookingWindow `json:"advanceBookingWindow,omitempty"`
	// TravelLength: Range for the itinerary length in number of nights.
	TravelLength *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelLength `json:"travelLength,omitempty"`
	// TravelStartDay: The days of the week on which this itinerary's travel can
	// start.
	TravelStartDay *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelStartDay `json:"travelStartDay,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvanceBookingWindow") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvanceBookingWindow") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelL
// ength: Range for the itinerary length in number of nights.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelLength struct {
	// MaxNights: Maximum number of days between the start date and the end date.
	MaxNights int64 `json:"maxNights,omitempty"`
	// MinNights: Minimum number of nights between the start date and the end date.
	MinNights int64 `json:"minNights,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxNights") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxNights") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelLength) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelLength
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelS
// tartDay: The days of the week on which an itinerary's travel can start.
type GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelStartDay struct {
	// Friday: The travel can start on Friday.
	Friday bool `json:"friday,omitempty"`
	// Monday: The travel can start on Monday.
	Monday bool `json:"monday,omitempty"`
	// Saturday: The travel can start on Saturday.
	Saturday bool `json:"saturday,omitempty"`
	// Sunday: The travel can start on Sunday.
	Sunday bool `json:"sunday,omitempty"`
	// Thursday: The travel can start on Thursday.
	Thursday bool `json:"thursday,omitempty"`
	// Tuesday: The travel can start on Tuesday.
	Tuesday bool `json:"tuesday,omitempty"`
	// Wednesday: The travel can start on Wednesday.
	Wednesday bool `json:"wednesday,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Friday") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Friday") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelStartDay) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryTravelStartDay
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaEventEventOccurrenceRange: Defines a range for
// event counter values.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventEventOccurrenceRange struct {
	// MaxEventCount: Output only. For event counter ranges, the maximum of the
	// defined range. A value of 0 will be treated as unset.
	MaxEventCount int64 `json:"maxEventCount,omitempty,string"`
	// MinEventCount: Output only. For event counter ranges, the minimum of the
	// defined range. A value of 0 will be treated as unset.
	MinEventCount int64 `json:"minEventCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MaxEventCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxEventCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventEventOccurrenceRange) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventEventOccurrenceRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaEventRevenueRange: Defines a range for revenue
// values.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange struct {
	// MaxEventRevenue: Output only. For revenue ranges, the maximum value in
	// `currency_code` for which this conversion value would be updated. A value of
	// 0 will be treated as unset.
	MaxEventRevenue float64 `json:"maxEventRevenue,omitempty"`
	// MinEventRevenue: Output only. For revenue ranges, the minimum value in
	// `currency_code` for which this conversion value would be updated. A value of
	// 0 will be treated as unset.
	MinEventRevenue float64 `json:"minEventRevenue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxEventRevenue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxEventRevenue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange
	var s1 struct {
		MaxEventRevenue gensupport.JSONFloat64 `json:"maxEventRevenue"`
		MinEventRevenue gensupport.JSONFloat64 `json:"minEventRevenue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.MaxEventRevenue = float64(s1.MaxEventRevenue)
	s.MinEventRevenue = float64(s1.MinEventRevenue)
	return nil
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaCoarseGrainedConversionValueMappings: Mappings
// for coarse grained conversion values.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaCoarseGrainedConversionValueMappings struct {
	// HighConversionValueMapping: Output only. Mapping for "high" coarse
	// conversion value.
	HighConversionValueMapping *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping `json:"highConversionValueMapping,omitempty"`
	// LowConversionValueMapping: Output only. Mapping for "low" coarse conversion
	// value.
	LowConversionValueMapping *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping `json:"lowConversionValueMapping,omitempty"`
	// MediumConversionValueMapping: Output only. Mapping for "medium" coarse
	// conversion value.
	MediumConversionValueMapping *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping `json:"mediumConversionValueMapping,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HighConversionValueMapping")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighConversionValueMapping") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaCoarseGrainedConversionValueMappings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaCoarseGrainedConversionValueMappings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaConversionValueMapping: Represents mapping from
// one conversion value to one or more conversion events.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping struct {
	// MappedEvents: Output only. The conversion value may be mapped to multiple
	// events with various attributes.
	MappedEvents []*GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent `json:"mappedEvents,omitempty"`
	// MaxTimePostInstallHours: Output only. The maximum of the time range in which
	// a user was last active during the measurement window.
	MaxTimePostInstallHours int64 `json:"maxTimePostInstallHours,omitempty,string"`
	// MinTimePostInstallHours: Output only. The minimum of the time range in which
	// a user was last active during the measurement window.
	MinTimePostInstallHours int64 `json:"minTimePostInstallHours,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MappedEvents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MappedEvents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaEvent: Defines a Google conversion event that
// the conversion value is mapped to.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent struct {
	// CurrencyCode: Output only. The reported currency for the event_revenue. ISO
	// 4217 three-letter currency code, for example, "USD"
	CurrencyCode string `json:"currencyCode,omitempty"`
	// EventCounter: Output only. For specific event counter values.
	EventCounter int64 `json:"eventCounter,omitempty,string"`
	// EventOccurrenceRange: Output only. The event counter range.
	EventOccurrenceRange *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventEventOccurrenceRange `json:"eventOccurrenceRange,omitempty"`
	// EventRevenueRange: Output only. The event revenue range.
	EventRevenueRange *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEventRevenueRange `json:"eventRevenueRange,omitempty"`
	// EventRevenueValue: Output only. The specific event revenue value.
	EventRevenueValue float64 `json:"eventRevenueValue,omitempty"`
	// MappedEventName: Output only. Google event name represented by this
	// conversion value.
	MappedEventName string `json:"mappedEventName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaEvent
	var s1 struct {
		EventRevenueValue gensupport.JSONFloat64 `json:"eventRevenueValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.EventRevenueValue = float64(s1.EventRevenueValue)
	return nil
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaFineGrainedConversionValueMappings: Mappings for
// fine grained conversion value.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaFineGrainedConversionValueMappings struct {
	// ConversionValueMapping: Output only. Conversion events the fine grained
	// conversion value maps to.
	ConversionValueMapping *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaConversionValueMapping `json:"conversionValueMapping,omitempty"`
	// FineGrainedConversionValue: Output only. Fine grained conversion value.
	// Valid values are in the inclusive range [0,63].
	FineGrainedConversionValue int64 `json:"fineGrainedConversionValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionValueMapping") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionValueMapping") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaFineGrainedConversionValueMappings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaFineGrainedConversionValueMappings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchemaPostbackMapping: Mappings for each postback in
// multiple conversion windows.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaPostbackMapping struct {
	// CoarseGrainedConversionValueMappings: Output only. Conversion value mappings
	// for all coarse grained conversion values.
	CoarseGrainedConversionValueMappings *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaCoarseGrainedConversionValueMappings `json:"coarseGrainedConversionValueMappings,omitempty"`
	// LockWindowCoarseConversionValue: Output only. Coarse grained conversion
	// value that triggers conversion window lock.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "UNAVAILABLE" - The value was not present in the postback or we do not
	// have this data for other reasons.
	//   "LOW" - A low coarse conversion value.
	//   "MEDIUM" - A medium coarse conversion value.
	//   "HIGH" - A high coarse conversion value.
	//   "NONE" - A coarse conversion value was not configured.
	LockWindowCoarseConversionValue string `json:"lockWindowCoarseConversionValue,omitempty"`
	// LockWindowEvent: Output only. Event name that triggers conversion window
	// lock.
	LockWindowEvent string `json:"lockWindowEvent,omitempty"`
	// LockWindowFineConversionValue: Output only. Fine grained conversion value
	// that triggers conversion window lock.
	LockWindowFineConversionValue int64 `json:"lockWindowFineConversionValue,omitempty"`
	// PostbackSequenceIndex: Output only. 0-based index that indicates the order
	// of postback. Valid values are in the inclusive range [0,2].
	PostbackSequenceIndex int64 `json:"postbackSequenceIndex,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CoarseGrainedConversionValueMappings") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "CoarseGrainedConversionValueMappings") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaPostbackMapping) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaPostbackMapping
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAd
// NetworkConversionValueSchema: The CustomerLink specific
// SkAdNetworkConversionValueSchema.
type GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema struct {
	// AppId: Required. Output only. Apple App Store app ID.
	AppId string `json:"appId,omitempty"`
	// FineGrainedConversionValueMappings: Output only. Fine grained conversion
	// value mappings.
	FineGrainedConversionValueMappings []*GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaFineGrainedConversionValueMappings `json:"fineGrainedConversionValueMappings,omitempty"`
	// MeasurementWindowHours: Output only. A time window (measured in hours)
	// post-install, after which the App Attribution Partner or advertiser stops
	// calling [updateConversionValue]
	// (https://developer.apple.com/documentation/storekit/skadnetwork/3566697-updateconversionvalue).
	MeasurementWindowHours int64 `json:"measurementWindowHours,omitempty"`
	// PostbackMappings: Output only. Per-postback conversion value mappings for
	// postbacks in multiple conversion windows. Only applicable for SkAdNetwork
	// versions >= 4.0.
	PostbackMappings []*GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchemaPostbackMapping `json:"postbackMappings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo: Holds the
// details of an asset within an asset group for an Optimize Assets experiment
// arm.
type GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo struct {
	// Asset: Asset resource name of the asset group asset.
	Asset string `json:"asset,omitempty"`
	// FieldType: Field type of the asset group asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo: Holds the
// asset groups included in an arm of an Optimize Assets experiment.
type GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo struct {
	// AssetGroup: Asset group resource name.
	AssetGroup string `json:"assetGroup,omitempty"`
	// AssetGroupAssets: List of asset group assets under the asset group.
	AssetGroupAssets []*GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo `json:"assetGroupAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceAccountBudgetSummary: Represents a
// summarized account budget billable cost.
type GoogleAdsSearchads360V23ResourcesInvoiceAccountBudgetSummary struct {
	// AccountBudget: Output only. The resource name of the account budget
	// associated with this summarized billable cost. AccountBudget resource names
	// have the form: `customers/{customer_id}/accountBudgets/{account_budget_id}`
	AccountBudget string `json:"accountBudget,omitempty"`
	// AccountBudgetName: Output only. The name of the account budget. It appears
	// on the invoice PDF as "Account budget".
	AccountBudgetName string `json:"accountBudgetName,omitempty"`
	// BillableActivityDateRange: Output only. The billable activity date range of
	// the account budget, within the service date range of this invoice. The end
	// date is inclusive. This can be different from the account budget's start and
	// end time.
	BillableActivityDateRange *GoogleAdsSearchads360V23Common__DateRange `json:"billableActivityDateRange,omitempty"`
	// BilledAmountMicros: Output only. The pretax billed amount attributable to
	// this budget during the service period, in micros. This does not account for
	// any adjustments.
	BilledAmountMicros int64 `json:"billedAmountMicros,omitempty,string"`
	// CampaignSummaries: Output only. The list of summarized campaign level
	// information associated with this account budget.
	CampaignSummaries []*GoogleAdsSearchads360V23ResourcesInvoiceCampaignSummary `json:"campaignSummaries,omitempty"`
	// Customer: Output only. The resource name of the customer associated with
	// this account budget. This contains the customer ID, which appears on the
	// invoice PDF as "Account ID". Customer resource names have the form:
	// `customers/{customer_id}`
	Customer string `json:"customer,omitempty"`
	// CustomerDescriptiveName: Output only. The descriptive name of the account
	// budget's customer. It appears on the invoice PDF as "Account".
	CustomerDescriptiveName string `json:"customerDescriptiveName,omitempty"`
	// InvalidActivityAmountMicros: Output only. The pretax invalid activity amount
	// attributable to this budget in previous months, in micros (negative value).
	InvalidActivityAmountMicros int64 `json:"invalidActivityAmountMicros,omitempty,string"`
	// InvalidActivitySummaries: Output only. The list of summarized invalid
	// activity credits with original linkages.
	InvalidActivitySummaries []*GoogleAdsSearchads360V23ResourcesInvoiceInvalidActivitySummary `json:"invalidActivitySummaries,omitempty"`
	// OverdeliveryAmountMicros: Output only. The pretax overdelivery amount
	// attributable to this budget during the service period, in micros (negative
	// value).
	OverdeliveryAmountMicros int64 `json:"overdeliveryAmountMicros,omitempty,string"`
	// PurchaseOrderNumber: Output only. The purchase order number of the account
	// budget. It appears on the invoice PDF as "Purchase order".
	PurchaseOrderNumber string `json:"purchaseOrderNumber,omitempty"`
	// ServedAmountMicros: Output only. The pretax served amount attributable to
	// this budget during the service period, in micros. This is only useful to
	// reconcile invoice and delivery data.
	ServedAmountMicros int64 `json:"servedAmountMicros,omitempty,string"`
	// SubtotalAmountMicros: Output only. The pretax subtotal amount attributable
	// to this budget during the service period, in micros.
	SubtotalAmountMicros int64 `json:"subtotalAmountMicros,omitempty,string"`
	// TaxAmountMicros: Output only. The tax amount attributable to this budget
	// during the service period, in micros.
	TaxAmountMicros int64 `json:"taxAmountMicros,omitempty,string"`
	// TotalAmountMicros: Output only. The total amount attributable to this budget
	// during the service period, in micros. This equals the sum of the account
	// budget subtotal amount and the account budget tax amount.
	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AccountBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountBudget") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceAccountBudgetSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceAccountBudgetSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceAccountSummary: Represents a
// summarized view at account level.
type GoogleAdsSearchads360V23ResourcesInvoiceAccountSummary struct {
	// AdjustmentSummaries: Output only. The list of adjustment information
	// associated with this account.
	AdjustmentSummaries []*GoogleAdsSearchads360V23ResourcesInvoiceAdjustmentSummary `json:"adjustmentSummaries,omitempty"`
	// BillingCorrectionSubtotalAmountMicros: Output only. Pretax billing
	// correction subtotal amount, in micros.
	BillingCorrectionSubtotalAmountMicros int64 `json:"billingCorrectionSubtotalAmountMicros,omitempty,string"`
	// BillingCorrectionTaxAmountMicros: Output only. Tax on billing correction, in
	// micros.
	BillingCorrectionTaxAmountMicros int64 `json:"billingCorrectionTaxAmountMicros,omitempty,string"`
	// BillingCorrectionTotalAmountMicros: Output only. Total billing correction
	// amount, in micros.
	BillingCorrectionTotalAmountMicros int64 `json:"billingCorrectionTotalAmountMicros,omitempty,string"`
	// CouponAdjustmentSubtotalAmountMicros: Output only. Pretax coupon adjustment
	// subtotal amount, in micros.
	CouponAdjustmentSubtotalAmountMicros int64 `json:"couponAdjustmentSubtotalAmountMicros,omitempty,string"`
	// CouponAdjustmentTaxAmountMicros: Output only. Tax on coupon adjustment, in
	// micros.
	CouponAdjustmentTaxAmountMicros int64 `json:"couponAdjustmentTaxAmountMicros,omitempty,string"`
	// CouponAdjustmentTotalAmountMicros: Output only. Total coupon adjustment
	// amount, in micros.
	CouponAdjustmentTotalAmountMicros int64 `json:"couponAdjustmentTotalAmountMicros,omitempty,string"`
	// Customer: Output only. The account associated with the account summary.
	Customer string `json:"customer,omitempty"`
	// ExcessCreditAdjustmentSubtotalAmountMicros: Output only. Pretax excess
	// credit adjustment subtotal amount, in micros.
	ExcessCreditAdjustmentSubtotalAmountMicros int64 `json:"excessCreditAdjustmentSubtotalAmountMicros,omitempty,string"`
	// ExcessCreditAdjustmentTaxAmountMicros: Output only. Tax on excess credit
	// adjustment, in micros.
	ExcessCreditAdjustmentTaxAmountMicros int64 `json:"excessCreditAdjustmentTaxAmountMicros,omitempty,string"`
	// ExcessCreditAdjustmentTotalAmountMicros: Output only. Total excess credit
	// adjustment amount, in micros.
	ExcessCreditAdjustmentTotalAmountMicros int64 `json:"excessCreditAdjustmentTotalAmountMicros,omitempty,string"`
	// ExportChargeSubtotalAmountMicros: Output only. Pretax export charge subtotal
	// amount, in micros.
	ExportChargeSubtotalAmountMicros int64 `json:"exportChargeSubtotalAmountMicros,omitempty,string"`
	// ExportChargeTaxAmountMicros: Output only. Tax on export charge, in micros.
	ExportChargeTaxAmountMicros int64 `json:"exportChargeTaxAmountMicros,omitempty,string"`
	// ExportChargeTotalAmountMicros: Output only. Total export charge amount, in
	// micros.
	ExportChargeTotalAmountMicros int64 `json:"exportChargeTotalAmountMicros,omitempty,string"`
	// RegulatoryCostSummaries: Output only. The list of regulatory cost
	// information associated with this account.
	RegulatoryCostSummaries []*GoogleAdsSearchads360V23ResourcesInvoiceRegulatoryCostSummary `json:"regulatoryCostSummaries,omitempty"`
	// RegulatoryCostsSubtotalAmountMicros: Output only. Pretax regulatory costs
	// subtotal amount, in micros.
	RegulatoryCostsSubtotalAmountMicros int64 `json:"regulatoryCostsSubtotalAmountMicros,omitempty,string"`
	// RegulatoryCostsTaxAmountMicros: Output only. Tax on regulatory costs, in
	// micros.
	RegulatoryCostsTaxAmountMicros int64 `json:"regulatoryCostsTaxAmountMicros,omitempty,string"`
	// RegulatoryCostsTotalAmountMicros: Output only. Total regulatory costs
	// amount, in micros.
	RegulatoryCostsTotalAmountMicros int64 `json:"regulatoryCostsTotalAmountMicros,omitempty,string"`
	// SubtotalAmountMicros: Output only. Total pretax subtotal amount attributable
	// to the account during the service period, in micros.
	SubtotalAmountMicros int64 `json:"subtotalAmountMicros,omitempty,string"`
	// TaxAmountMicros: Output only. Total tax amount attributable to the account
	// during the service period, in micros.
	TaxAmountMicros int64 `json:"taxAmountMicros,omitempty,string"`
	// TotalAmountMicros: Output only. Total amount attributable to the account
	// during the service period, in micros. This equals the sum of the
	// subtotal_amount_micros and tax_amount_micros.
	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdjustmentSummaries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdjustmentSummaries") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceAccountSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceAccountSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceAdjustmentSummary: Represents
// adjustment information associated with an account.
type GoogleAdsSearchads360V23ResourcesInvoiceAdjustmentSummary struct {
	// AdjustmentDescription: Output only. The description of the adjustment.
	// Example: Incentive Adjustment, discount.
	AdjustmentDescription string `json:"adjustmentDescription,omitempty"`
	// AmountMicros: Output only. The amount of the adjustment, in micros. The
	// currency code for this amount is the same as the Invoice.currency_code.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdjustmentDescription") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdjustmentDescription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceAdjustmentSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceAdjustmentSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceCampaignSummary: Represents campaign
// level billable cost information associated with an account budget.
type GoogleAdsSearchads360V23ResourcesInvoiceCampaignSummary struct {
	// AmountMicros: Output only. The amount attributable to this campaign for the
	// given unit of measure during the service period, in micros. The currency
	// code for this amount is the same as the Invoice.currency_code.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// CampaignDescription: Output only. The description of the campaign. This is
	// generally the same as the campaign name, but may differ.
	CampaignDescription string `json:"campaignDescription,omitempty"`
	// Quantity: Output only. The quantity served for the given unit of measure.
	Quantity int64 `json:"quantity,omitempty,string"`
	// UnitOfMeasure: Output only. The unit of measure for the quantity served.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLICKS" - Clicks as unit of measure.
	//   "IMPRESSIONS" - Impressions as unit of measure.
	//   "ACQUISITIONS" - Acquisitions as unit of measure.
	//   "PHONE_CALLS" - Phone calls as unit of measure.
	//   "VIDEO_PLAYS" - Video plays as unit of measure.
	//   "DAYS" - Days as unit of measure.
	//   "AUDIO_PLAYS" - Audio plays as unit of measure.
	//   "ENGAGEMENTS" - Engagements as unit of measure.
	//   "SECONDS" - Seconds as unit of measure.
	//   "LEADS" - Leads as unit of measure.
	//   "GUEST_STAYS" - Guest stays as unit of measure.
	//   "HOURS" - Hours as unit of measure.
	UnitOfMeasure string `json:"unitOfMeasure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceCampaignSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceCampaignSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceInvalidActivitySummary: Details
// about the invalid activity for the invoice that contain additional details
// about invoice against which corrections are made.
type GoogleAdsSearchads360V23ResourcesInvoiceInvalidActivitySummary struct {
	// AmountMicros: Output only. Invalid activity amount in micros.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// OriginalAccountBudgetName: Output only. Original account budget name related
	// to this invalid activity credit.
	OriginalAccountBudgetName string `json:"originalAccountBudgetName,omitempty"`
	// OriginalInvoiceId: Output only. Original invoice number related to this
	// invalid activity credit.
	OriginalInvoiceId string `json:"originalInvoiceId,omitempty"`
	// OriginalMonthOfService: Output only. Original month of service related to
	// this invalid activity credit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "JANUARY" - January.
	//   "FEBRUARY" - February.
	//   "MARCH" - March.
	//   "APRIL" - April.
	//   "MAY" - May.
	//   "JUNE" - June.
	//   "JULY" - July.
	//   "AUGUST" - August.
	//   "SEPTEMBER" - September.
	//   "OCTOBER" - October.
	//   "NOVEMBER" - November.
	//   "DECEMBER" - December.
	OriginalMonthOfService string `json:"originalMonthOfService,omitempty"`
	// OriginalPurchaseOrderNumber: Output only. Original purchase order number
	// related to this invalid activity credit.
	OriginalPurchaseOrderNumber string `json:"originalPurchaseOrderNumber,omitempty"`
	// OriginalYearOfService: Output only. Original year of service related to this
	// invalid activity credit.
	OriginalYearOfService string `json:"originalYearOfService,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceInvalidActivitySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceInvalidActivitySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesInvoiceRegulatoryCostSummary: Represents
// regulatory cost information associated with an account.
type GoogleAdsSearchads360V23ResourcesInvoiceRegulatoryCostSummary struct {
	// AmountMicros: Output only. The amount of the regulatory fee, in micros. The
	// currency code for this amount is the same as the Invoice.currency_code.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// RegulatoryFeeType: Output only. The type of regulatory fee.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AUSTRIA_DST_FEE" - Represents Austria DST fee.
	//   "TURKIYE_REGULATORY_OPERATING_COST" - Represents Türkiye regulatory
	// operating cost.
	//   "UK_DST_FEE" - Represents UK DST fee.
	//   "SPAIN_REGULATORY_OPERATING_COST" - Represents Spain regulatory operating
	// cost.
	//   "FRANCE_REGULATORY_OPERATING_COST" - Represents France regulatory
	// operating cost.
	//   "ITALY_REGULATORY_OPERATING_COST" - Represents Italy regulatory operating
	// cost.
	//   "INDIA_REGULATORY_OPERATING_COST" - Represents India regulatory operating
	// cost.
	//   "POLAND_REGULATORY_OPERATING_COST" - Represents Poland regulatory
	// operating cost.
	//   "OPERATING_CHARGES" - Represents operating charges.
	//   "CANADA_DST_FEE" - Represents Canada DST fee.
	RegulatoryFeeType string `json:"regulatoryFeeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesInvoiceRegulatoryCostSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesInvoiceRegulatoryCostSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductBrand:
// Brand of the product.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductBrand struct {
	// Value: String value of the product brand.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductBrand) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductBrand
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCategory:
// One element of a category at a certain level. Top-level categories are at
// level 1, their children at level 2, and so on. We currently support up to 5
// levels. The user must specify a dimension type that indicates the level of
// the category. All cases of the same subdivision must have the same dimension
// type (category level).
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCategory struct {
	// CategoryId: ID of the product category. This ID is equivalent to the
	// google_product_category ID as described in this article:
	// https://support.google.com/merchants/answer/6324436
	CategoryId int64 `json:"categoryId,omitempty,string"`
	// Level: Indicates the level of the category in the taxonomy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCategory) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCategory
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductChannel:
// Locality of a product offer.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductChannel struct {
	// Channel: Value of the locality.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	Channel string `json:"channel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Channel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductChannel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductChannel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCondition:
//
//	Condition of a product offer.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCondition struct {
	// Condition: Value of the condition.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Condition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Condition") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCustomAttr
// ibute: Custom attribute of a product offer.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCustomAttribute struct {
	// Index: Indicates the index of the custom attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INDEX0" - First listing group filter custom attribute.
	//   "INDEX1" - Second listing group filter custom attribute.
	//   "INDEX2" - Third listing group filter custom attribute.
	//   "INDEX3" - Fourth listing group filter custom attribute.
	//   "INDEX4" - Fifth listing group filter custom attribute.
	Index string `json:"index,omitempty"`
	// Value: String value of the product custom attribute.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Index") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Index") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCustomAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCustomAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductItemId:
// Item id of a product offer.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductItemId struct {
	// Value: Value of the id.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Value") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Value") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductItemId) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductItemId
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductType:
// Type of a product offer.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductType struct {
	// Level: Level of the type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// Value: Value of the type.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Level") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Level") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpage: Filters
// for URLs in a page feed and URLs from the advertiser web domain. Several
// root nodes with this dimension are allowed in an asset group and their
// conditions are considered in OR.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpage struct {
	// Conditions: The webpage conditions are case sensitive and these are and-ed
	// together when evaluated for filtering. All the conditions should be of same
	// type. Example1: for URL1 = www.ads.google.com?ocid=1&euid=2 and URL2 =
	// www.ads.google.com?ocid=1 and with "ocid" and "euid" as url_contains
	// conditions, URL1 will be matched, but URL2 not. Example2 : If URL1 has
	// Label1, Label2 and URL2 has Label2, Label3, then with Label1 and Label2 as
	// custom_label conditions, URL1 will be matched but not URL2. With Label2 as
	// the only custom_label condition then both URL1 and URL2 will be matched.
	Conditions []*GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpageCondition `json:"conditions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Conditions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conditions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpageCondition:
//
//	Matching condition for URL filtering.
type GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpageCondition struct {
	// CustomLabel: Filters the URLs in a page feed that have this custom label. A
	// custom label can be added to a campaign by creating an AssetSet of type
	// PAGE_FEED and linking it to the campaign using CampaignAssetSet.
	CustomLabel string `json:"customLabel,omitempty"`
	// UrlContains: Filters the URLs in a page feed and the URLs from the
	// advertiser web domain that contain this string.
	UrlContains string `json:"urlContains,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpageCondition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpageCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesProductCategoryConstantProductCategoryLocali
// zation: Localization for the product category.
type GoogleAdsSearchads360V23ResourcesProductCategoryConstantProductCategoryLocalization struct {
	// LanguageCode: Output only. Two-letter ISO 639-1 language code of the
	// localized category.
	LanguageCode string `json:"languageCode,omitempty"`
	// RegionCode: Output only. Upper-case two-letter ISO 3166-1 country code of
	// the localized category.
	RegionCode string `json:"regionCode,omitempty"`
	// Value: Output only. The name of the category in the specified locale.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesProductCategoryConstantProductCategoryLocalization) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesProductCategoryConstantProductCategoryLocalization
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCa
// mpaignBudgetRecommendationOption: The impact estimates for a given budget
// amount.
type GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption struct {
	// BudgetAmountMicros: Output only. The budget amount for this option.
	BudgetAmountMicros int64 `json:"budgetAmountMicros,omitempty,string"`
	// Impact: Output only. The impact estimate if budget is changed to amount
	// specified in this option.
	Impact *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact `json:"impact,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BudgetAmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetAmountMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTer
// m: Information about a search term as related to a keyword recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm struct {
	// EstimatedWeeklySearchCount: Output only. Estimated number of historical
	// weekly searches for this search term.
	EstimatedWeeklySearchCount int64 `json:"estimatedWeeklySearchCount,omitempty,string"`
	// Text: Output only. The text of the search term.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EstimatedWeeklySearchCount")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EstimatedWeeklySearchCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTa
// rgetCpaOptInRecommendationOption: The Target CPA opt-in option with impact
// estimate.
type GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption struct {
	// Goal: Output only. The goal achieved by this option.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SAME_COST" - Recommendation to set Target CPA to maintain the same cost.
	//   "SAME_CONVERSIONS" - Recommendation to set Target CPA to maintain the same
	// conversions.
	//   "SAME_CPA" - Recommendation to set Target CPA to maintain the same CPA.
	//   "CLOSEST_CPA" - Recommendation to set Target CPA to a value that is as
	// close as possible to, yet lower than, the actual CPA (computed for past 28
	// days).
	Goal string `json:"goal,omitempty"`
	// Impact: Output only. The impact estimate if this option is selected.
	Impact *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact `json:"impact,omitempty"`
	// RequiredCampaignBudgetAmountMicros: Output only. The minimum campaign
	// budget, in local currency for the account, required to achieve the target
	// CPA. Amount is specified in micros, where one million is equivalent to one
	// currency unit.
	RequiredCampaignBudgetAmountMicros int64 `json:"requiredCampaignBudgetAmountMicros,omitempty,string"`
	// TargetCpaMicros: Output only. Average CPA target.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Goal") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Goal") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo: Wrapper for
// information about a Google Ads account.
type GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo struct {
	// CustomerId: Output only. The customer ID of the account.
	CustomerId int64 `json:"customerId,omitempty,string"`
	// DescriptiveName: Output only. The descriptive name of the account.
	DescriptiveName string `json:"descriptiveName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationCallAssetRecommendation: The
// call asset recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationCallAssetRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation:
// The callout asset recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation struct {
	// RecommendedCampaignCalloutAssets: Output only. New callout extension assets
	// recommended at the campaign level.
	RecommendedCampaignCalloutAssets []*GoogleAdsSearchads360V23Resources__Asset `json:"recommendedCampaignCalloutAssets,omitempty"`
	// RecommendedCustomerCalloutAssets: Output only. New callout extension assets
	// recommended at the customer level.
	RecommendedCustomerCalloutAssets []*GoogleAdsSearchads360V23Resources__Asset `json:"recommendedCustomerCalloutAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "RecommendedCampaignCalloutAssets") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "RecommendedCampaignCalloutAssets") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget: A campaign
// budget shared amongst various budget recommendation types.
type GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget struct {
	// CurrentAmountMicros: Output only. Current budget amount.
	CurrentAmountMicros int64 `json:"currentAmountMicros,omitempty,string"`
	// NewStartDate: Output only. The date when the new budget would start being
	// used. This field will be set for the following recommendation types:
	// FORECASTING_SET_TARGET_ROAS YYYY-MM-DD format, for example, 2018-04-17.
	NewStartDate string `json:"newStartDate,omitempty"`
	// RecommendedNewAmountMicros: Output only. Recommended budget amount.
	RecommendedNewAmountMicros int64 `json:"recommendedNewAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CurrentAmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentAmountMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation:
// The budget recommendation for budget constrained campaigns.
type GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation struct {
	// BudgetOptions: Output only. The budget amounts and associated impact
	// estimates for some values of possible budget amounts.
	BudgetOptions []*GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendationCampaignBudgetRecommendationOption `json:"budgetOptions,omitempty"`
	// CurrentBudgetAmountMicros: Output only. The current budget amount in micros.
	CurrentBudgetAmountMicros int64 `json:"currentBudgetAmountMicros,omitempty,string"`
	// RecommendedBudgetAmountMicros: Output only. The recommended budget amount in
	// micros.
	RecommendedBudgetAmountMicros int64 `json:"recommendedBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BudgetOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetOptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendat
// ion: The Custom Audience Opt In recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation struct {
	// Keywords: Output only. The list of keywords to use for custom audience
	// creation.
	Keywords []*GoogleAdsSearchads360V23Common__KeywordInfo `json:"keywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Keywords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keywords") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationDisplayExpansionOptInRecommend
// ation: The Display Expansion opt-in recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationDisplayExpansionOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationDynamicImageExtensionOptInReco
// mmendation: Recommendation to enable dynamic image extensions on the
// account, allowing Google to find the best images from ad landing pages and
// complement text ads.
type GoogleAdsSearchads360V23ResourcesRecommendationDynamicImageExtensionOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationEnhancedCpcOptInRecommendation
// : The Enhanced Cost-Per-Click Opt-In recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationEnhancedCpcOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecomme
// ndation: The set target CPA recommendations.
type GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation struct {
	// CampaignBudget: Output only. The campaign budget.
	CampaignBudget *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget `json:"campaignBudget,omitempty"`
	// RecommendedTargetCpaMicros: Output only. The recommended target CPA.
	RecommendedTargetCpaMicros int64 `json:"recommendedTargetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecomm
// endation: The forecasting set target ROAS recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation struct {
	// CampaignBudget: Output only. The campaign budget.
	CampaignBudget *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudget `json:"campaignBudget,omitempty"`
	// RecommendedTargetRoas: Output only. The recommended target ROAS (revenue per
	// unit of spend). The value is between 0.01 and 1000.0, inclusive.
	RecommendedTargetRoas float64 `json:"recommendedTargetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation
	var s1 struct {
		RecommendedTargetRoas gensupport.JSONFloat64 `json:"recommendedTargetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.RecommendedTargetRoas = float64(s1.RecommendedTargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthReco
// mmendation: The improve Demand Gen ad strength recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation struct {
	// Ad: Output only. The resource name of the ad that can be improved.
	Ad string `json:"ad,omitempty"`
	// AdStrength: Output only. The current ad strength.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The ad strength is currently pending.
	//   "NO_ADS" - No ads could be generated.
	//   "POOR" - Poor strength.
	//   "AVERAGE" - Average strength.
	//   "GOOD" - Good strength.
	//   "EXCELLENT" - Excellent strength.
	AdStrength string `json:"adStrength,omitempty"`
	// DemandGenAssetActionItems: Output only. A list of recommendations to improve
	// the ad strength.
	DemandGenAssetActionItems []string `json:"demandGenAssetActionItems,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationImproveGoogleTagCoverageRecomm
// endation: Recommendation to deploy Google Tag on more pages.
type GoogleAdsSearchads360V23ResourcesRecommendationImproveGoogleTagCoverageRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengt
// hRecommendation: Recommendation to improve the asset group strength of a
// Performance Max campaign to an "Excellent" rating.
type GoogleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation struct {
	// AdStrength: Output only. The current ad strength score of the asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The ad strength is currently pending.
	//   "NO_ADS" - No ads could be generated.
	//   "POOR" - Poor strength.
	//   "AVERAGE" - Average strength.
	//   "GOOD" - Good strength.
	//   "EXCELLENT" - Excellent strength.
	AdStrength string `json:"adStrength,omitempty"`
	// AssetGroup: Output only. The asset group resource name.
	AssetGroup string `json:"assetGroup,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdStrength") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdStrength") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation
// : The keyword match type recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation struct {
	// Keyword: Output only. The existing keyword where the match type should be
	// more broad.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// RecommendedMatchType: Output only. The recommended new match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	RecommendedMatchType string `json:"recommendedMatchType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Keyword") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keyword") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation: The
// keyword recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation struct {
	// Keyword: Output only. The recommended keyword.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// RecommendedCpcBidMicros: Output only. The recommended CPC (cost-per-click)
	// bid.
	RecommendedCpcBidMicros int64 `json:"recommendedCpcBidMicros,omitempty,string"`
	// SearchTerms: Output only. A list of search terms this keyword matches. The
	// same search term may be repeated for multiple keywords.
	SearchTerms []*GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendationSearchTerm `json:"searchTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Keyword") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keyword") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationLeadFormAssetRecommendation:
// The lead form asset recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationLeadFormAssetRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation:
//
//	Recommendation to lower Target ROAS.
type GoogleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation struct {
	// TargetAdjustment: Output only. The relevant information describing the
	// recommended target adjustment.
	TargetAdjustment *GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo `json:"targetAdjustment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetAdjustment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetAdjustment") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendat
// ion: The Maximize Clicks opt-in recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation struct {
	// RecommendedBudgetAmountMicros: Output only. The recommended new budget
	// amount. Only set if the current budget is too high.
	RecommendedBudgetAmountMicros int64 `json:"recommendedBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "RecommendedBudgetAmountMicros") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecommendedBudgetAmountMicros")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionValueOptInRe
// commendation: Recommendation to opt into Maximize Conversion Value bidding
// strategy.
type GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionValueOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecomm
// endation: The Maximize Conversions Opt-In recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation struct {
	// RecommendedBudgetAmountMicros: Output only. The recommended new budget
	// amount.
	RecommendedBudgetAmountMicros int64 `json:"recommendedBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "RecommendedBudgetAmountMicros") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecommendedBudgetAmountMicros")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo: The Merchant
// Center account details.
type GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo struct {
	// Id: Output only. The Merchant Center account ID.
	Id int64 `json:"id,omitempty,string"`
	// MultiClient: Output only. Whether the Merchant Center account is a
	// Multi-Client account (MCA).
	MultiClient bool `json:"multiClient,omitempty"`
	// Name: Output only. The name of the Merchant Center account.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaig
// nToPerformanceMaxRecommendation: The Dynamic Search Ads to Performance Max
// migration recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation struct {
	// ApplyLink: Output only. A link to the Google Ads UI where the customer can
	// manually apply the recommendation.
	ApplyLink string `json:"applyLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplyLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplyLink") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation
// : The move unused budget recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation struct {
	// BudgetRecommendation: Output only. The recommendation for the constrained
	// budget to increase.
	BudgetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation `json:"budgetRecommendation,omitempty"`
	// ExcessCampaignBudget: Output only. The excess budget's resource_name.
	ExcessCampaignBudget string `json:"excessCampaignBudget,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BudgetRecommendation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetRecommendation") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationOptimizeAdRotationRecommendati
// on: The Optimize Ad Rotation recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationOptimizeAdRotationRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxFinalUrlOptInRec
// ommendation: Recommendation to turn on Final URL expansion for your
// Performance Max campaigns.
type GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxFinalUrlOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxOptInRecommendat
// ion: The Performance Max Opt In recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecomme
// ndation: The raise target CPA bid too low recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation struct {
	// AverageTargetCpaMicros: Output only. The current average target CPA of the
	// campaign, in micros of customer local currency.
	AverageTargetCpaMicros int64 `json:"averageTargetCpaMicros,omitempty,string"`
	// RecommendedTargetMultiplier: Output only. A number greater than 1.0
	// indicating the factor by which we recommend the target CPA should be
	// increased.
	RecommendedTargetMultiplier float64 `json:"recommendedTargetMultiplier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageTargetCpaMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageTargetCpaMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation
	var s1 struct {
		RecommendedTargetMultiplier gensupport.JSONFloat64 `json:"recommendedTargetMultiplier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.RecommendedTargetMultiplier = float64(s1.RecommendedTargetMultiplier)
	return nil
}

// GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation:
// Recommendation to raise Target CPA.
type GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation struct {
	// AppBiddingGoal: Output only. Represents the goal towards which the bidding
	// strategy should optimize. Only populated for App Campaigns.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Represents value unknown in this version of the API.
	//   "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME" - The bidding strategy of the app
	// campaign should aim to maximize installation of the app.
	//   "OPTIMIZE_FOR_IN_APP_CONVERSION_VOLUME" - The bidding strategy of the app
	// campaign should aim to maximize the selected in-app conversions' volume.
	//   "OPTIMIZE_FOR_TOTAL_CONVERSION_VALUE" - The bidding strategy of the app
	// campaign should aim to maximize all conversions' value, that is, install and
	// selected in-app conversions.
	//   "OPTIMIZE_FOR_TARGET_IN_APP_CONVERSION" - The bidding strategy of the app
	// campaign should aim to maximize just the selected in-app conversion's
	// volume, while achieving or exceeding target cost per in-app conversion.
	//   "OPTIMIZE_FOR_RETURN_ON_ADVERTISING_SPEND" - The bidding strategy of the
	// app campaign should aim to maximize all conversions' value, that is, install
	// and selected in-app conversions while achieving or exceeding target return
	// on advertising spend.
	//   "OPTIMIZE_FOR_INSTALL_CONVERSION_VOLUME_WITHOUT_TARGET_CPI" - This bidding
	// strategy of the app campaign should aim to maximize installation of the app
	// without advertiser-provided target cost-per-install.
	//   "OPTIMIZE_FOR_PRE_REGISTRATION_CONVERSION_VOLUME" - This bidding strategy
	// of the app campaign should aim to maximize pre-registration of the app.
	AppBiddingGoal string `json:"appBiddingGoal,omitempty"`
	// TargetAdjustment: Output only. The relevant information describing the
	// recommended target adjustment.
	TargetAdjustment *GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo `json:"targetAdjustment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppBiddingGoal") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppBiddingGoal") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact: The
// impact of making the change as described in the recommendation. Some types
// of recommendations may not have impact information.
type GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact struct {
	// BaseMetrics: Output only. Base metrics at the time the recommendation was
	// generated.
	BaseMetrics *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics `json:"baseMetrics,omitempty"`
	// PotentialMetrics: Output only. Estimated metrics if the recommendation is
	// applied.
	PotentialMetrics *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics `json:"potentialMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaseMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaseMetrics") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics: Weekly
// account performance metrics. For some recommendation types, these are
// averaged over the past 90-day period and hence can be fractional.
type GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics struct {
	// Clicks: Output only. Number of ad clicks.
	Clicks float64 `json:"clicks,omitempty"`
	// Conversions: Output only. Number of conversions.
	Conversions float64 `json:"conversions,omitempty"`
	// ConversionsValue: Output only. Sum of the conversion value of the
	// conversions.
	ConversionsValue float64 `json:"conversionsValue,omitempty"`
	// CostMicros: Output only. Cost (in micros) for advertising, in the local
	// currency for the account.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: Output only. Number of ad impressions.
	Impressions float64 `json:"impressions,omitempty"`
	// VideoViews: Output only. Number of video views for a video ad campaign.
	VideoViews float64 `json:"videoViews,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Clicks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Clicks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRecommendationMetrics
	var s1 struct {
		Clicks           gensupport.JSONFloat64 `json:"clicks"`
		Conversions      gensupport.JSONFloat64 `json:"conversions"`
		ConversionsValue gensupport.JSONFloat64 `json:"conversionsValue"`
		Impressions      gensupport.JSONFloat64 `json:"impressions"`
		VideoViews       gensupport.JSONFloat64 `json:"videoViews"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Clicks = float64(s1.Clicks)
	s.Conversions = float64(s1.Conversions)
	s.ConversionsValue = float64(s1.ConversionsValue)
	s.Impressions = float64(s1.Impressions)
	s.VideoViews = float64(s1.VideoViews)
	return nil
}

// GoogleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecomm
// endation: The recommendation to update a customer list that hasn't been
// updated in the last 90 days. The customer receiving the recommendation is
// not necessarily the owner account. The owner account should update the
// customer list.
type GoogleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation struct {
	// DaysSinceLastRefresh: Output only. Days since last refresh.
	DaysSinceLastRefresh int64 `json:"daysSinceLastRefresh,omitempty,string"`
	// OwnerAccount: Output only. The owner account. This is the account that
	// should update the customer list.
	OwnerAccount *GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo `json:"ownerAccount,omitempty"`
	// TargetingAccountsCount: Output only. User lists can be shared with other
	// accounts by the owner. targeting_accounts_count is the number of those
	// accounts that can use it for targeting.
	TargetingAccountsCount int64 `json:"targetingAccountsCount,omitempty,string"`
	// TopSpendingAccount: Output only. The top spending account.
	TopSpendingAccount []*GoogleAdsSearchads360V23ResourcesRecommendationAccountInfo `json:"topSpendingAccount,omitempty"`
	// UserListId: Output only. The user list ID.
	UserListId int64 `json:"userListId,omitempty,string"`
	// UserListName: Output only. The name of the list.
	UserListName string `json:"userListName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DaysSinceLastRefresh") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DaysSinceLastRefresh") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecomme
// ndation: The add responsive search ad asset recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation struct {
	// CurrentAd: Output only. The current ad to be updated.
	CurrentAd *GoogleAdsSearchads360V23Resources__Ad `json:"currentAd,omitempty"`
	// RecommendedAssets: Output only. The recommended assets. This is populated
	// only with the new headlines and/or descriptions, and is otherwise empty.
	RecommendedAssets *GoogleAdsSearchads360V23Resources__Ad `json:"recommendedAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStr
// engthRecommendation: The responsive search ad improve ad strength
// recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation struct {
	// CurrentAd: Output only. The current ad to be updated.
	CurrentAd *GoogleAdsSearchads360V23Resources__Ad `json:"currentAd,omitempty"`
	// RecommendedAd: Output only. The updated ad.
	RecommendedAd *GoogleAdsSearchads360V23Resources__Ad `json:"recommendedAd,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendati
// on: The add responsive search ad recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation struct {
	// Ad: Output only. Recommended ad.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationSearchPartnersOptInRecommendat
// ion: The Search Partners Opt-In recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationSearchPartnersOptInRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignR
// ecommendation: The shopping recommendation to add products to a Shopping
// Campaign Inventory.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation struct {
	// FeedLabel: Output only. The feed label for the campaign.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// Reason: Output only. The reason why no products are attached to the
	// campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS" - The Merchant Center
	// account does not have any submitted products.
	//   "MERCHANT_CENTER_ACCOUNT_HAS_NO_SUBMITTED_PRODUCTS_IN_FEED" - The Merchant
	// Center account does not have any submitted products in the feed.
	//   "ADS_ACCOUNT_EXCLUDES_OFFERS_FROM_CAMPAIGN" - The Google Ads account has
	// active campaign filters that prevents inclusion of offers in the campaign.
	//   "ALL_PRODUCTS_ARE_EXCLUDED_FROM_CAMPAIGN" - All products available have
	// been explicitly excluded from being targeted by the campaign.
	Reason string `json:"reason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FeedLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProducts
// Recommendation: The shopping recommendation to fix disapproved products in a
// Shopping Campaign Inventory.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation struct {
	// DisapprovedProductsCount: Output only. The numbers of products of the
	// campaign that are disapproved.
	DisapprovedProductsCount int64 `json:"disapprovedProductsCount,omitempty,string"`
	// FeedLabel: Output only. The feed label for the campaign.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// ProductsCount: Output only. The number of products of the campaign.
	ProductsCount int64 `json:"productsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DisapprovedProductsCount")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisapprovedProductsCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountS
// uspensionRecommendation: The shopping recommendation to fix Merchant Center
// account suspension issues.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation struct {
	// FeedLabel: Output only. The feed label of the campaign for which the
	// suspension happened.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FeedLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShopping
// CampaignOffersToPerformanceMaxRecommendation: The shopping recommendation to
// migrate Regular Shopping Campaign targeted offers to Performance Max
// campaigns.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation struct {
	// FeedLabel: Output only. The feed label of the offers targeted by the
	// campaigns sharing this suggestion.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FeedLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommen
// dation: The shopping recommendation to add an attribute to offers that are
// demoted because it is missing.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation struct {
	// DemotedOffersCount: Output only. The number of online, servable offers that
	// are demoted for missing attributes. Visit the Merchant Center for more
	// details.
	DemotedOffersCount int64 `json:"demotedOffersCount,omitempty,string"`
	// FeedLabel: Output only. The campaign feed label.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// OffersCount: Output only. The number of online, servable offers.
	OffersCount int64 `json:"offersCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DemotedOffersCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DemotedOffersCount") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecomme
// ndation: The shopping recommendation to create a catch-all campaign that
// targets all offers.
type GoogleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation struct {
	// FeedLabel: Output only. The offer feed label.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Merchant: Output only. The details of the Merchant Center account.
	Merchant *GoogleAdsSearchads360V23ResourcesRecommendationMerchantInfo `json:"merchant,omitempty"`
	// UntargetedOffersCount: Output only. The number of untargeted offers.
	UntargetedOffersCount int64 `json:"untargetedOffersCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FeedLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FeedLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation:
// The sitelink asset recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation struct {
	// RecommendedCampaignSitelinkAssets: Output only. New sitelink assets
	// recommended at the campaign level.
	RecommendedCampaignSitelinkAssets []*GoogleAdsSearchads360V23Resources__Asset `json:"recommendedCampaignSitelinkAssets,omitempty"`
	// RecommendedCustomerSitelinkAssets: Output only. New sitelink assets
	// recommended at the customer level.
	RecommendedCustomerSitelinkAssets []*GoogleAdsSearchads360V23Resources__Asset `json:"recommendedCustomerSitelinkAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "RecommendedCampaignSitelinkAssets") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "RecommendedCampaignSitelinkAssets") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo:
// Information of a target adjustment recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo struct {
	// CurrentAverageTargetMicros: Output only. The current average target of the
	// campaign or portfolio targeted by this recommendation.
	CurrentAverageTargetMicros int64 `json:"currentAverageTargetMicros,omitempty,string"`
	// RecommendedTargetMultiplier: Output only. The factor by which we recommend
	// the target to be adjusted by.
	RecommendedTargetMultiplier float64 `json:"recommendedTargetMultiplier,omitempty"`
	// SharedSet: Output only. The shared set resource name of the portfolio
	// bidding strategy where the target is defined. Only populated if the
	// recommendation is portfolio level.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentAverageTargetMicros")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentAverageTargetMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetAdjustmentInfo
	var s1 struct {
		RecommendedTargetMultiplier gensupport.JSONFloat64 `json:"recommendedTargetMultiplier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.RecommendedTargetMultiplier = float64(s1.RecommendedTargetMultiplier)
	return nil
}

// GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation:
// The Target CPA opt-in recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation struct {
	// Options: Output only. The available goals and corresponding options for
	// Target CPA strategy.
	Options []*GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendationTargetCpaOptInRecommendationOption `json:"options,omitempty"`
	// RecommendedTargetCpaMicros: Output only. The recommended average CPA target.
	// See required budget amount and impact of using this recommendation in
	// options list.
	RecommendedTargetCpaMicros int64 `json:"recommendedTargetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Options") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Options") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation:
//
//	The Target ROAS opt-in recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation struct {
	// RecommendedTargetRoas: Output only. The recommended target ROAS (revenue per
	// unit of spend). The value is between 0.01 and 1000.0, inclusive.
	RecommendedTargetRoas float64 `json:"recommendedTargetRoas,omitempty"`
	// RequiredCampaignBudgetAmountMicros: Output only. The minimum campaign
	// budget, in local currency for the account, required to achieve the target
	// ROAS. Amount is specified in micros, where one million is equivalent to one
	// currency unit.
	RequiredCampaignBudgetAmountMicros int64 `json:"requiredCampaignBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "RecommendedTargetRoas") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecommendedTargetRoas") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation
	var s1 struct {
		RecommendedTargetRoas gensupport.JSONFloat64 `json:"recommendedTargetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.RecommendedTargetRoas = float64(s1.RecommendedTargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation: The
// text ad recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation struct {
	// Ad: Output only. Recommended ad.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// AutoApplyDate: Output only. Date, if present, is the earliest when the
	// recommendation will be auto applied. YYYY-MM-DD format, for example,
	// 2018-04-17.
	AutoApplyDate string `json:"autoApplyDate,omitempty"`
	// CreationDate: Output only. Creation date of the recommended ad. YYYY-MM-DD
	// format, for example, 2018-04-17.
	CreationDate string `json:"creationDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationUpgradeLocalCampaignToPerforma
// nceMaxRecommendation: The Upgrade Local campaign to Performance Max campaign
// recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationUpgradeLocalCampaignToPerformanceMaxRecommendation struct {
}

// GoogleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignTo
// PerformanceMaxRecommendation: The upgrade a Smart Shopping campaign to a
// Performance Max campaign recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation struct {
	// MerchantId: Output only. ID of Merchant Center account.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// SalesCountryCode: Output only. Country whose products from merchant's
	// inventory should be included.
	SalesCountryCode string `json:"salesCountryCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MerchantId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MerchantId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommenda
// tion: The use broad match keyword recommendation.
type GoogleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation struct {
	// CampaignKeywordsCount: Output only. Total number of keywords in the
	// campaign.
	CampaignKeywordsCount int64 `json:"campaignKeywordsCount,omitempty,string"`
	// CampaignUsesSharedBudget: Output only. Whether the associated campaign uses
	// a shared budget.
	CampaignUsesSharedBudget bool `json:"campaignUsesSharedBudget,omitempty"`
	// Keyword: Output only. Sample of keywords to be expanded to Broad Match.
	Keyword []*GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// RequiredCampaignBudgetAmountMicros: Output only. The budget recommended to
	// avoid becoming budget constrained after applying the recommendation.
	RequiredCampaignBudgetAmountMicros int64 `json:"requiredCampaignBudgetAmountMicros,omitempty,string"`
	// SuggestedKeywordsCount: Output only. Total number of keywords to be expanded
	// to Broad Match in the campaign.
	SuggestedKeywordsCount int64 `json:"suggestedKeywordsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CampaignKeywordsCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignKeywordsCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesShoppingProductProductIssue: An issue
// affecting whether a product can show in ads.
type GoogleAdsSearchads360V23ResourcesShoppingProductProductIssue struct {
	// AdsSeverity: Output only. The severity of the issue in Google Ads.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WARNING" - The issue limits the performance of the product in ads.
	//   "ERROR" - The issue prevents the product from showing in ads.
	AdsSeverity string `json:"adsSeverity,omitempty"`
	// AffectedRegions: Output only. List of upper-case two-letter ISO 3166-1 codes
	// of the regions affected by the issue. If empty, all regions are affected.
	AffectedRegions []string `json:"affectedRegions,omitempty"`
	// AttributeName: Output only. The name of the product's attribute, if any,
	// that triggered the issue.
	AttributeName string `json:"attributeName,omitempty"`
	// Description: Output only. The short description of the issue in English.
	Description string `json:"description,omitempty"`
	// Detail: Output only. The detailed description of the issue in English.
	Detail string `json:"detail,omitempty"`
	// Documentation: Output only. The URL of the Help Center article for the
	// issue.
	Documentation string `json:"documentation,omitempty"`
	// ErrorCode: Output only. The error code that identifies the issue.
	ErrorCode string `json:"errorCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdsSeverity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdsSeverity") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesShoppingProductProductIssue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesShoppingProductProductIssue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesSmartCampaignSettingAdOptimizedBusinessProfi
// leSetting: Settings for configuring a business profile optimized for ads as
// this campaign's landing page.
type GoogleAdsSearchads360V23ResourcesSmartCampaignSettingAdOptimizedBusinessProfileSetting struct {
	// IncludeLeadForm: Enabling a lead form on your business profile enables
	// prospective customers to contact your business by filling out a simple form,
	// and you'll receive their information through email.
	IncludeLeadForm bool `json:"includeLeadForm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeLeadForm") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeLeadForm") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesSmartCampaignSettingAdOptimizedBusinessProfileSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesSmartCampaignSettingAdOptimizedBusinessProfileSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ResourcesSmartCampaignSettingPhoneNumber: Phone
// number and country code in smart campaign settings.
type GoogleAdsSearchads360V23ResourcesSmartCampaignSettingPhoneNumber struct {
	// CountryCode: Upper-case, two-letter country code as defined by ISO-3166.
	CountryCode string `json:"countryCode,omitempty"`
	// PhoneNumber: Phone number of the smart campaign.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ResourcesSmartCampaignSettingPhoneNumber) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ResourcesSmartCampaignSettingPhoneNumber
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy: Represents a
// view of BiddingStrategies owned by and shared with the customer. In contrast
// to BiddingStrategy, this resource includes strategies owned by managers of
// the customer and shared with this customer - in addition to strategies owned
// by this customer. This resource does not provide metrics and only exposes a
// limited subset of the BiddingStrategy attributes.
type GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy struct {
	// Id: Output only. The ID of the bidding strategy.
	Id int64 `json:"id,omitempty,string"`
	// MaximizeConversionValue: Output only. An automated bidding strategy to help
	// get the most conversion value for your campaigns while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: Output only. An automated bidding strategy to help get
	// the most conversions for your campaigns while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyMaximizeConversions `json:"maximizeConversions,omitempty"`
	// Name: Output only. The name of the bidding strategy.
	Name string `json:"name,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the bidding
	// strategy.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// OwnerDescriptiveName: Output only. descriptive_name of the Customer which
	// owns the bidding strategy.
	OwnerDescriptiveName string `json:"ownerDescriptiveName,omitempty"`
	// ResourceName: Output only. The resource name of the accessible bidding
	// strategy. AccessibleBiddingStrategy resource names have the form:
	// `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetCpa: Output only. A bidding strategy that sets bids to help get as
	// many conversions as possible at the target cost-per-acquisition (CPA) you
	// set.
	TargetCpa *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetCpa `json:"targetCpa,omitempty"`
	// TargetImpressionShare: Output only. A bidding strategy that automatically
	// optimizes towards a chosen percentage of impressions.
	TargetImpressionShare *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetRoas: Output only. A bidding strategy that helps you maximize revenue
	// while averaging a specific target Return On Ad Spend (ROAS).
	TargetRoas *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: Output only. A bid strategy that sets your bids to help get as
	// many clicks as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V23ResourcesAccessibleBiddingStrategyTargetSpend `json:"targetSpend,omitempty"`
	// Type: Output only. The type of the bidding strategy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPC" - Target CPC is an automated bid strategy that sets bids to
	// help get as many clicks as possible at the target cost-per-click (CPC) you
	// set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AccountBudget: An account-level budget.
// It contains information about the budget itself, as well as the most
// recently approved changes to the budget and proposed changes that are
// pending approval. The proposed changes that are pending approval, if any,
// are found in 'pending_proposal'. Effective details about the budget are
// found in fields prefixed 'approved_', 'adjusted_' and those without a
// prefix. Since some effective details may differ from what the user had
// originally requested (for example, spending limit), these differences are
// juxtaposed through 'proposed_', 'approved_', and possibly 'adjusted_'
// fields. This resource is mutated using AccountBudgetProposal and cannot be
// mutated directly. A budget may have at most one pending proposal at any
// given time. It is read through pending_proposal. Once approved, a budget may
// be subject to adjustments, such as credit adjustments. Adjustments create
// differences between the 'approved' and 'adjusted' fields, which would
// otherwise be identical.
type GoogleAdsSearchads360V23Resources__AccountBudget struct {
	// AdjustedSpendingLimitMicros: Output only. The adjusted spending limit in
	// micros. One million is equivalent to one unit. If the approved spending
	// limit is finite, the adjusted spending limit may vary depending on the types
	// of adjustments applied to this budget, if applicable. The different kinds of
	// adjustments are described here:
	// https://support.google.com/google-ads/answer/1704323 For example, a debit
	// adjustment reduces how much the account is allowed to spend.
	AdjustedSpendingLimitMicros int64 `json:"adjustedSpendingLimitMicros,omitempty,string"`
	// AdjustedSpendingLimitType: Output only. The adjusted spending limit as a
	// well-defined type, for example, INFINITE. This will only be populated if the
	// adjusted spending limit is INFINITE, which is guaranteed to be true if the
	// approved spending limit is INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	AdjustedSpendingLimitType string `json:"adjustedSpendingLimitType,omitempty"`
	// AmountServedMicros: Output only. The value of Ads that have been served, in
	// micros. This includes overdelivery costs, in which case a credit might be
	// automatically applied to the budget (see total_adjustments_micros).
	AmountServedMicros int64 `json:"amountServedMicros,omitempty,string"`
	// ApprovedEndDateTime: Output only. The approved end time in yyyy-MM-dd
	// HH:mm:ss format.
	ApprovedEndDateTime string `json:"approvedEndDateTime,omitempty"`
	// ApprovedEndTimeType: Output only. The approved end time as a well-defined
	// type, for example, FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	ApprovedEndTimeType string `json:"approvedEndTimeType,omitempty"`
	// ApprovedSpendingLimitMicros: Output only. The approved spending limit in
	// micros. One million is equivalent to one unit. This will only be populated
	// if the proposed spending limit is finite, and will always be greater than or
	// equal to the proposed spending limit.
	ApprovedSpendingLimitMicros int64 `json:"approvedSpendingLimitMicros,omitempty,string"`
	// ApprovedSpendingLimitType: Output only. The approved spending limit as a
	// well-defined type, for example, INFINITE. This will only be populated if the
	// approved spending limit is INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	ApprovedSpendingLimitType string `json:"approvedSpendingLimitType,omitempty"`
	// ApprovedStartDateTime: Output only. The approved start time of the
	// account-level budget in yyyy-MM-dd HH:mm:ss format. For example, if a new
	// budget is approved after the proposed start time, the approved start time is
	// the time of approval.
	ApprovedStartDateTime string `json:"approvedStartDateTime,omitempty"`
	// BillingSetup: Output only. The resource name of the billing setup associated
	// with this account-level budget. BillingSetup resource names have the form:
	// `customers/{customer_id}/billingSetups/{billing_setup_id}`
	BillingSetup string `json:"billingSetup,omitempty"`
	// Id: Output only. The ID of the account-level budget.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. The name of the account-level budget.
	Name string `json:"name,omitempty"`
	// Notes: Output only. Notes associated with the budget.
	Notes string `json:"notes,omitempty"`
	// PendingProposal: Output only. The pending proposal to modify this budget, if
	// applicable.
	PendingProposal *GoogleAdsSearchads360V23ResourcesAccountBudgetPendingAccountBudgetProposal `json:"pendingProposal,omitempty"`
	// ProposedEndDateTime: Output only. The proposed end time in yyyy-MM-dd
	// HH:mm:ss format.
	ProposedEndDateTime string `json:"proposedEndDateTime,omitempty"`
	// ProposedEndTimeType: Output only. The proposed end time as a well-defined
	// type, for example, FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	ProposedEndTimeType string `json:"proposedEndTimeType,omitempty"`
	// ProposedSpendingLimitMicros: Output only. The proposed spending limit in
	// micros. One million is equivalent to one unit.
	ProposedSpendingLimitMicros int64 `json:"proposedSpendingLimitMicros,omitempty,string"`
	// ProposedSpendingLimitType: Output only. The proposed spending limit as a
	// well-defined type, for example, INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	ProposedSpendingLimitType string `json:"proposedSpendingLimitType,omitempty"`
	// ProposedStartDateTime: Output only. The proposed start time of the
	// account-level budget in yyyy-MM-dd HH:mm:ss format. If a start time type of
	// NOW was proposed, this is the time of request.
	ProposedStartDateTime string `json:"proposedStartDateTime,omitempty"`
	// PurchaseOrderNumber: Output only. A purchase order number is a value that
	// helps users reference this budget in their monthly invoices.
	PurchaseOrderNumber string `json:"purchaseOrderNumber,omitempty"`
	// ResourceName: Output only. The resource name of the account-level budget.
	// AccountBudget resource names have the form:
	// `customers/{customer_id}/accountBudgets/{account_budget_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of this account-level budget.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The account budget is pending approval.
	//   "APPROVED" - The account budget has been approved.
	//   "CANCELLED" - The account budget has been cancelled by the user.
	Status string `json:"status,omitempty"`
	// TotalAdjustmentsMicros: Output only. The total adjustments amount. An
	// example of an adjustment is courtesy credits.
	TotalAdjustmentsMicros int64 `json:"totalAdjustmentsMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "AdjustedSpendingLimitMicros") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdjustedSpendingLimitMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AccountBudget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AccountBudget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AccountBudgetProposal: An account-level
// budget proposal. All fields prefixed with 'proposed' may not necessarily be
// applied directly. For example, proposed spending limits may be adjusted
// before their application. This is true if the 'proposed' field has an
// 'approved' counterpart, for example, spending limits. Note that the proposal
// type (proposal_type) changes which fields are required and which must remain
// empty.
type GoogleAdsSearchads360V23Resources__AccountBudgetProposal struct {
	// AccountBudget: Immutable. The resource name of the account-level budget
	// associated with this proposal.
	AccountBudget string `json:"accountBudget,omitempty"`
	// ApprovalDateTime: Output only. The date time when this account-level budget
	// was approved, if applicable.
	ApprovalDateTime string `json:"approvalDateTime,omitempty"`
	// ApprovedEndDateTime: Output only. The approved end date time in yyyy-mm-dd
	// hh:mm:ss format.
	ApprovedEndDateTime string `json:"approvedEndDateTime,omitempty"`
	// ApprovedEndTimeType: Output only. The approved end date time as a
	// well-defined type, for example, FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	ApprovedEndTimeType string `json:"approvedEndTimeType,omitempty"`
	// ApprovedSpendingLimitMicros: Output only. The approved spending limit in
	// micros. One million is equivalent to one unit.
	ApprovedSpendingLimitMicros int64 `json:"approvedSpendingLimitMicros,omitempty,string"`
	// ApprovedSpendingLimitType: Output only. The approved spending limit as a
	// well-defined type, for example, INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	ApprovedSpendingLimitType string `json:"approvedSpendingLimitType,omitempty"`
	// ApprovedStartDateTime: Output only. The approved start date time in
	// yyyy-mm-dd hh:mm:ss format.
	ApprovedStartDateTime string `json:"approvedStartDateTime,omitempty"`
	// BillingSetup: Immutable. The resource name of the billing setup associated
	// with this proposal.
	BillingSetup string `json:"billingSetup,omitempty"`
	// CreationDateTime: Output only. The date time when this account-level budget
	// proposal was created, which is not the same as its approval date time, if
	// applicable.
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// Id: Output only. The ID of the proposal.
	Id int64 `json:"id,omitempty,string"`
	// ProposalType: Immutable. The type of this proposal, for example, END to end
	// the budget associated with this proposal.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CREATE" - Identifies a request to create a new budget.
	//   "UPDATE" - Identifies a request to edit an existing budget.
	//   "END" - Identifies a request to end a budget that has already started.
	//   "REMOVE" - Identifies a request to remove a budget that hasn't started
	// yet.
	ProposalType string `json:"proposalType,omitempty"`
	// ProposedEndDateTime: Immutable. The proposed end date time in yyyy-mm-dd
	// hh:mm:ss format.
	ProposedEndDateTime string `json:"proposedEndDateTime,omitempty"`
	// ProposedEndTimeType: Immutable. The proposed end date time as a well-defined
	// type, for example, FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	ProposedEndTimeType string `json:"proposedEndTimeType,omitempty"`
	// ProposedName: Immutable. The name to assign to the account-level budget.
	ProposedName string `json:"proposedName,omitempty"`
	// ProposedNotes: Immutable. Notes associated with this budget.
	ProposedNotes string `json:"proposedNotes,omitempty"`
	// ProposedPurchaseOrderNumber: Immutable. A purchase order number is a value
	// that enables the user to help them reference this budget in their monthly
	// invoices.
	ProposedPurchaseOrderNumber string `json:"proposedPurchaseOrderNumber,omitempty"`
	// ProposedSpendingLimitMicros: Immutable. The proposed spending limit in
	// micros. One million is equivalent to one unit.
	ProposedSpendingLimitMicros int64 `json:"proposedSpendingLimitMicros,omitempty,string"`
	// ProposedSpendingLimitType: Immutable. The proposed spending limit as a
	// well-defined type, for example, INFINITE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INFINITE" - Infinite, indicates unlimited spending power.
	ProposedSpendingLimitType string `json:"proposedSpendingLimitType,omitempty"`
	// ProposedStartDateTime: Immutable. The proposed start date time in yyyy-mm-dd
	// hh:mm:ss format.
	ProposedStartDateTime string `json:"proposedStartDateTime,omitempty"`
	// ProposedStartTimeType: Immutable. The proposed start date time as a
	// well-defined type, for example, NOW.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	ProposedStartTimeType string `json:"proposedStartTimeType,omitempty"`
	// ResourceName: Immutable. The resource name of the proposal.
	// AccountBudgetProposal resource names have the form:
	// `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of this proposal. When a new proposal is
	// created, the status defaults to PENDING.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The proposal is pending approval.
	//   "APPROVED_HELD" - The proposal has been approved but the corresponding
	// billing setup has not. This can occur for proposals that set up the first
	// budget when signing up for billing or when performing a change of bill-to
	// operation.
	//   "APPROVED" - The proposal has been approved.
	//   "CANCELLED" - The proposal has been cancelled by the user.
	//   "REJECTED" - The proposal has been rejected by the user, for example, by
	// rejecting an acceptance email.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountBudget") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AccountBudgetProposal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AccountBudgetProposal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AccountLink: Represents the data sharing
// connection between a Google Ads account and another account
type GoogleAdsSearchads360V23Resources__AccountLink struct {
	// AccountLinkId: Output only. The ID of the link. This field is read only.
	AccountLinkId int64 `json:"accountLinkId,omitempty,string"`
	// ResourceName: Immutable. Resource name of the account link. AccountLink
	// resource names have the form:
	// `customers/{customer_id}/accountLinks/{account_link_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The link is enabled.
	//   "REMOVED" - The link is removed/disabled.
	//   "REQUESTED" - The link to the other account has been requested. A user on
	// the other account may now approve the link by setting the status to ENABLED.
	//   "PENDING_APPROVAL" - This link has been requested by a user on the other
	// account. It may be approved by a user on this account by setting the status
	// to ENABLED.
	//   "REJECTED" - The link is rejected by the approver.
	//   "REVOKED" - The link is revoked by the user who requested the link.
	Status string `json:"status,omitempty"`
	// ThirdPartyAppAnalytics: Immutable. A third party app analytics link.
	ThirdPartyAppAnalytics *GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier `json:"thirdPartyAppAnalytics,omitempty"`
	// Type: Output only. The type of the linked account.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "THIRD_PARTY_APP_ANALYTICS" - A link to provide third party app analytics
	// data.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountLinkId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountLinkId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AccountLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AccountLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Ad: An ad.
type GoogleAdsSearchads360V23Resources__Ad struct {
	// AddedByGoogleAds: Output only. Indicates if this ad was automatically added
	// by Google Ads and not by a user. For example, this could happen when ads are
	// automatically created as suggestions for new ads based on knowledge of how
	// existing ads are performing.
	AddedByGoogleAds bool `json:"addedByGoogleAds,omitempty"`
	// AppAd: Details pertaining to an app ad.
	AppAd *GoogleAdsSearchads360V23Common__AppAdInfo `json:"appAd,omitempty"`
	// AppEngagementAd: Details pertaining to an app engagement ad.
	AppEngagementAd *GoogleAdsSearchads360V23Common__AppEngagementAdInfo `json:"appEngagementAd,omitempty"`
	// AppPreRegistrationAd: Details pertaining to an app pre-registration ad.
	AppPreRegistrationAd *GoogleAdsSearchads360V23Common__AppPreRegistrationAdInfo `json:"appPreRegistrationAd,omitempty"`
	// DemandGenCarouselAd: Details pertaining to a Demand Gen carousel ad.
	DemandGenCarouselAd *GoogleAdsSearchads360V23Common__DemandGenCarouselAdInfo `json:"demandGenCarouselAd,omitempty"`
	// DemandGenMultiAssetAd: Details pertaining to a Demand Gen multi asset ad.
	DemandGenMultiAssetAd *GoogleAdsSearchads360V23Common__DemandGenMultiAssetAdInfo `json:"demandGenMultiAssetAd,omitempty"`
	// DemandGenProductAd: Details pertaining to a Demand Gen product ad.
	DemandGenProductAd *GoogleAdsSearchads360V23Common__DemandGenProductAdInfo `json:"demandGenProductAd,omitempty"`
	// DemandGenVideoResponsiveAd: Details pertaining to a Demand Gen video
	// responsive ad.
	DemandGenVideoResponsiveAd *GoogleAdsSearchads360V23Common__DemandGenVideoResponsiveAdInfo `json:"demandGenVideoResponsiveAd,omitempty"`
	// DevicePreference: The device preference for the ad. You can only specify a
	// preference for mobile devices. When this preference is set the ad will be
	// preferred over other ads when being displayed on a mobile device. The ad can
	// still be displayed on other device types, for example, if no other ads are
	// available. If unspecified (no device preference), all devices are targeted.
	// This is only supported by some ad types.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	DevicePreference string `json:"devicePreference,omitempty"`
	// DisplayUploadAd: Details pertaining to a display upload ad.
	DisplayUploadAd *GoogleAdsSearchads360V23Common__DisplayUploadAdInfo `json:"displayUploadAd,omitempty"`
	// DisplayUrl: The URL that appears in the ad description for some ad formats.
	DisplayUrl string `json:"displayUrl,omitempty"`
	// ExpandedDynamicSearchAd: Immutable. Details pertaining to an Expanded
	// Dynamic Search Ad. This type of ad has its headline, final URLs, and display
	// URL auto-generated at serving time according to domain name specific
	// information provided by `dynamic_search_ads_setting` linked at the campaign
	// level.
	ExpandedDynamicSearchAd *GoogleAdsSearchads360V23Common__ExpandedDynamicSearchAdInfo `json:"expandedDynamicSearchAd,omitempty"`
	// ExpandedTextAd: Details pertaining to an expanded text ad.
	ExpandedTextAd *GoogleAdsSearchads360V23Common__ExpandedTextAdInfo `json:"expandedTextAd,omitempty"`
	// FinalAppUrls: A list of final app URLs that will be used on mobile if the
	// user has the specific app installed.
	FinalAppUrls []*GoogleAdsSearchads360V23Common__FinalAppUrl `json:"finalAppUrls,omitempty"`
	// FinalMobileUrls: The list of possible final mobile URLs after all
	// cross-domain redirects for the ad.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: The suffix to use when constructing a final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: The list of possible final URLs after all cross-domain redirects
	// for the ad.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// HotelAd: Details pertaining to a hotel ad.
	HotelAd *GoogleAdsSearchads360V23Common__HotelAdInfo `json:"hotelAd,omitempty"`
	// Id: Output only. The ID of the ad.
	Id int64 `json:"id,omitempty,string"`
	// ImageAd: Immutable. Details pertaining to an Image ad.
	ImageAd *GoogleAdsSearchads360V23Common__ImageAdInfo `json:"imageAd,omitempty"`
	// LegacyAppInstallAd: Immutable. Details pertaining to a legacy app install
	// ad.
	LegacyAppInstallAd *GoogleAdsSearchads360V23Common__LegacyAppInstallAdInfo `json:"legacyAppInstallAd,omitempty"`
	// LegacyResponsiveDisplayAd: Details pertaining to a legacy responsive display
	// ad.
	LegacyResponsiveDisplayAd *GoogleAdsSearchads360V23Common__LegacyResponsiveDisplayAdInfo `json:"legacyResponsiveDisplayAd,omitempty"`
	// LocalAd: Details pertaining to a local ad.
	LocalAd *GoogleAdsSearchads360V23Common__LocalAdInfo `json:"localAd,omitempty"`
	// Name: Immutable. The name of the ad. This is only used to be able to
	// identify the ad. It does not need to be unique and does not affect the
	// served ad.
	Name string `json:"name,omitempty"`
	// ProductAd: Immutable. Details pertaining to a product ad.
	ProductAd *GoogleAdsSearchads360V23Common__SearchAds360ProductAdInfo `json:"productAd,omitempty"`
	// ResourceName: Immutable. The resource name of the ad. Ad resource names have
	// the form: `customers/{customer_id}/ads/{ad_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ResponsiveDisplayAd: Details pertaining to a responsive display ad.
	ResponsiveDisplayAd *GoogleAdsSearchads360V23Common__ResponsiveDisplayAdInfo `json:"responsiveDisplayAd,omitempty"`
	// ResponsiveSearchAd: Details pertaining to a responsive search ad.
	ResponsiveSearchAd *GoogleAdsSearchads360V23Common__ResponsiveSearchAdInfo `json:"responsiveSearchAd,omitempty"`
	// SearchAds360ExpandedDynamicSearchAd: Immutable. Details pertaining to an
	// expanded dynamic search ad.
	SearchAds360ExpandedDynamicSearchAd *GoogleAdsSearchads360V23Common__SearchAds360ExpandedDynamicSearchAdInfo `json:"searchAds360ExpandedDynamicSearchAd,omitempty"`
	// SearchAds360ExpandedTextAd: Immutable. Details pertaining to an expanded
	// text ad.
	SearchAds360ExpandedTextAd *GoogleAdsSearchads360V23Common__SearchAds360ExpandedTextAdInfo `json:"searchAds360ExpandedTextAd,omitempty"`
	// SearchAds360ResponsiveSearchAd: Immutable. Details pertaining to a
	// responsive search ad.
	SearchAds360ResponsiveSearchAd *GoogleAdsSearchads360V23Common__SearchAds360ResponsiveSearchAdInfo `json:"searchAds360ResponsiveSearchAd,omitempty"`
	// SearchAds360TextAd: Immutable. Details pertaining to a text ad.
	SearchAds360TextAd *GoogleAdsSearchads360V23Common__SearchAds360TextAdInfo `json:"searchAds360TextAd,omitempty"`
	// ShoppingComparisonListingAd: Details pertaining to a Shopping Comparison
	// Listing ad.
	ShoppingComparisonListingAd *GoogleAdsSearchads360V23Common__ShoppingComparisonListingAdInfo `json:"shoppingComparisonListingAd,omitempty"`
	// ShoppingProductAd: Details pertaining to a Shopping product ad.
	ShoppingProductAd *GoogleAdsSearchads360V23Common__ShoppingProductAdInfo `json:"shoppingProductAd,omitempty"`
	// ShoppingSmartAd: Details pertaining to a Smart Shopping ad.
	ShoppingSmartAd *GoogleAdsSearchads360V23Common__ShoppingSmartAdInfo `json:"shoppingSmartAd,omitempty"`
	// SmartCampaignAd: Details pertaining to a Smart campaign ad.
	SmartCampaignAd *GoogleAdsSearchads360V23Common__SmartCampaignAdInfo `json:"smartCampaignAd,omitempty"`
	// SystemManagedResourceSource: Output only. If this ad is system managed, then
	// this field will indicate the source. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_VARIATIONS" - Generated ad variations experiment ad.
	SystemManagedResourceSource string `json:"systemManagedResourceSource,omitempty"`
	// TextAd: Immutable. Details pertaining to a text ad.
	TextAd *GoogleAdsSearchads360V23Common__TextAdInfo `json:"textAd,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// TravelAd: Details pertaining to a travel ad.
	TravelAd *GoogleAdsSearchads360V23Common__TravelAdInfo `json:"travelAd,omitempty"`
	// Type: Output only. The type of ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "TEXT_AD" - The ad is a text ad.
	//   "EXPANDED_TEXT_AD" - The ad is an expanded text ad.
	//   "EXPANDED_DYNAMIC_SEARCH_AD" - The ad is an expanded dynamic search ad.
	//   "HOTEL_AD" - The ad is a hotel ad.
	//   "SHOPPING_SMART_AD" - The ad is a Smart Shopping ad.
	//   "SHOPPING_PRODUCT_AD" - The ad is a standard Shopping ad.
	//   "VIDEO_AD" - The ad is a video ad.
	//   "IMAGE_AD" - This ad is an Image ad.
	//   "RESPONSIVE_SEARCH_AD" - The ad is a responsive search ad.
	//   "LEGACY_RESPONSIVE_DISPLAY_AD" - The ad is a legacy responsive display ad.
	//   "APP_AD" - The ad is an app ad.
	//   "LEGACY_APP_INSTALL_AD" - The ad is a legacy app install ad.
	//   "RESPONSIVE_DISPLAY_AD" - The ad is a responsive display ad.
	//   "LOCAL_AD" - The ad is a local ad.
	//   "HTML5_UPLOAD_AD" - The ad is a display upload ad with the HTML5_UPLOAD_AD
	// product type.
	//   "DYNAMIC_HTML5_AD" - The ad is a display upload ad with one of the
	// DYNAMIC_HTML5_* product types.
	//   "APP_ENGAGEMENT_AD" - The ad is an app engagement ad.
	//   "SHOPPING_COMPARISON_LISTING_AD" - The ad is a Shopping Comparison Listing
	// ad.
	//   "VIDEO_BUMPER_AD" - Video bumper ad.
	//   "VIDEO_NON_SKIPPABLE_IN_STREAM_AD" - Video non-skippable in-stream ad.
	//   "VIDEO_TRUEVIEW_IN_STREAM_AD" - Video TrueView in-stream ad.
	//   "VIDEO_RESPONSIVE_AD" - Video responsive ad.
	//   "SMART_CAMPAIGN_AD" - Smart campaign ad.
	//   "CALL_AD" - Call ad.
	//   "APP_PRE_REGISTRATION_AD" - Universal app pre-registration ad.
	//   "DEMAND_GEN_MULTI_ASSET_AD" - Demand Gen multi asset ad.
	//   "DEMAND_GEN_CAROUSEL_AD" - Demand Gen carousel ad.
	//   "TRAVEL_AD" - Travel ad.
	//   "DEMAND_GEN_VIDEO_RESPONSIVE_AD" - Demand Gen video responsive ad.
	//   "DEMAND_GEN_PRODUCT_AD" - Demand Gen product ad.
	//   "MULTIMEDIA_AD" - Multimedia ad.
	Type string `json:"type,omitempty"`
	// UrlCollections: Additional URLs for the ad that are tagged with a unique
	// identifier that can be referenced from other fields in the ad.
	UrlCollections []*GoogleAdsSearchads360V23Common__UrlCollection `json:"urlCollections,omitempty"`
	// UrlCustomParameters: The list of mappings that can be used to substitute
	// custom parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`. For mutates, use url custom parameter operations.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AddedByGoogleAds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AddedByGoogleAds") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Ad) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Ad
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroup: An ad group.
type GoogleAdsSearchads360V23Resources__AdGroup struct {
	// AdRotationMode: The ad rotation mode of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The ad rotation mode has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "OPTIMIZE" - Optimize ad group ads based on clicks or conversions.
	//   "ROTATE_FOREVER" - Rotate evenly forever.
	AdRotationMode string `json:"adRotationMode,omitempty"`
	// AiMaxAdGroupSetting: Settings for AI Max feature in standard search
	// adgroups.
	AiMaxAdGroupSetting *GoogleAdsSearchads360V23ResourcesAdGroupAiMaxAdGroupSetting `json:"aiMaxAdGroupSetting,omitempty"`
	// AudienceSetting: Immutable. Setting for audience related features.
	AudienceSetting *GoogleAdsSearchads360V23ResourcesAdGroupAudienceSetting `json:"audienceSetting,omitempty"`
	// BaseAdGroup: Output only. For draft or experiment ad groups, this field is
	// the resource name of the base ad group from which this ad group was created.
	// If a draft or experiment ad group does not have a base ad group, then this
	// field is null. For base ad groups, this field equals the ad group resource
	// name. This field is read-only.
	BaseAdGroup string `json:"baseAdGroup,omitempty"`
	// Campaign: Immutable. The campaign to which the ad group belongs.
	Campaign string `json:"campaign,omitempty"`
	// CpcBidMicros: The maximum CPC (cost-per-click) bid. This field is used when
	// the ad group's effective bidding strategy is Manual CPC. This field is not
	// applicable and will be ignored if the ad group's campaign is using a
	// portfolio bidding strategy.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// CpmBidMicros: The maximum CPM (cost-per-thousand viewable impressions) bid.
	CpmBidMicros int64 `json:"cpmBidMicros,omitempty,string"`
	// CpvBidMicros: The CPV (cost-per-view) bid.
	CpvBidMicros int64 `json:"cpvBidMicros,omitempty,string"`
	// CreationTime: Output only. The timestamp when this ad_group was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// DemandGenAdGroupSettings: Settings for Demand Gen ad groups.
	DemandGenAdGroupSettings *GoogleAdsSearchads360V23ResourcesAdGroupDemandGenAdGroupSettings `json:"demandGenAdGroupSettings,omitempty"`
	// DisplayCustomBidDimension: Lets advertisers specify a targeting dimension on
	// which to place absolute bids. This is only applicable for campaigns that
	// target only the display network and not search.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword criteria, for example, 'mars cruise'. KEYWORD may be
	// used as a custom bid dimension. Keywords are always a targeting dimension,
	// so may not be set as a target "ALL" dimension with TargetRestriction.
	//   "AUDIENCE" - Audience criteria, which include user list, user interest,
	// custom affinity, and custom in market.
	//   "TOPIC" - Topic criteria for targeting categories of content, for example,
	// 'category::Animals>Pets' Used for Display and Video targeting.
	//   "GENDER" - Criteria for targeting gender.
	//   "AGE_RANGE" - Criteria for targeting age ranges.
	//   "PLACEMENT" - Placement criteria, which include websites like
	// 'www.flowers4sale.com', as well as mobile applications, mobile app
	// categories, YouTube videos, and YouTube channels.
	//   "PARENTAL_STATUS" - Criteria for parental status targeting.
	//   "INCOME_RANGE" - Criteria for income range targeting.
	DisplayCustomBidDimension string `json:"displayCustomBidDimension,omitempty"`
	// EffectiveCpcBidMicros: Output only. Value will be same as that of the CPC
	// (cost-per-click) bid value when the bidding strategy is one of manual cpc,
	// enhanced cpc, page one promoted or target outrank share, otherwise the value
	// will be null.
	EffectiveCpcBidMicros int64 `json:"effectiveCpcBidMicros,omitempty,string"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad group. An effective label is a label inherited or
	// directly assigned to this ad group.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EffectiveTargetCpaMicros: Output only. The effective target CPA
	// (cost-per-acquisition). This field is read-only.
	EffectiveTargetCpaMicros int64 `json:"effectiveTargetCpaMicros,omitempty,string"`
	// EffectiveTargetCpaSource: Output only. Source of the effective target CPA.
	// This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveTargetCpaSource string `json:"effectiveTargetCpaSource,omitempty"`
	// EffectiveTargetCpc: Output only. The effective target CPC (cost-per-click).
	// This field is read-only.
	EffectiveTargetCpc int64 `json:"effectiveTargetCpc,omitempty,string"`
	// EffectiveTargetCpcSource: Output only. Source of the effective target CPC.
	// This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveTargetCpcSource string `json:"effectiveTargetCpcSource,omitempty"`
	// EffectiveTargetRoas: Output only. The effective target ROAS
	// (return-on-ad-spend). This field is read-only.
	EffectiveTargetRoas float64 `json:"effectiveTargetRoas,omitempty"`
	// EffectiveTargetRoasSource: Output only. Source of the effective target ROAS.
	// This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveTargetRoasSource string `json:"effectiveTargetRoasSource,omitempty"`
	// EndDate: Output only. Date when the ad group ends serving ads. By default,
	// the ad group ends on the ad group's end date. If this field is set, then the
	// ad group ends at the end of the specified date in the customer's time zone.
	// This field is only available for Microsoft Advertising and Facebook gateway
	// accounts. Format: YYYY-MM-DD Example: 2019-03-14
	EndDate string `json:"endDate,omitempty"`
	// EngineId: Output only. ID of the ad group in the external engine account.
	// This field is for non-Google Ads account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For Google Ads entity, use "ad_group.id" instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. The Engine Status for ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_EXPIRED" - No ads are running for this ad group, because the ad
	// group's end date has passed.
	//   "AD_GROUP_REMOVED" - The ad group has been deleted.
	//   "AD_GROUP_DRAFT" - No ads are running for this ad group because the
	// associated ad group is still in draft form.
	//   "AD_GROUP_PAUSED" - The ad group has been paused.
	//   "AD_GROUP_SERVING" - The ad group is active and currently serving ads.
	//   "AD_GROUP_SUBMITTED" - The ad group has been submitted (Microsoft Bing Ads
	// legacy status).
	//   "CAMPAIGN_PAUSED" - No ads are running for this ad group, because the
	// campaign has been paused.
	//   "ACCOUNT_PAUSED" - No ads are running for this ad group, because the
	// account has been paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// ExcludeDemographicExpansion: When this value is true, demographics will be
	// excluded from the types of targeting which are expanded when
	// optimized_targeting_enabled is true. When optimized_targeting_enabled is
	// false, this field is ignored. Default is false.
	ExcludeDemographicExpansion bool `json:"excludeDemographicExpansion,omitempty"`
	// ExcludedParentAssetFieldTypes: The asset field types that should be excluded
	// from this ad group. Asset links with these field types will not be inherited
	// by this ad group from the upper levels.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	ExcludedParentAssetFieldTypes []string `json:"excludedParentAssetFieldTypes,omitempty"`
	// ExcludedParentAssetSetTypes: The asset set types that should be excluded
	// from this ad group. Asset set links with these types will not be inherited
	// by this ad group from the upper levels. Location group types
	// (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and
	// STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if
	// LOCATION_SYNC is set for this field, all location group asset sets are not
	// allowed to be linked to this ad group, and all Location Extension (LE) and
	// Affiliate Location Extensions (ALE) will not be served under this ad group.
	// Only LOCATION_SYNC is currently supported.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	ExcludedParentAssetSetTypes []string `json:"excludedParentAssetSetTypes,omitempty"`
	// FinalUrlSuffix: URL template for appending params to Final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FixedCpmMicros: The fixed amount in micros that the advertiser pays for
	// every thousand impressions of the ad.
	FixedCpmMicros int64 `json:"fixedCpmMicros,omitempty,string"`
	// Id: Output only. The ID of the ad group.
	Id int64 `json:"id,omitempty,string"`
	// Labels: Output only. The resource names of labels attached to this ad group.
	Labels []string `json:"labels,omitempty"`
	// LanguageCode: Output only. The language of the ads and keywords in an ad
	// group. This field is only available for Microsoft Advertising accounts. More
	// details:
	// https://docs.microsoft.com/en-us/advertising/guides/ad-languages?view=bingads-13#adlanguage
	LanguageCode string `json:"languageCode,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// Name: The name of the ad group. This field is required and should not be
	// empty when creating new ad groups. It must contain fewer than 255 UTF-8
	// full-width characters. It must not contain any null (code point 0x0), NL
	// line feed (code point 0xA) or carriage return (code point 0xD) characters.
	Name string `json:"name,omitempty"`
	// OptimizedTargetingEnabled: True if optimized targeting is enabled. Optimized
	// Targeting is the replacement for Audience Expansion.
	OptimizedTargetingEnabled bool `json:"optimizedTargetingEnabled,omitempty"`
	// PercentCpcBidMicros: The percent cpc bid amount, expressed as a fraction of
	// the advertised price for some good or service. The valid range for the
	// fraction is [0,1) and the value stored here is 1,000,000 * [fraction].
	PercentCpcBidMicros int64 `json:"percentCpcBidMicros,omitempty,string"`
	// PrimaryStatus: Output only. Provides aggregated view into why an ad group is
	// not serving or not serving optimally.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The ad group is eligible to serve.
	//   "PAUSED" - The ad group is paused.
	//   "REMOVED" - The ad group is removed.
	//   "PENDING" - The ad group may serve in the future.
	//   "NOT_ELIGIBLE" - The ad group is not eligible to serve.
	//   "LIMITED" - The ad group has limited servability.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusReasons: Output only. Provides reasons for why an ad group is
	// not serving or not serving optimally.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_REMOVED" - The user-specified campaign status is removed.
	// Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_PAUSED" - The user-specified campaign status is paused.
	// Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_PENDING" - The user-specified time for this campaign to start is
	// in the future. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE
	//   "CAMPAIGN_ENDED" - The user-specified time for this campaign to end has
	// passed. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_PAUSED" - The user-specified ad group status is paused.
	// Contributes to AdGroupPrimaryStatus.PAUSED.
	//   "AD_GROUP_REMOVED" - The user-specified ad group status is removed.
	// Contributes to AdGroupPrimaryStatus.REMOVED.
	//   "AD_GROUP_INCOMPLETE" - The construction of this ad group is not yet
	// complete. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "KEYWORDS_PAUSED" - The user-specified keyword statuses in this ad group
	// are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "NO_KEYWORDS" - No eligible keywords exist in this ad group. Contributes
	// to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_ADS_PAUSED" - The user-specified ad group ads statuses in this
	// ad group are all paused. Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "NO_AD_GROUP_ADS" - No eligible ad group ads exist in this ad group.
	// Contributes to AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "HAS_ADS_DISAPPROVED" - Policy status reason when at least one ad is
	// disapproved. Contributes to multiple AdGroupPrimaryStatus.
	//   "HAS_ADS_LIMITED_BY_POLICY" - Policy status reason when at least one ad is
	// limited by policy. Contributes to multiple AdGroupPrimaryStatus.
	//   "MOST_ADS_UNDER_REVIEW" - Policy status reason when most ads are pending
	// review. Contributes to AdGroupPrimaryStatus.PENDING.
	//   "CAMPAIGN_DRAFT" - The AdGroup belongs to a Draft campaign. Contributes to
	// AdGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_PAUSED_DUE_TO_LOW_ACTIVITY" - Ad group has been paused due to
	// prolonged low activity in serving. Contributes to
	// AdGroupPrimaryStatus.PAUSED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group. Ad group
	// resource names have the form:
	// `customers/{customer_id}/adGroups/{ad_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. Date when this ad group starts serving ads. By
	// default, the ad group starts now or the ad group's start date, whichever is
	// later. If this field is set, then the ad group starts at the beginning of
	// the specified date in the customer's time zone. This field is only available
	// for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD
	// Example: 2019-03-14
	StartDate string `json:"startDate,omitempty"`
	// Status: The status of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group is enabled.
	//   "PAUSED" - The ad group is paused.
	//   "REMOVED" - The ad group is removed.
	Status string `json:"status,omitempty"`
	// TargetCpaMicros: The target CPA (cost-per-acquisition). If the ad group's
	// campaign bidding strategy is TargetCpa or MaximizeConversions (with its
	// target_cpa field set), then this field overrides the target CPA specified in
	// the campaign's bidding strategy. Otherwise, this value is ignored.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// TargetCpcMicros: Average amount in micros that the advertiser is willing to
	// pay for every ad click. Overrides the target CPC configured at the campaign
	// level.
	TargetCpcMicros int64 `json:"targetCpcMicros,omitempty,string"`
	// TargetCpmMicros: Average amount in micros that the advertiser is willing to
	// pay for every thousand times the ad is shown.
	TargetCpmMicros int64 `json:"targetCpmMicros,omitempty,string"`
	// TargetCpvMicros: Average amount in micros that the advertiser is willing to
	// pay for every ad view.
	TargetCpvMicros int64 `json:"targetCpvMicros,omitempty,string"`
	// TargetRoas: The target ROAS (return-on-ad-spend) for this ad group. This
	// field lets you override the target ROAS specified in the campaign's bidding
	// strategy, but only if the campaign is using a standard (not portfolio)
	// `TargetRoas` strategy or a standard `MaximizeConversionValue` strategy with
	// its `target_roas` field set. If the campaign is using a portfolio bidding
	// strategy, this field cannot be set and attempting to do so will result in an
	// error. For any other bidding strategies, this value is ignored. To see the
	// actual target ROAS being used by the ad group, considering potential
	// overrides, query the `effective_target_roas` and
	// `effective_target_roas_source` fields.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// TargetingSetting: Setting for targeting related features.
	TargetingSetting *GoogleAdsSearchads360V23Common__TargetingSetting `json:"targetingSetting,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Immutable. The type of the ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "SEARCH_STANDARD" - The default ad group type for Search campaigns.
	//   "DISPLAY_STANDARD" - The default ad group type for Display campaigns.
	//   "SHOPPING_PRODUCT_ADS" - The ad group type for Shopping campaigns serving
	// standard product ads.
	//   "HOTEL_ADS" - The default ad group type for Hotel campaigns.
	//   "SHOPPING_SMART_ADS" - The type for ad groups in Smart Shopping campaigns.
	//   "VIDEO_BUMPER" - Short unskippable in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_STREAM" - TrueView (skippable) in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_DISPLAY" - TrueView in-display video ads.
	//   "VIDEO_NON_SKIPPABLE_IN_STREAM" - Unskippable in-stream video ads.
	//   "SEARCH_DYNAMIC_ADS" - Ad group type for Dynamic Search Ads ad groups.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - The type for ad groups in Shopping
	// Comparison Listing campaigns.
	//   "PROMOTED_HOTEL_ADS" - The ad group type for Promoted Hotel ad groups.
	//   "VIDEO_RESPONSIVE" - Video responsive ad groups.
	//   "VIDEO_EFFICIENT_REACH" - Video efficient reach ad groups.
	//   "SMART_CAMPAIGN_ADS" - Ad group type for Smart campaigns.
	//   "TRAVEL_ADS" - Ad group type for Travel campaigns.
	Type string `json:"type,omitempty"`
	// UrlCustomParameters: The list of mappings used to substitute custom
	// parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// VerticalAdsFormatSetting: Vertical ads setting feature to enable/disable ad
	// group format controls in search campaigns. This setting requires
	// AiMaxAdGroupSetting to be enabled and a travel feed to be attached to the
	// campaign.
	VerticalAdsFormatSetting *GoogleAdsSearchads360V23ResourcesAdGroupVerticalAdsFormatSetting `json:"verticalAdsFormatSetting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdRotationMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdRotationMode") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__AdGroup) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroup
	var s1 struct {
		EffectiveTargetRoas gensupport.JSONFloat64 `json:"effectiveTargetRoas"`
		TargetRoas          gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.EffectiveTargetRoas = float64(s1.EffectiveTargetRoas)
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23Resources__AdGroupAd: An ad group ad.
type GoogleAdsSearchads360V23Resources__AdGroupAd struct {
	// ActionItems: Output only. A list of recommendations to improve the ad
	// strength. For example, a recommendation could be "Try adding a few more
	// unique headlines or unpinning some assets.".
	ActionItems []string `json:"actionItems,omitempty"`
	// Ad: Immutable. The ad.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// AdGroup: Immutable. The ad group to which the ad belongs.
	AdGroup string `json:"adGroup,omitempty"`
	// AdGroupAdAssetAutomationSettings: Settings that control the types of asset
	// automation. See the AssetAutomationTypeEnum documentation for the default
	// opt in/out behavior of each type.
	AdGroupAdAssetAutomationSettings []*GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting `json:"adGroupAdAssetAutomationSettings,omitempty"`
	// AdStrength: Output only. Overall ad strength for this ad group ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The ad strength is currently pending.
	//   "NO_ADS" - No ads could be generated.
	//   "POOR" - Poor strength.
	//   "AVERAGE" - Average strength.
	//   "GOOD" - Good strength.
	//   "EXCELLENT" - Excellent strength.
	AdStrength string `json:"adStrength,omitempty"`
	// CreationTime: Output only. The timestamp when this ad_group_ad was created.
	// The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	CreationTime string `json:"creationTime,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad. An effective label is a label inherited or directly
	// assigned to this ad.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EngineId: Output only. ID of the ad in the external engine account. This
	// field is for Search Ads 360 account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For non-Search Ads 360 entity, use "ad_group_ad.ad.id"
	// instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. Additional status of the ad in the external
	// engine account. Possible statuses (depending on the type of external
	// account) include active, eligible, pending review, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_AD_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_AD_INAPPROPRIATE_FOR_CAMPAIGN" - Baidu: Creative was not
	// approved.
	//   "AD_GROUP_AD_MOBILE_URL_UNDER_REVIEW" - Baidu: Mobile URL in process to be
	// reviewed.
	//   "AD_GROUP_AD_PARTIALLY_INVALID" - Baidu: Creative is invalid on mobile
	// device but valid on desktop.
	//   "AD_GROUP_AD_TO_BE_ACTIVATED" - Baidu: Creative is ready for activation.
	//   "AD_GROUP_AD_NOT_REVIEWED" - Baidu: Creative not reviewed.
	//   "AD_GROUP_AD_ON_HOLD" - Deprecated. Do not use. Previously used by Gemini
	//   "AD_GROUP_AD_PAUSED" - Creative has been paused.
	//   "AD_GROUP_AD_REMOVED" - Creative has been removed.
	//   "AD_GROUP_AD_PENDING_REVIEW" - Creative is pending review.
	//   "AD_GROUP_AD_UNDER_REVIEW" - Creative is under review.
	//   "AD_GROUP_AD_APPROVED" - Creative has been approved.
	//   "AD_GROUP_AD_DISAPPROVED" - Creative has been disapproved.
	//   "AD_GROUP_AD_SERVING" - Creative is serving.
	//   "AD_GROUP_AD_ACCOUNT_PAUSED" - Creative has been paused because the
	// account is paused.
	//   "AD_GROUP_AD_CAMPAIGN_PAUSED" - Creative has been paused because the
	// campaign is paused.
	//   "AD_GROUP_AD_AD_GROUP_PAUSED" - Creative has been paused because the ad
	// group is paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// Labels: Output only. The resource names of labels attached to this ad group
	// ad.
	Labels []string `json:"labels,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group ad was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// PolicySummary: Output only. Policy information for the ad.
	PolicySummary *GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary `json:"policySummary,omitempty"`
	// PrimaryStatus: Output only. Provides aggregated view into why an ad group ad
	// is not serving or not serving optimally.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The ad group ad is eligible to serve.
	//   "PAUSED" - The ad group ad is paused.
	//   "REMOVED" - The ad group ad is removed.
	//   "PENDING" - The ad cannot serve now, but may serve later without
	// advertiser action.
	//   "LIMITED" - The ad group ad is serving in a limited capacity.
	//   "NOT_ELIGIBLE" - The ad group ad is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusReasons: Output only. Provides reasons for why an ad group ad
	// is not serving or not serving optimally.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_REMOVED" - The user-specified campaign status is removed.
	// Contributes to AdGroupAdPrimaryStatus.REMOVED.
	//   "CAMPAIGN_PAUSED" - The user-specified campaign status is paused.
	// Contributes to AdGroupAdPrimaryStatus.PAUSED.
	//   "CAMPAIGN_PENDING" - The user-specified time for this campaign to start is
	// in the future. Contributes to AdGroupAdPrimaryStatus.PENDING.
	//   "CAMPAIGN_ENDED" - The user-specified time for this campaign to end has
	// passed. Contributes to AdGroupAdPrimaryStatus.ENDED.
	//   "AD_GROUP_PAUSED" - The user-specified ad group status is paused.
	// Contributes to AdGroupAdPrimaryStatus.PAUSED.
	//   "AD_GROUP_REMOVED" - The user-specified ad group status is removed.
	// Contributes to AdGroupAdPrimaryStatus.REMOVED.
	//   "AD_GROUP_AD_PAUSED" - The user-specified ad status is paused. Contributes
	// to AdGroupAdPrimaryStatus.PAUSED.
	//   "AD_GROUP_AD_REMOVED" - The user-specified ad status is removed.
	// Contributes to AdGroupAdPrimaryStatus.REMOVED.
	//   "AD_GROUP_AD_DISAPPROVED" - The ad is disapproved. Contributes to
	// AdGroupAdPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_AD_UNDER_REVIEW" - The ad is under review. Contributes to
	// AdGroupAdPrimaryStatus.PENDING.
	//   "AD_GROUP_AD_POOR_QUALITY" - The ad is poor quality. This is determined by
	// the serving stack that served the Ad. Contributes to
	// AdGroupAdPrimaryStatus.LIMITED.
	//   "AD_GROUP_AD_NO_ADS" - No eligible ads instances could be generated.
	// Contributes to AdGroupAdPrimaryStatus.PENDING.
	//   "AD_GROUP_AD_APPROVED_LABELED" - The ad is internally labeled with a
	// limiting label. Contributes to AdGroupAdPrimaryStatus.LIMITED.
	//   "AD_GROUP_AD_AREA_OF_INTEREST_ONLY" - The ad is only serving in the
	// user-specified area of interest. Contributes to
	// AdGroupAdPrimaryStatus.LIMITED.
	//   "AD_GROUP_AD_UNDER_APPEAL" - The ad is part of an ongoing appeal. This
	// reason does not impact AdGroupAdPrimaryStatus.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the ad. Ad group ad resource
	// names have the form:
	// `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group ad is enabled.
	//   "PAUSED" - The ad group ad is paused.
	//   "REMOVED" - The ad group ad is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionItems") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionItems") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAd) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAd
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting: Asset
// automation setting for an AdGroupAd.
type GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting struct {
	// AssetAutomationStatus: The opt-in/out status for the specified asset
	// automation type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "OPTED_IN" - Opted-in will enable generating and serving an asset
	// automation type.
	//   "OPTED_OUT" - Opted-out will stop generating and serving an asset
	// automation type.
	AssetAutomationStatus string `json:"assetAutomationStatus,omitempty"`
	// AssetAutomationType: The asset automation type that this setting configures.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "TEXT_ASSET_AUTOMATION" - Text asset automation includes headlines and
	// descriptions. By default, advertisers are opted-in for Performance Max and
	// opted-out for Search.
	//   "GENERATE_VERTICAL_YOUTUBE_VIDEOS" - Converts horizontal video assets to
	// vertical orientation using content-aware technology. By default, advertisers
	// are opted in for DemandGenVideoResponsiveAd.
	//   "GENERATE_SHORTER_YOUTUBE_VIDEOS" - Shortens video assets to better
	// capture user attention using content-aware technology.
	//   "GENERATE_LANDING_PAGE_PREVIEW" - Generates a preview of the landing page
	// shown in the engagement panel. By using this feature, you confirm that you
	// own all legal rights to the images on the landing page used by this account
	// (or you have permission to share the images with Google). You hereby
	// instruct Google to publish these images on your behalf for advertising or
	// other commercial purposes.
	//   "GENERATE_ENHANCED_YOUTUBE_VIDEOS" - Generates video enhancements
	// (vertical and shorter videos) for PMax campaigns. Opted in by default.
	//   "GENERATE_IMAGE_ENHANCEMENT" - Generates image enhancements (AutoCrop and
	// AutoEnhance). Opted in by default for pmax.
	//   "GENERATE_IMAGE_EXTRACTION" - Generates image extraction. It defaults to
	// account level Dynamic Image Extension control value.
	//   "GENERATE_DESIGN_VERSIONS_FOR_IMAGES" - Adds design elements and embeds
	// text assets into image assets to create images with different aspect ratios.
	// By default, advertisers are opted in for DemandGenMultiAssetAd.
	//   "FINAL_URL_EXPANSION_TEXT_ASSET_AUTOMATION" - Controls automation for text
	// assets related to Final URL expansion. This includes automatically creating
	// dynamic landing pages from the final URL and generating text assets from the
	// content of those landing pages. This setting is turned OFF by default for
	// Search campaigns, but it is turned ON by default for Performance Max
	// campaigns.
	//   "GENERATE_VIDEOS_FROM_OTHER_ASSETS" - Generates videos using other Assets
	// as input, such as images and text. By default, advertisers are opted in for
	// DemandGenMultiAssetAd.
	AssetAutomationType string `json:"assetAutomationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetAutomationStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetAutomationStatus") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdAssetAutomationSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView: A view on
// the usage of ad group ad asset combination. Now we only support
// AdGroupAdAssetCombinationView for Responsive Search Ads, with more ad types
// planned for the future.
type GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView struct {
	// Enabled: Output only. The status between the asset combination and the
	// latest version of the ad. If true, the asset combination is linked to the
	// latest version of the ad. If false, it means the link once existed but has
	// been removed and is no longer present in the latest version of the ad.
	Enabled bool `json:"enabled,omitempty"`
	// ResourceName: Output only. The resource name of the ad group ad asset
	// combination view. The combination ID is 128 bits long, where the upper 64
	// bits are stored in asset_combination_id_high, and the lower 64 bits are
	// stored in asset_combination_id_low. AdGroupAd Asset Combination view
	// resource names have the form:
	// `customers/{customer_id}/adGroupAdAssetCombinationViews/{AdGroupAd.ad_group_i
	// d}~{AdGroupAd.ad.ad_id}~{AssetCombination.asset_combination_id_low}~{AssetCom
	// bination.asset_combination_id_high}`
	ResourceName string `json:"resourceName,omitempty"`
	// ServedAssets: Output only. Served assets.
	ServedAssets []*GoogleAdsSearchads360V23Common__AssetUsage `json:"servedAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary: Contains
// policy information for an ad group ad asset.
type GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary struct {
	// ApprovalStatus: Output only. The overall approval status of this ad group ad
	// asset, calculated based on the status of its individual policy topic
	// entries.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISAPPROVED" - Will not serve.
	//   "APPROVED_LIMITED" - Serves with restrictions.
	//   "APPROVED" - Serves without restrictions.
	//   "AREA_OF_INTEREST_ONLY" - Will not serve in targeted countries, but may
	// serve for users who are searching for information about the targeted
	// countries.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// PolicyTopicEntries: Output only. The list of policy findings for the ad
	// group ad asset.
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ReviewStatus: Output only. Where in the review process this ad group ad
	// asset is.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "REVIEW_IN_PROGRESS" - Currently under review.
	//   "REVIEWED" - Primary review complete. Other reviews may be continuing.
	//   "UNDER_APPEAL" - The resource has been resubmitted for approval or its
	// policy decision has been appealed.
	//   "ELIGIBLE_MAY_SERVE" - The resource is eligible and may be serving but
	// could still undergo further review.
	ReviewStatus string `json:"reviewStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdAssetView: Represents a link
// between an AdGroupAd and an Asset. This view provides insights into the
// performance of assets within specific ads. AdGroupAdAssetView supports the
// following ad types: * App Ads * Demand Gen campaigns * Responsive Search Ads
// It does not support Responsive Display Ads.
type GoogleAdsSearchads360V23Resources__AdGroupAdAssetView struct {
	// AdGroupAd: Output only. The ad group ad to which the asset is linked.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Asset: Output only. The asset which is linked to the ad group ad.
	Asset string `json:"asset,omitempty"`
	// Enabled: Output only. The status between the asset and the latest version of
	// the ad. If true, the asset is linked to the latest version of the ad. If
	// false, it means the link once existed but has been removed and is no longer
	// present in the latest version of the ad.
	Enabled bool `json:"enabled,omitempty"`
	// FieldType: Output only. Role that the asset takes in the ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// PerformanceLabel: Output only. Performance of an asset linkage.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - This asset does not yet have any performance informantion.
	// This may be because it is still under review.
	//   "LEARNING" - The asset has started getting impressions but the stats are
	// not statistically significant enough to get an asset performance label.
	//   "LOW" - Worst performing assets.
	//   "GOOD" - Good performing assets.
	//   "BEST" - Best performing assets.
	//   "NOT_APPLICABLE" - Performance label cannot be assigned to this asset.
	// This may be because it's not used by asset based creatives.
	PerformanceLabel string `json:"performanceLabel,omitempty"`
	// PinnedField: Output only. Pinned field.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "HEADLINE_1" - The asset is used in headline 1.
	//   "HEADLINE_2" - The asset is used in headline 2.
	//   "HEADLINE_3" - The asset is used in headline 3.
	//   "DESCRIPTION_1" - The asset is used in description 1.
	//   "DESCRIPTION_2" - The asset is used in description 2.
	//   "HEADLINE" - The asset was used in a headline. Use this only if there is
	// only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or
	// HEADLINE_3 enums
	//   "HEADLINE_IN_PORTRAIT" - The asset was used as a headline in portrait
	// image.
	//   "LONG_HEADLINE" - The asset was used in a long headline (used in
	// MultiAssetResponsiveAd).
	//   "DESCRIPTION" - The asset was used in a description. Use this only if
	// there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or
	// DESCRIPTION_@ enums
	//   "DESCRIPTION_IN_PORTRAIT" - The asset was used as description in portrait
	// image.
	//   "BUSINESS_NAME_IN_PORTRAIT" - The asset was used as business name in
	// portrait image.
	//   "BUSINESS_NAME" - The asset was used as business name.
	//   "MARKETING_IMAGE" - The asset was used as a marketing image.
	//   "MARKETING_IMAGE_IN_PORTRAIT" - The asset was used as a marketing image in
	// portrait image.
	//   "SQUARE_MARKETING_IMAGE" - The asset was used as a square marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset was used as a portrait marketing
	// image.
	//   "LOGO" - The asset was used as a logo.
	//   "LANDSCAPE_LOGO" - The asset was used as a landscape logo.
	//   "CALL_TO_ACTION" - The asset was used as a call-to-action.
	//   "YOU_TUBE_VIDEO" - The asset was used as a YouTube video.
	//   "SITELINK" - This asset is used as a sitelink.
	//   "CALL" - This asset is used as a call.
	//   "MOBILE_APP" - This asset is used as a mobile app.
	//   "CALLOUT" - This asset is used as a callout.
	//   "STRUCTURED_SNIPPET" - This asset is used as a structured snippet.
	//   "PRICE" - This asset is used as a price.
	//   "PROMOTION" - This asset is used as a promotion.
	//   "AD_IMAGE" - This asset is used as an image.
	//   "LEAD_FORM" - The asset is used as a lead form.
	//   "BUSINESS_LOGO" - The asset is used as a business logo.
	//   "DESCRIPTION_PREFIX" - The asset is used as a description prefix.
	//   "HEADLINE_AS_SITELINK_POSITION_ONE" - A headline asset used as a sitelink
	// in position 1.
	//   "HEADLINE_AS_SITELINK_POSITION_TWO" - A headline asset used as a sitelink
	// in position 2.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_ONE" - A description line
	// asset used as a sitelink in position 1.
	//   "DESCRIPTION_LINE_HEADLINE_AS_SITELINK_POSITION_TWO" - A description line
	// asset used as a sitelink in position 2.
	PinnedField string `json:"pinnedField,omitempty"`
	// PolicySummary: Output only. Policy information for the ad group ad asset.
	PolicySummary *GoogleAdsSearchads360V23Resources__AdGroupAdAssetPolicySummary `json:"policySummary,omitempty"`
	// ResourceName: Output only. The resource name of the ad group ad asset view.
	// Ad group ad asset view resource names have the form (Before V4):
	// `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGrou
	// pAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}` Ad
	// group ad asset view resource names have the form (Beginning from V4):
	// `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{Ad
	// GroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Source: Output only. Source of the ad group ad asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdAssetView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdAssetView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel: A relationship
// between an ad group ad and an effective label. An effective label is a label
// inherited or directly assigned to this ad group ad.
type GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel struct {
	// AdGroupAd: Immutable. The ad group ad to which the effective label is
	// attached.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group ad.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group ad effective
	// label. Ad group ad effective label resource names have the form:
	// `customers/{owner_customer_id}/adGroupAdEffectiveLabels/{ad_group_id}~{ad_id}
	// ~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdLabel: A relationship between an
// ad group ad and a label.
type GoogleAdsSearchads360V23Resources__AdGroupAdLabel struct {
	// AdGroupAd: Immutable. The ad group ad to which the label is attached.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Label: Immutable. The label assigned to the ad group ad.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group ad label. Ad
	// group ad label resource names have the form:
	// `customers/{owner_customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary: Contains policy
// information for an ad.
type GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary struct {
	// ApprovalStatus: Output only. The overall approval status of this ad,
	// calculated based on the status of its individual policy topic entries.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISAPPROVED" - Will not serve.
	//   "APPROVED_LIMITED" - Serves with restrictions.
	//   "APPROVED" - Serves without restrictions.
	//   "AREA_OF_INTEREST_ONLY" - Will not serve in targeted countries, but may
	// serve for users who are searching for information about the targeted
	// countries.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// PolicyTopicEntries: Output only. The list of policy findings for this ad.
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ReviewStatus: Output only. Where in the review process this ad is.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "REVIEW_IN_PROGRESS" - Currently under review.
	//   "REVIEWED" - Primary review complete. Other reviews may be continuing.
	//   "UNDER_APPEAL" - The resource has been resubmitted for approval or its
	// policy decision has been appealed.
	//   "ELIGIBLE_MAY_SERVE" - The resource is eligible and may be serving but
	// could still undergo further review.
	ReviewStatus string `json:"reviewStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAdPolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAsset: A link between an ad group
// and an asset.
type GoogleAdsSearchads360V23Resources__AdGroupAsset struct {
	// AdGroup: Required. Immutable. The ad group to which the asset is linked.
	AdGroup string `json:"adGroup,omitempty"`
	// Asset: Required. Immutable. The asset which is linked to the ad group.
	Asset string `json:"asset,omitempty"`
	// FieldType: Required. Immutable. Role that the asset takes under the linked
	// ad group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// PrimaryStatus: Output only. Provides the PrimaryStatus of this asset link.
	// Primary status is meant essentially to differentiate between the plain
	// "status" field, which has advertiser set values of enabled, paused, or
	// removed. The primary status takes into account other signals (for assets its
	// mainly policy and quality approvals) to come up with a more comprehensive
	// status to indicate its serving state.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset is eligible to serve.
	//   "PAUSED" - The user-specified asset link status is paused.
	//   "REMOVED" - The user-specified asset link status is removed.
	//   "PENDING" - The asset may serve in the future.
	//   "LIMITED" - The asset is serving in a partial capacity.
	//   "NOT_ELIGIBLE" - The asset is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusDetails: Output only. Provides the details of the primary
	// status and its associated reasons.
	PrimaryStatusDetails []*GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails `json:"primaryStatusDetails,omitempty"`
	// PrimaryStatusReasons: Output only. Provides a list of reasons for why an
	// asset is not serving or not serving at full capacity.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_LINK_PAUSED" - The asset is paused for its linked rollup level.
	// Contributes to a PrimaryStatus of PAUSED.
	//   "ASSET_LINK_REMOVED" - The asset is removed for its linked rollup level.
	// Contributes to a PrimaryStatus of REMOVED.
	//   "ASSET_DISAPPROVED" - The asset has been marked as disapproved.
	// Contributes to a PrimaryStatus of NOT_ELIGIBLE
	//   "ASSET_UNDER_REVIEW" - The asset has not completed policy review.
	// Contributes to a PrimaryStatus of PENDING.
	//   "ASSET_APPROVED_LABELED" - The asset is approved with policies applied.
	// Contributes to a PrimaryStatus of LIMITED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group asset.
	// AdGroupAsset resource names have the form:
	// `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Source: Output only. Source of the adgroup asset link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// Status: Status of the ad group asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAssetSet: AdGroupAssetSet is the
// linkage between an ad group and an asset set. Creating an AdGroupAssetSet
// links an asset set with an ad group.
type GoogleAdsSearchads360V23Resources__AdGroupAssetSet struct {
	// AdGroup: Immutable. The ad group to which this asset set is linked.
	AdGroup string `json:"adGroup,omitempty"`
	// AssetSet: Immutable. The asset set which is linked to the ad group.
	AssetSet string `json:"assetSet,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group asset set. Ad
	// group asset set resource names have the form:
	// `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the ad group asset set. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupAudienceView: An ad group audience
// view. Includes performance data from interests and remarketing lists for
// Display Network and YouTube Network ads, and remarketing lists for search
// ads (RLSA), aggregated at the audience level.
type GoogleAdsSearchads360V23Resources__AdGroupAudienceView struct {
	// ResourceName: Output only. The resource name of the ad group audience view.
	// Ad group audience view resource names have the form:
	// `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupAudienceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupAudienceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupBidModifier: Represents an ad
// group bid modifier.
type GoogleAdsSearchads360V23Resources__AdGroupBidModifier struct {
	// AdGroup: Immutable. The ad group to which this criterion belongs.
	AdGroup string `json:"adGroup,omitempty"`
	// BaseAdGroup: Output only. The base ad group from which this draft/trial
	// adgroup bid modifier was created. If ad_group is a base ad group then this
	// field will be equal to ad_group. If the ad group was created in the draft or
	// trial and has no corresponding base ad group, then this field will be null.
	// This field is readonly.
	BaseAdGroup string `json:"baseAdGroup,omitempty"`
	// BidModifier: The modifier for the bid when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Use 0 to opt out of a Device
	// type.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// BidModifierSource: Output only. Bid modifier source.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN" - The bid modifier is specified at the campaign level, on the
	// campaign level criterion.
	//   "AD_GROUP" - The bid modifier is specified (overridden) at the ad group
	// level.
	BidModifierSource string `json:"bidModifierSource,omitempty"`
	// CriterionId: Output only. The ID of the criterion to bid modify. This field
	// is ignored for mutates.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Device: Immutable. A device criterion.
	Device *GoogleAdsSearchads360V23Common__DeviceInfo `json:"device,omitempty"`
	// HotelAdvanceBookingWindow: Immutable. Criterion for number of days prior to
	// the stay the booking is being made.
	HotelAdvanceBookingWindow *GoogleAdsSearchads360V23Common__HotelAdvanceBookingWindowInfo `json:"hotelAdvanceBookingWindow,omitempty"`
	// HotelCheckInDateRange: Immutable. Criterion for a hotel check-in date range.
	HotelCheckInDateRange *GoogleAdsSearchads360V23Common__HotelCheckInDateRangeInfo `json:"hotelCheckInDateRange,omitempty"`
	// HotelCheckInDay: Immutable. Criterion for day of the week the booking is
	// for.
	HotelCheckInDay *GoogleAdsSearchads360V23Common__HotelCheckInDayInfo `json:"hotelCheckInDay,omitempty"`
	// HotelDateSelectionType: Immutable. Criterion for hotel date selection
	// (default dates versus user selected).
	HotelDateSelectionType *GoogleAdsSearchads360V23Common__HotelDateSelectionTypeInfo `json:"hotelDateSelectionType,omitempty"`
	// HotelLengthOfStay: Immutable. Criterion for length of hotel stay in nights.
	HotelLengthOfStay *GoogleAdsSearchads360V23Common__HotelLengthOfStayInfo `json:"hotelLengthOfStay,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group bid modifier. Ad
	// group bid modifier resource names have the form:
	// `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupBidModifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupBidModifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__AdGroupBidModifier) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupBidModifier
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V23Resources__AdGroupCriterion: An ad group criterion.
// The ad_group_criterion report only returns criteria that were explicitly
// added to the ad group.
type GoogleAdsSearchads360V23Resources__AdGroupCriterion struct {
	// AdGroup: Immutable. The ad group to which the criterion belongs.
	AdGroup string `json:"adGroup,omitempty"`
	// AgeRange: Immutable. Age range.
	AgeRange *GoogleAdsSearchads360V23Common__AgeRangeInfo `json:"ageRange,omitempty"`
	// AppPaymentModel: Immutable. App Payment Model.
	AppPaymentModel *GoogleAdsSearchads360V23Common__AppPaymentModelInfo `json:"appPaymentModel,omitempty"`
	// ApprovalStatus: Output only. Approval status of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "APPROVED" - Approved.
	//   "DISAPPROVED" - Disapproved.
	//   "PENDING_REVIEW" - Pending Review.
	//   "UNDER_REVIEW" - Under review.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// Audience: Immutable. Audience.
	Audience *GoogleAdsSearchads360V23Common__AudienceInfo `json:"audience,omitempty"`
	// BidModifier: The modifier for the bid when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Most targetable criteria types
	// support modifiers.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// BrandList: Immutable. Brand list criterion.
	BrandList *GoogleAdsSearchads360V23Common__BrandListInfo `json:"brandList,omitempty"`
	// CombinedAudience: Immutable. Combined Audience.
	CombinedAudience *GoogleAdsSearchads360V23Common__CombinedAudienceInfo `json:"combinedAudience,omitempty"`
	// CpcBidMicros: The CPC (cost-per-click) bid.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// CpmBidMicros: The CPM (cost-per-thousand viewable impressions) bid.
	CpmBidMicros int64 `json:"cpmBidMicros,omitempty,string"`
	// CpvBidMicros: The CPV (cost-per-view) bid.
	CpvBidMicros int64 `json:"cpvBidMicros,omitempty,string"`
	// CreationTime: Output only. The timestamp when this ad group criterion was
	// created. The timestamp is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss" format.
	CreationTime string `json:"creationTime,omitempty"`
	// CriterionId: Output only. The ID of the criterion.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// CustomAffinity: Immutable. Custom Affinity.
	CustomAffinity *GoogleAdsSearchads360V23Common__CustomAffinityInfo `json:"customAffinity,omitempty"`
	// CustomAudience: Immutable. Custom Audience.
	CustomAudience *GoogleAdsSearchads360V23Common__CustomAudienceInfo `json:"customAudience,omitempty"`
	// CustomIntent: Immutable. Custom Intent.
	CustomIntent *GoogleAdsSearchads360V23Common__CustomIntentInfo `json:"customIntent,omitempty"`
	// DisapprovalReasons: Output only. List of disapproval reasons of the
	// criterion. The different reasons for disapproving a criterion can be found
	// here: https://support.google.com/adspolicy/answer/6008942 This field is
	// read-only.
	DisapprovalReasons []string `json:"disapprovalReasons,omitempty"`
	// DisplayName: Output only. The display name of the criterion.
	DisplayName string `json:"displayName,omitempty"`
	// EffectiveCpcBidMicros: Output only. The effective CPC (cost-per-click) bid.
	EffectiveCpcBidMicros int64 `json:"effectiveCpcBidMicros,omitempty,string"`
	// EffectiveCpcBidSource: Output only. Source of the effective CPC bid.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveCpcBidSource string `json:"effectiveCpcBidSource,omitempty"`
	// EffectiveCpmBidMicros: Output only. The effective CPM (cost-per-thousand
	// viewable impressions) bid.
	EffectiveCpmBidMicros int64 `json:"effectiveCpmBidMicros,omitempty,string"`
	// EffectiveCpmBidSource: Output only. Source of the effective CPM bid.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveCpmBidSource string `json:"effectiveCpmBidSource,omitempty"`
	// EffectiveCpvBidMicros: Output only. The effective CPV (cost-per-view) bid.
	EffectiveCpvBidMicros int64 `json:"effectiveCpvBidMicros,omitempty,string"`
	// EffectiveCpvBidSource: Output only. Source of the effective CPV bid.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectiveCpvBidSource string `json:"effectiveCpvBidSource,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this ad group criterion. An effective label is a label inherited
	// or directly assigned to this ad group criterion.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EffectivePercentCpcBidMicros: Output only. The effective Percent CPC bid
	// amount.
	EffectivePercentCpcBidMicros int64 `json:"effectivePercentCpcBidMicros,omitempty,string"`
	// EffectivePercentCpcBidSource: Output only. Source of the effective Percent
	// CPC bid.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BIDDING_STRATEGY" - Effective bid or target is inherited from
	// campaign bidding strategy.
	//   "AD_GROUP" - The bid or target is defined on the ad group.
	//   "AD_GROUP_CRITERION" - The bid or target is defined on the ad group
	// criterion.
	EffectivePercentCpcBidSource string `json:"effectivePercentCpcBidSource,omitempty"`
	// EngineId: Output only. ID of the ad group criterion in the external engine
	// account. This field is for non-Google Ads account only, for example, Yahoo
	// Japan, Microsoft, Baidu etc. For Google Ads entity, use
	// "ad_group_criterion.criterion_id" instead.
	EngineId string `json:"engineId,omitempty"`
	// EngineStatus: Output only. The Engine Status for ad group criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_GROUP_CRITERION_ELIGIBLE" - Deprecated. Do not use.
	//   "AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN" - Baidu: Bid or quality
	// too low to be displayed.
	//   "AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH" - Baidu: Bid or quality too low
	// for mobile, but eligible to display for desktop.
	//   "AD_GROUP_CRITERION_INVALID_PC_SEARCH" - Baidu: Bid or quality too low for
	// desktop, but eligible to display for mobile.
	//   "AD_GROUP_CRITERION_INVALID_SEARCH" - Baidu: Bid or quality too low to be
	// displayed.
	//   "AD_GROUP_CRITERION_LOW_SEARCH_VOLUME" - Baidu: Paused by Baidu due to low
	// search volume.
	//   "AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW" - Baidu: Mobile URL in
	// process to be reviewed.
	//   "AD_GROUP_CRITERION_PARTIALLY_INVALID" - Baidu: The landing page for one
	// device is invalid, while the landing page for the other device is valid.
	//   "AD_GROUP_CRITERION_TO_BE_ACTIVATED" - Baidu: Keyword has been created and
	// paused by Baidu account management, and is now ready for you to activate it.
	//   "AD_GROUP_CRITERION_UNDER_REVIEW" - Baidu: In process to be reviewed by
	// Baidu. Gemini: Criterion under review.
	//   "AD_GROUP_CRITERION_NOT_REVIEWED" - Baidu: Criterion to be reviewed.
	//   "AD_GROUP_CRITERION_ON_HOLD" - Deprecated. Do not use. Previously used by
	// Gemini
	//   "AD_GROUP_CRITERION_PENDING_REVIEW" - Y!J : Criterion pending review
	//   "AD_GROUP_CRITERION_PAUSED" - Criterion has been paused.
	//   "AD_GROUP_CRITERION_REMOVED" - Criterion has been removed.
	//   "AD_GROUP_CRITERION_APPROVED" - Criterion has been approved.
	//   "AD_GROUP_CRITERION_DISAPPROVED" - Criterion has been disapproved.
	//   "AD_GROUP_CRITERION_SERVING" - Criterion is active and serving.
	//   "AD_GROUP_CRITERION_ACCOUNT_PAUSED" - Criterion has been paused since the
	// account is paused.
	EngineStatus string `json:"engineStatus,omitempty"`
	// ExtendedDemographic: Immutable. Extended demographic criterion.
	ExtendedDemographic *GoogleAdsSearchads360V23Common__ExtendedDemographicInfo `json:"extendedDemographic,omitempty"`
	// FinalMobileUrls: The list of possible final mobile URLs after all
	// cross-domain redirects.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: URL template for appending params to final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: The list of possible final URLs after all cross-domain redirects
	// for the ad.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Gender: Immutable. Gender.
	Gender *GoogleAdsSearchads360V23Common__GenderInfo `json:"gender,omitempty"`
	// IncomeRange: Immutable. Income range.
	IncomeRange *GoogleAdsSearchads360V23Common__IncomeRangeInfo `json:"incomeRange,omitempty"`
	// Keyword: Immutable. Keyword.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// Labels: Output only. The resource names of labels attached to this ad group
	// criterion.
	Labels []string `json:"labels,omitempty"`
	// Language: Immutable. Language.
	Language *GoogleAdsSearchads360V23Common__LanguageInfo `json:"language,omitempty"`
	// LastModifiedTime: Output only. The datetime when this ad group criterion was
	// last modified. The datetime is in the customer's time zone and in
	// "yyyy-MM-dd HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// LifeEvent: Immutable. Life event campaign criterion.
	LifeEvent *GoogleAdsSearchads360V23Common__LifeEventInfo `json:"lifeEvent,omitempty"`
	// ListingGroup: Immutable. Listing group.
	ListingGroup *GoogleAdsSearchads360V23Common__ListingGroupInfo `json:"listingGroup,omitempty"`
	// Location: Immutable. Location.
	Location *GoogleAdsSearchads360V23Common__LocationInfo `json:"location,omitempty"`
	// MobileAppCategory: Immutable. Mobile app category.
	MobileAppCategory *GoogleAdsSearchads360V23Common__MobileAppCategoryInfo `json:"mobileAppCategory,omitempty"`
	// MobileApplication: Immutable. Mobile application.
	MobileApplication *GoogleAdsSearchads360V23Common__MobileApplicationInfo `json:"mobileApplication,omitempty"`
	// Negative: Immutable. Whether to target (`false`) or exclude (`true`) the
	// criterion. This field is immutable. To switch a criterion from positive to
	// negative, remove then re-add it.
	Negative bool `json:"negative,omitempty"`
	// ParentalStatus: Immutable. Parental status.
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusInfo `json:"parentalStatus,omitempty"`
	// PercentCpcBidMicros: The CPC bid amount, expressed as a fraction of the
	// advertised price for some good or service. The valid range for the fraction
	// is [0,1) and the value stored here is 1,000,000 * [fraction].
	PercentCpcBidMicros int64 `json:"percentCpcBidMicros,omitempty,string"`
	// Placement: Immutable. Placement.
	Placement *GoogleAdsSearchads360V23Common__PlacementInfo `json:"placement,omitempty"`
	// PositionEstimates: Output only. Estimates for criterion bids at various
	// positions.
	PositionEstimates *GoogleAdsSearchads360V23ResourcesAdGroupCriterionPositionEstimates `json:"positionEstimates,omitempty"`
	// PrimaryStatus: Output only. The primary status for the ad group criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The ad group criterion is eligible to serve.
	//   "PAUSED" - The ad group criterion is paused.
	//   "REMOVED" - The ad group criterion is removed.
	//   "PENDING" - The ad group criterion is pending.
	//   "NOT_ELIGIBLE" - The ad group criterion is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusReasons: Output only. The primary status reasons for the ad
	// group criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents unknown value in this
	// version.
	//   "CAMPAIGN_PENDING" - The user-specified time for this campaign to start is
	// in the future. Contributes to AdGroupCriterionPrimaryStatus.PENDING.
	//   "CAMPAIGN_CRITERION_NEGATIVE" - The ad group criterion is overridden by
	// negative campaign criterion. Contributes to
	// AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_PAUSED" - The user-specified campaign status is paused.
	// Contributes to AdGroupCriterionPrimaryStatus.PAUSED.
	//   "CAMPAIGN_REMOVED" - The user-specified campaign status is removed.
	// Contributes to AdGroupCriterionPrimaryStatus.REMOVED.
	//   "CAMPAIGN_ENDED" - The user-specified time for this campaign to end has
	// passed. Contributes to AdGroupCriterionPrimaryStatus.ENDED.
	//   "AD_GROUP_PAUSED" - The user-specified ad group status is paused.
	// Contributes to AdGroupCriterionPrimaryStatus.PAUSED.
	//   "AD_GROUP_REMOVED" - The user-specified ad group status is removed.
	// Contributes to AdGroupCriterionPrimaryStatus.REMOVED.
	//   "AD_GROUP_CRITERION_DISAPPROVED" - The ad group criterion is disapproved
	// by the ads approval system. Contributes to
	// AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_CRITERION_RARELY_SERVED" - The ad group criterion is rarely
	// served. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_CRITERION_LOW_QUALITY" - The ad group criterion has a low
	// quality score. Contributes to AdGroupCriterionPrimaryStatus.LIMITED.
	//   "AD_GROUP_CRITERION_UNDER_REVIEW" - The ad group criterion is under
	// review. Contributes to AdGroupCriterionPrimaryStatus.PENDING.
	//   "AD_GROUP_CRITERION_PENDING_REVIEW" - The ad group criterion is pending
	// review. Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_CRITERION_BELOW_FIRST_PAGE_BID" - The ad group criterion's bid
	// is below the value necessary to serve on the first page. Contributes to
	// AdGroupCriterionPrimaryStatus.LIMITED.
	//   "AD_GROUP_CRITERION_NEGATIVE" - The ad group criterion is negative.
	// Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_CRITERION_RESTRICTED" - The ad group criterion is restricted.
	// Contributes to AdGroupCriterionPrimaryStatus.NOT_ELIGIBLE.
	//   "AD_GROUP_CRITERION_PAUSED" - The user-specified ad group criterion status
	// is paused. Contributes to AdGroupCriterionPrimaryStatus.PAUSED.
	//   "AD_GROUP_CRITERION_PAUSED_DUE_TO_LOW_ACTIVITY" - The ad group criterion
	// has been paused due to prolonged low activity in serving. Contributes to
	// AdGroupCriterionPrimaryStatus.PAUSED.
	//   "AD_GROUP_CRITERION_REMOVED" - The user-specified ad group criterion
	// status is removed. Contributes to AdGroupCriterionPrimaryStatus.REMOVED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// QualityInfo: Output only. Information regarding the quality of the
	// criterion.
	QualityInfo *GoogleAdsSearchads360V23ResourcesAdGroupCriterionQualityInfo `json:"qualityInfo,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group criterion. Ad
	// group criterion resource names have the form:
	// `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the criterion. This is the status of the ad group
	// criterion entity, set by the client. Note: UI reports may incorporate
	// additional information that affects whether a criterion is eligible to run.
	// In some cases a criterion that's REMOVED in the API can still show as
	// enabled in the UI. For example, campaigns by default show to users of all
	// age ranges unless excluded. The UI will show each age range as "enabled",
	// since they're eligible to see the ads; but AdGroupCriterion.status will show
	// "removed", since no positive criterion was added.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The ad group criterion is enabled.
	//   "PAUSED" - The ad group criterion is paused.
	//   "REMOVED" - The ad group criterion is removed.
	Status string `json:"status,omitempty"`
	// SystemServingStatus: Output only. Serving status of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ELIGIBLE" - Eligible.
	//   "RARELY_SERVED" - Low search volume.
	SystemServingStatus string `json:"systemServingStatus,omitempty"`
	// Topic: Immutable. Topic.
	Topic *GoogleAdsSearchads360V23Common__TopicInfo `json:"topic,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "NEGATIVE_KEYWORD_LIST" - Negative Keyword List
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "SEARCH_THEME" - Search Theme.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	//   "WEBPAGE_LIST" - Webpage List
	//   "VIDEO_LINEUP" - Video lineup
	//   "PLACEMENT_LIST" - Placement List
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST" - A list of rules for item groups in
	// Vertical Ads.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE" - A rule for an item group in Vertical Ads.
	Type string `json:"type,omitempty"`
	// UrlCustomParameters: The list of mappings used to substitute custom
	// parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// UserInterest: Immutable. User Interest.
	UserInterest *GoogleAdsSearchads360V23Common__UserInterestInfo `json:"userInterest,omitempty"`
	// UserList: Immutable. User List.
	UserList *GoogleAdsSearchads360V23Common__UserListInfo `json:"userList,omitempty"`
	// VerticalAdsItemGroupRuleList: Immutable. Vertical ads item group rule list
	// criterion.
	VerticalAdsItemGroupRuleList *GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleListInfo `json:"verticalAdsItemGroupRuleList,omitempty"`
	// VideoLineup: Immutable. Video lineup criterion.
	VideoLineup *GoogleAdsSearchads360V23Common__VideoLineupInfo `json:"videoLineup,omitempty"`
	// Webpage: Immutable. Webpage
	Webpage *GoogleAdsSearchads360V23Common__WebpageInfo `json:"webpage,omitempty"`
	// YoutubeChannel: Immutable. YouTube Channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeVideo: Immutable. YouTube Video.
	YoutubeVideo *GoogleAdsSearchads360V23Common__YouTubeVideoInfo `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__AdGroupCriterion) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterion
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer: A customizer
// value for the associated CustomizerAttribute at the AdGroupCriterion level.
type GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer struct {
	// AdGroupCriterion: Immutable. The ad group criterion to which the customizer
	// attribute is linked. It must be a keyword criterion.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// CustomizerAttribute: Required. Immutable. The customizer attribute which is
	// linked to the ad group criterion.
	CustomizerAttribute string `json:"customizerAttribute,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group criterion
	// customizer. Ad group criterion customizer resource names have the form:
	// `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion
	// _id}~{customizer_attribute_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the ad group criterion customizer.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The customizer value is enabled.
	//   "REMOVED" - The customizer value is removed.
	Status string `json:"status,omitempty"`
	// Value: Required. The value to associate with the customizer attribute at
	// this level. The value must be of the type specified for the
	// CustomizerAttribute.
	Value *GoogleAdsSearchads360V23Common__CustomizerValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel: A
// relationship between an ad group criterion and an effective label. An
// effective label is a label inherited or directly assigned to this ad group
// criterion.
type GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel struct {
	// AdGroupCriterion: Immutable. The ad group criterion to which the effective
	// label is attached.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group criterion.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group criterion
	// effective label. Ad group criterion effective label resource names have the
	// form:
	// `customers/{owner_customer_id}/adGroupCriterionEffectiveLabels/{ad_group_id}~
	// {criterion_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel: A relationship
// between an ad group criterion and a label.
type GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel struct {
	// AdGroupCriterion: Immutable. The ad group criterion to which the label is
	// attached.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Label: Immutable. The label assigned to the ad group criterion.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group criterion label.
	// Ad group criterion label resource names have the form:
	// `customers/{owner_customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterio
	// n_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation: An ad group
// criterion simulation. Supported combinations of advertising channel type,
// criterion type, simulation type, and simulation modification method are
// detailed below respectively. Hotel AdGroupCriterion simulation operations
// starting in V5. 1. DISPLAY - KEYWORD - CPC_BID - UNIFORM 2. SEARCH - KEYWORD
// - CPC_BID - UNIFORM 3. SHOPPING - LISTING_GROUP - CPC_BID - UNIFORM 4. HOTEL
// - LISTING_GROUP - CPC_BID - UNIFORM 5. HOTEL - LISTING_GROUP -
// PERCENT_CPC_BID - UNIFORM
type GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation struct {
	// AdGroupId: Output only. AdGroup ID of the simulation.
	AdGroupId int64 `json:"adGroupId,omitempty,string"`
	// CpcBidPointList: Output only. Simulation points if the simulation type is
	// CPC_BID.
	CpcBidPointList *GoogleAdsSearchads360V23Common__CpcBidSimulationPointList `json:"cpcBidPointList,omitempty"`
	// CriterionId: Output only. Criterion ID of the simulation.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// EndDate: Output only. Last day on which the simulation is based, in
	// YYYY-MM-DD format.
	EndDate string `json:"endDate,omitempty"`
	// ModificationMethod: Output only. How the simulation modifies the field.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UNIFORM" - The values in a simulation were applied to all children of a
	// given resource uniformly. Overrides on child resources were not respected.
	//   "DEFAULT" - The values in a simulation were applied to the given resource.
	// Overrides on child resources were respected, and traffic estimates do not
	// include these resources.
	//   "SCALING" - The values in a simulation were all scaled by the same factor.
	// For example, in a simulated TargetCpa campaign, the campaign target and all
	// ad group targets were scaled by a factor of X.
	ModificationMethod string `json:"modificationMethod,omitempty"`
	// PercentCpcBidPointList: Output only. Simulation points if the simulation
	// type is PERCENT_CPC_BID.
	PercentCpcBidPointList *GoogleAdsSearchads360V23Common__PercentCpcBidSimulationPointList `json:"percentCpcBidPointList,omitempty"`
	// ResourceName: Output only. The resource name of the ad group criterion
	// simulation. Ad group criterion simulation resource names have the form:
	// `customers/{customer_id}/adGroupCriterionSimulations/{ad_group_id}~{criterion
	// _id}~{type}~{modification_method}~{start_date}~{end_date}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. First day on which the simulation is based, in
	// YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// Type: Output only. The field that the simulation modifies.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CPC_BID" - The simulation is for a CPC bid.
	//   "CPV_BID" - The simulation is for a CPV bid.
	//   "TARGET_CPA" - The simulation is for a CPA target.
	//   "BID_MODIFIER" - The simulation is for a bid modifier.
	//   "TARGET_ROAS" - The simulation is for a ROAS target.
	//   "PERCENT_CPC_BID" - The simulation is for a percent CPC bid.
	//   "TARGET_IMPRESSION_SHARE" - The simulation is for an impression share
	// target.
	//   "BUDGET" - The simulation is for a budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupCustomizer: A customizer value for
// the associated CustomizerAttribute at the AdGroup level.
type GoogleAdsSearchads360V23Resources__AdGroupCustomizer struct {
	// AdGroup: Immutable. The ad group to which the customizer attribute is
	// linked.
	AdGroup string `json:"adGroup,omitempty"`
	// CustomizerAttribute: Required. Immutable. The customizer attribute which is
	// linked to the ad group.
	CustomizerAttribute string `json:"customizerAttribute,omitempty"`
	// ResourceName: Immutable. The resource name of the ad group customizer. Ad
	// group customizer resource names have the form:
	// `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribu
	// te_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the ad group customizer.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The customizer value is enabled.
	//   "REMOVED" - The customizer value is removed.
	Status string `json:"status,omitempty"`
	// Value: Required. The value to associate with the customizer attribute at
	// this level. The value must be of the type specified for the
	// CustomizerAttribute.
	Value *GoogleAdsSearchads360V23Common__CustomizerValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupCustomizer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupCustomizer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel: A relationship
// between an ad group and an effective label. An effective label is a label
// inherited or directly assigned to this ad group.
type GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel struct {
	// AdGroup: Immutable. The ad group to which the effective label is attached.
	AdGroup string `json:"adGroup,omitempty"`
	// Label: Immutable. The effective label assigned to the ad group.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group effective label.
	// Ad group effective label resource names have the form:
	// `customers/{owner_customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id
	// }`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupLabel: A relationship between an
// ad group and a label.
type GoogleAdsSearchads360V23Resources__AdGroupLabel struct {
	// AdGroup: Immutable. The ad group to which the label is attached.
	AdGroup string `json:"adGroup,omitempty"`
	// Label: Immutable. The label assigned to the ad group.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad group label. Ad group
	// label resource names have the form:
	// `customers/{owner_customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdGroupSimulation: An ad group
// simulation. Supported combinations of advertising channel type, simulation
// type and simulation modification method is detailed below respectively. 1.
// SEARCH - CPC_BID - DEFAULT 2. SEARCH - CPC_BID - UNIFORM 3. SEARCH -
// TARGET_CPA - UNIFORM 4. SEARCH - TARGET_ROAS - UNIFORM 5. DISPLAY - CPC_BID
// - DEFAULT 6. DISPLAY - CPC_BID - UNIFORM 7. DISPLAY - TARGET_CPA - UNIFORM
type GoogleAdsSearchads360V23Resources__AdGroupSimulation struct {
	// AdGroupId: Output only. Ad group id of the simulation.
	AdGroupId int64 `json:"adGroupId,omitempty,string"`
	// CpcBidPointList: Output only. Simulation points if the simulation type is
	// CPC_BID.
	CpcBidPointList *GoogleAdsSearchads360V23Common__CpcBidSimulationPointList `json:"cpcBidPointList,omitempty"`
	// CpvBidPointList: Output only. Simulation points if the simulation type is
	// CPV_BID.
	CpvBidPointList *GoogleAdsSearchads360V23Common__CpvBidSimulationPointList `json:"cpvBidPointList,omitempty"`
	// EndDate: Output only. Last day on which the simulation is based, in
	// YYYY-MM-DD format
	EndDate string `json:"endDate,omitempty"`
	// ModificationMethod: Output only. How the simulation modifies the field.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UNIFORM" - The values in a simulation were applied to all children of a
	// given resource uniformly. Overrides on child resources were not respected.
	//   "DEFAULT" - The values in a simulation were applied to the given resource.
	// Overrides on child resources were respected, and traffic estimates do not
	// include these resources.
	//   "SCALING" - The values in a simulation were all scaled by the same factor.
	// For example, in a simulated TargetCpa campaign, the campaign target and all
	// ad group targets were scaled by a factor of X.
	ModificationMethod string `json:"modificationMethod,omitempty"`
	// ResourceName: Output only. The resource name of the ad group simulation. Ad
	// group simulation resource names have the form:
	// `customers/{customer_id}/adGroupSimulations/{ad_group_id}~{type}~{modificatio
	// n_method}~{start_date}~{end_date}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. First day on which the simulation is based, in
	// YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// TargetCpaPointList: Output only. Simulation points if the simulation type is
	// TARGET_CPA.
	TargetCpaPointList *GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList `json:"targetCpaPointList,omitempty"`
	// TargetRoasPointList: Output only. Simulation points if the simulation type
	// is TARGET_ROAS.
	TargetRoasPointList *GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList `json:"targetRoasPointList,omitempty"`
	// Type: Output only. The field that the simulation modifies.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CPC_BID" - The simulation is for a CPC bid.
	//   "CPV_BID" - The simulation is for a CPV bid.
	//   "TARGET_CPA" - The simulation is for a CPA target.
	//   "BID_MODIFIER" - The simulation is for a bid modifier.
	//   "TARGET_ROAS" - The simulation is for a ROAS target.
	//   "PERCENT_CPC_BID" - The simulation is for a percent CPC bid.
	//   "TARGET_IMPRESSION_SHARE" - The simulation is for an impression share
	// target.
	//   "BUDGET" - The simulation is for a budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdGroupSimulation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdGroupSimulation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdParameter: An ad parameter that is used
// to update numeric values (such as prices or inventory levels) in any text
// line of an ad (including URLs). There can be a maximum of two AdParameters
// per ad group criterion. (One with parameter_index = 1 and one with
// parameter_index = 2.) In the ad the parameters are referenced by a
// placeholder of the form "{param#:value}". For example, "{param1:$17}"
type GoogleAdsSearchads360V23Resources__AdParameter struct {
	// AdGroupCriterion: Immutable. The ad group criterion that this ad parameter
	// belongs to.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// InsertionText: Numeric value to insert into the ad text. The following
	// restrictions apply: - Can use comma or period as a separator, with an
	// optional period or comma (respectively) for fractional values. For example,
	// 1,000,000.00 and 2.000.000,10 are valid. - Can be prepended or appended with
	// a currency symbol. For example, $99.99 is valid. - Can be prepended or
	// appended with a currency code. For example, 99.99USD and EUR200 are valid. -
	// Can use '%'. For example, 1.0% and 1,0% are valid. - Can use plus or minus.
	// For example, -10.99 and 25+ are valid. - Can use '/' between two numbers.
	// For example 4/1 and 0.95/0.45 are valid.
	InsertionText string `json:"insertionText,omitempty"`
	// ParameterIndex: Immutable. The unique index of this ad parameter. Must be
	// either 1 or 2.
	ParameterIndex int64 `json:"parameterIndex,omitempty,string"`
	// ResourceName: Immutable. The resource name of the ad parameter. Ad parameter
	// resource names have the form:
	// `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter
	// _index}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdParameter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdParameter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdScheduleView: An ad schedule view
// summarizes the performance of campaigns by AdSchedule criteria.
type GoogleAdsSearchads360V23Resources__AdScheduleView struct {
	// ResourceName: Output only. The resource name of the ad schedule view.
	// AdSchedule view resource names have the form:
	// `customers/{customer_id}/adScheduleViews/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdScheduleView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdScheduleView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdStrengthActionItem: An action item to
// improve the ad strength of an asset group.
type GoogleAdsSearchads360V23Resources__AdStrengthActionItem struct {
	// ActionItemType: Output only. The action item type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADD_ASSET" - This action item suggests adding an asset to the asset
	// group.
	ActionItemType string `json:"actionItemType,omitempty"`
	// AddAssetDetails: Output only. The action item details for action item type
	// ADD_ASSET.
	AddAssetDetails *GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails `json:"addAssetDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionItemType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionItemType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdStrengthActionItem) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdStrengthActionItem
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier: The
// identifier for the Advertising Partner Google Ads account.
type GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier struct {
	// Customer: Output only. The resource name of the advertising partner Google
	// Ads account. This field is required and should not be empty when creating a
	// new Advertising Partner link. It is unable to be modified after the creation
	// of the link.
	Customer string `json:"customer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Customer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Customer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier
// : The identifier for the Advertising Partner Google Ads account.
type GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier struct {
	// Customer: Immutable. The resource name of the advertising partner Google Ads
	// account. This field is read only.
	Customer string `json:"customer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Customer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Customer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AgeRangeView: An age range view.
type GoogleAdsSearchads360V23Resources__AgeRangeView struct {
	// ResourceName: Output only. The resource name of the age range view. Age
	// range view resource names have the form:
	// `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AgeRangeView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AgeRangeView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView:
// AiMaxSearchTermAdCombinationView Resource.
type GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView struct {
	// AdGroup: Output only. Ad group where the search term served.
	AdGroup string `json:"adGroup,omitempty"`
	// Headline: Output only. The concatenated string containing headline assets
	// for the ad. Up to three headline assets are concatenated, separated by " |
	// ". This field is read-only.
	Headline string `json:"headline,omitempty"`
	// LandingPage: Output only. The destination URL, which was dynamically
	// generated. This field is read-only.
	LandingPage string `json:"landingPage,omitempty"`
	// ResourceName: Output only. The resource name of the AI Max Search Term Ad
	// Combination view AI Max Search Term Ad Combination view resource names have
	// the form:
	// `customers/{customer_id}/aiMaxSearchTermAdCombinationViews/{ad_group_id}~{URL
	// -base64_search_term}~{URL-base64_landing_page}~{URL-base64_headline}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. The search term that triggered the ad. This field
	// is read-only.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup: An
// Android privacy shared key view for Google ad group key.
type GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup struct {
	// AdGroupId: Output only. The ad group ID used in the share key encoding.
	AdGroupId int64 `json:"adGroupId,omitempty,string"`
	// AndroidPrivacyInteractionDate: Output only. The interaction date used in the
	// shared key encoding in the format of "YYYY-MM-DD" in UTC timezone.
	AndroidPrivacyInteractionDate string `json:"androidPrivacyInteractionDate,omitempty"`
	// AndroidPrivacyInteractionType: Output only. The interaction type enum used
	// in the share key encoding.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CLICK" - The physical click interaction type.
	//   "ENGAGED_VIEW" - The 10 seconds engaged view interaction type.
	//   "VIEW" - The view (ad impression) interaction type.
	AndroidPrivacyInteractionType string `json:"androidPrivacyInteractionType,omitempty"`
	// AndroidPrivacyNetworkType: Output only. The network type enum used in the
	// share key encoding.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "SEARCH" - Search Network.
	//   "DISPLAY" - Display Network.
	//   "YOUTUBE" - YouTube Network.
	AndroidPrivacyNetworkType string `json:"androidPrivacyNetworkType,omitempty"`
	// CampaignId: Output only. The campaign ID used in the share key encoding.
	CampaignId int64 `json:"campaignId,omitempty,string"`
	// ResourceName: Output only. The resource name of the Android privacy shared
	// key. Android privacy shared key resource names have the form:
	// `customers/{customer_id}/androidPrivacySharedKeyGoogleAdGroups/{campaign_id}~
	// {ad_group_id}~{android_privacy_interaction_type}~{android_privacy_network_typ
	// e}~{android_privacy_interaction_date(yyyy-mm-dd)}`
	ResourceName string `json:"resourceName,omitempty"`
	// SharedAdGroupKey: Output only. 128 bit hex string of the encoded shared ad
	// group key, including a '0x' prefix. This key can be used to do a bitwise OR
	// operator with the aggregate conversion key to create a full aggregation key
	// to retrieve the Aggregate API Report in Android Privacy Sandbox.
	SharedAdGroupKey string `json:"sharedAdGroupKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign: An
// Android privacy shared key view for Google campaign key.
type GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign struct {
	// AndroidPrivacyInteractionDate: Output only. The interaction date used in the
	// shared key encoding in the format of "YYYY-MM-DD" in UTC timezone.
	AndroidPrivacyInteractionDate string `json:"androidPrivacyInteractionDate,omitempty"`
	// AndroidPrivacyInteractionType: Output only. The interaction type enum used
	// in the share key encoding.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CLICK" - The physical click interaction type.
	//   "ENGAGED_VIEW" - The 10 seconds engaged view interaction type.
	//   "VIEW" - The view (ad impression) interaction type.
	AndroidPrivacyInteractionType string `json:"androidPrivacyInteractionType,omitempty"`
	// CampaignId: Output only. The campaign ID used in the share key encoding.
	CampaignId int64 `json:"campaignId,omitempty,string"`
	// ResourceName: Output only. The resource name of the Android privacy shared
	// key. Android privacy shared key resource names have the form:
	// `customers/{customer_id}/androidPrivacySharedKeyGoogleCampaigns/{campaign_id}
	// ~{android_privacy_interaction_type}~{android_privacy_interaction_date(yyyy-mm
	// -dd)}`
	ResourceName string `json:"resourceName,omitempty"`
	// SharedCampaignKey: Output only. 128 bit hex string of the encoded shared
	// campaign key, including a '0x' prefix. This key can be used to do a bitwise
	// OR operator with the aggregate conversion key to create a full aggregation
	// key to retrieve the Aggregate API Report in Android Privacy Sandbox.
	SharedCampaignKey string `json:"sharedCampaignKey,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AndroidPrivacyInteractionDate") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndroidPrivacyInteractionDate")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType:
// An Android privacy shared key view for Google network type key.
type GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType struct {
	// AndroidPrivacyInteractionDate: Output only. The interaction date used in the
	// shared key encoding in the format of "YYYY-MM-DD" in UTC timezone.
	AndroidPrivacyInteractionDate string `json:"androidPrivacyInteractionDate,omitempty"`
	// AndroidPrivacyInteractionType: Output only. The interaction type enum used
	// in the share key encoding.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CLICK" - The physical click interaction type.
	//   "ENGAGED_VIEW" - The 10 seconds engaged view interaction type.
	//   "VIEW" - The view (ad impression) interaction type.
	AndroidPrivacyInteractionType string `json:"androidPrivacyInteractionType,omitempty"`
	// AndroidPrivacyNetworkType: Output only. The network type enum used in the
	// share key encoding.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "SEARCH" - Search Network.
	//   "DISPLAY" - Display Network.
	//   "YOUTUBE" - YouTube Network.
	AndroidPrivacyNetworkType string `json:"androidPrivacyNetworkType,omitempty"`
	// CampaignId: Output only. The campaign ID used in the share key encoding.
	CampaignId int64 `json:"campaignId,omitempty,string"`
	// ResourceName: Output only. The resource name of the Android privacy shared
	// key. Android privacy shared key resource names have the form:
	// `customers/{customer_id}/androidPrivacySharedKeyGoogleNetworkTypes/{campaign_
	// id}~{android_privacy_interaction_type}~{android_privacy_network_type}~{androi
	// d_privacy_interaction_date(yyyy-mm-dd)}`
	ResourceName string `json:"resourceName,omitempty"`
	// SharedNetworkTypeKey: Output only. 128 bit hex string of the encoded shared
	// network type key, including a '0x' prefix. This key can be used to do a
	// bitwise OR operator with the aggregate conversion key to create a full
	// aggregation key to retrieve the Aggregate API Report in Android Privacy
	// Sandbox.
	SharedNetworkTypeKey string `json:"sharedNetworkTypeKey,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AndroidPrivacyInteractionDate") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndroidPrivacyInteractionDate")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Asset: Asset is a part of an ad which can
// be shared across multiple ads. It can be an image (ImageAsset), a video
// (YoutubeVideoAsset), etc. Assets are immutable and cannot be removed. To
// stop an asset from serving, remove the asset from the entity that is using
// it.
type GoogleAdsSearchads360V23Resources__Asset struct {
	// AppDeepLinkAsset: Immutable. An app deep link asset.
	AppDeepLinkAsset *GoogleAdsSearchads360V23Common__AppDeepLinkAsset `json:"appDeepLinkAsset,omitempty"`
	// BookOnGoogleAsset: A book on google asset.
	BookOnGoogleAsset *GoogleAdsSearchads360V23Common__BookOnGoogleAsset `json:"bookOnGoogleAsset,omitempty"`
	// BusinessMessageAsset: A business message asset.
	BusinessMessageAsset *GoogleAdsSearchads360V23Common__BusinessMessageAsset `json:"businessMessageAsset,omitempty"`
	// CallAsset: A call asset.
	CallAsset *GoogleAdsSearchads360V23Common__CallAsset `json:"callAsset,omitempty"`
	// CallToActionAsset: Immutable. A call to action asset.
	CallToActionAsset *GoogleAdsSearchads360V23Common__CallToActionAsset `json:"callToActionAsset,omitempty"`
	// CalloutAsset: A callout asset.
	CalloutAsset *GoogleAdsSearchads360V23Common__CalloutAsset `json:"calloutAsset,omitempty"`
	// CreationTime: Output only. The timestamp when this asset was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// DemandGenCarouselCardAsset: Immutable. A Demand Gen carousel card asset.
	DemandGenCarouselCardAsset *GoogleAdsSearchads360V23Common__DemandGenCarouselCardAsset `json:"demandGenCarouselCardAsset,omitempty"`
	// DynamicCustomAsset: A dynamic custom asset.
	DynamicCustomAsset *GoogleAdsSearchads360V23Common__DynamicCustomAsset `json:"dynamicCustomAsset,omitempty"`
	// DynamicEducationAsset: A dynamic education asset.
	DynamicEducationAsset *GoogleAdsSearchads360V23Common__DynamicEducationAsset `json:"dynamicEducationAsset,omitempty"`
	// DynamicFlightsAsset: A dynamic flights asset.
	DynamicFlightsAsset *GoogleAdsSearchads360V23Common__DynamicFlightsAsset `json:"dynamicFlightsAsset,omitempty"`
	// DynamicHotelsAndRentalsAsset: A dynamic hotels and rentals asset.
	DynamicHotelsAndRentalsAsset *GoogleAdsSearchads360V23Common__DynamicHotelsAndRentalsAsset `json:"dynamicHotelsAndRentalsAsset,omitempty"`
	// DynamicJobsAsset: A dynamic jobs asset.
	DynamicJobsAsset *GoogleAdsSearchads360V23Common__DynamicJobsAsset `json:"dynamicJobsAsset,omitempty"`
	// DynamicLocalAsset: A dynamic local asset.
	DynamicLocalAsset *GoogleAdsSearchads360V23Common__DynamicLocalAsset `json:"dynamicLocalAsset,omitempty"`
	// DynamicRealEstateAsset: A dynamic real estate asset.
	DynamicRealEstateAsset *GoogleAdsSearchads360V23Common__DynamicRealEstateAsset `json:"dynamicRealEstateAsset,omitempty"`
	// DynamicTravelAsset: A dynamic travel asset.
	DynamicTravelAsset *GoogleAdsSearchads360V23Common__DynamicTravelAsset `json:"dynamicTravelAsset,omitempty"`
	// EngineStatus: Output only. The Engine Status for an asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SERVING" - The asset is active.
	//   "SERVING_LIMITED" - The asset is active limited.
	//   "DISAPPROVED" - The asset is disapproved (not eligible).
	//   "DISABLED" - The asset is inactive (pending).
	//   "REMOVED" - The asset has been removed.
	EngineStatus string `json:"engineStatus,omitempty"`
	// FieldTypePolicySummaries: Output only. Policy information for the asset for
	// each FieldType.
	FieldTypePolicySummaries []*GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary `json:"fieldTypePolicySummaries,omitempty"`
	// FinalMobileUrls: A list of possible final mobile URLs after all cross domain
	// redirects.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrlSuffix: URL template for appending params to landing page URLs
	// served with parallel tracking.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FinalUrls: A list of possible final URLs after all cross domain redirects.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// HotelCalloutAsset: A hotel callout asset.
	HotelCalloutAsset *GoogleAdsSearchads360V23Common__HotelCalloutAsset `json:"hotelCalloutAsset,omitempty"`
	// HotelPropertyAsset: Immutable. A hotel property asset.
	HotelPropertyAsset *GoogleAdsSearchads360V23Common__HotelPropertyAsset `json:"hotelPropertyAsset,omitempty"`
	// Id: Output only. The ID of the asset.
	Id int64 `json:"id,omitempty,string"`
	// ImageAsset: Output only. An image asset.
	ImageAsset *GoogleAdsSearchads360V23Common__ImageAsset `json:"imageAsset,omitempty"`
	// LastModifiedTime: Output only. The datetime when this asset was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// LeadFormAsset: A lead form asset.
	LeadFormAsset *GoogleAdsSearchads360V23Common__LeadFormAsset `json:"leadFormAsset,omitempty"`
	// LocationAsset: Output only. A location asset.
	LocationAsset *GoogleAdsSearchads360V23Common__LocationAsset `json:"locationAsset,omitempty"`
	// MediaBundleAsset: Immutable. A media bundle asset.
	MediaBundleAsset *GoogleAdsSearchads360V23Common__MediaBundleAsset `json:"mediaBundleAsset,omitempty"`
	// MobileAppAsset: A mobile app asset.
	MobileAppAsset *GoogleAdsSearchads360V23Common__MobileAppAsset `json:"mobileAppAsset,omitempty"`
	// Name: Optional name of the asset.
	Name string `json:"name,omitempty"`
	// Orientation: Output only. Orientation of the asset. This is only supported
	// for image and video assets.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "LANDSCAPE" - Landscape orientation.
	//   "PORTRAIT" - Portrait orientation.
	//   "SQUARE" - Square orientation.
	Orientation string `json:"orientation,omitempty"`
	// PageFeedAsset: A page feed asset.
	PageFeedAsset *GoogleAdsSearchads360V23Common__PageFeedAsset `json:"pageFeedAsset,omitempty"`
	// PolicySummary: Output only. Policy information for the asset.
	PolicySummary *GoogleAdsSearchads360V23Resources__AssetPolicySummary `json:"policySummary,omitempty"`
	// PriceAsset: A price asset.
	PriceAsset *GoogleAdsSearchads360V23Common__PriceAsset `json:"priceAsset,omitempty"`
	// PromotionAsset: A promotion asset.
	PromotionAsset *GoogleAdsSearchads360V23Common__PromotionAsset `json:"promotionAsset,omitempty"`
	// ResourceName: Immutable. The resource name of the asset. Asset resource
	// names have the form: `customers/{customer_id}/assets/{asset_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchAds360CallAsset: Output only. A unified call asset.
	SearchAds360CallAsset *GoogleAdsSearchads360V23Common__UnifiedCallAsset `json:"searchAds360CallAsset,omitempty"`
	// SearchAds360CalloutAsset: Output only. A unified callout asset.
	SearchAds360CalloutAsset *GoogleAdsSearchads360V23Common__UnifiedCalloutAsset `json:"searchAds360CalloutAsset,omitempty"`
	// SearchAds360LocationAsset: Output only. A unified location asset.
	SearchAds360LocationAsset *GoogleAdsSearchads360V23Common__UnifiedLocationAsset `json:"searchAds360LocationAsset,omitempty"`
	// SearchAds360PageFeedAsset: Output only. A unified page feed asset.
	SearchAds360PageFeedAsset *GoogleAdsSearchads360V23Common__UnifiedPageFeedAsset `json:"searchAds360PageFeedAsset,omitempty"`
	// SearchAds360SitelinkAsset: Output only. A unified sitelink asset.
	SearchAds360SitelinkAsset *GoogleAdsSearchads360V23Common__UnifiedSitelinkAsset `json:"searchAds360SitelinkAsset,omitempty"`
	// SitelinkAsset: A sitelink asset.
	SitelinkAsset *GoogleAdsSearchads360V23Common__SitelinkAsset `json:"sitelinkAsset,omitempty"`
	// Source: Output only. Source of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// Status: Output only. The status of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The asset is enabled.
	//   "REMOVED" - The asset is removed.
	//   "ARCHIVED" - The asset is archived.
	//   "PENDING_SYSTEM_GENERATED" - The asset is system generated pending user
	// review.
	Status string `json:"status,omitempty"`
	// StructuredSnippetAsset: A structured snippet asset.
	StructuredSnippetAsset *GoogleAdsSearchads360V23Common__StructuredSnippetAsset `json:"structuredSnippetAsset,omitempty"`
	// TextAsset: Immutable. A text asset.
	TextAsset *GoogleAdsSearchads360V23Common__TextAsset `json:"textAsset,omitempty"`
	// TrackingUrlTemplate: URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// Type: Output only. Type of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "YOUTUBE_VIDEO" - YouTube video asset.
	//   "MEDIA_BUNDLE" - Media bundle asset.
	//   "IMAGE" - Image asset.
	//   "TEXT" - Text asset.
	//   "LEAD_FORM" - Lead form asset.
	//   "BOOK_ON_GOOGLE" - Book on Google asset.
	//   "PROMOTION" - Promotion asset.
	//   "CALLOUT" - Callout asset.
	//   "STRUCTURED_SNIPPET" - Structured Snippet asset.
	//   "SITELINK" - Sitelink asset.
	//   "PAGE_FEED" - Page Feed asset.
	//   "DYNAMIC_EDUCATION" - Dynamic Education asset.
	//   "MOBILE_APP" - Mobile app asset.
	//   "HOTEL_CALLOUT" - Hotel callout asset.
	//   "CALL" - Call asset.
	//   "PRICE" - Price asset.
	//   "CALL_TO_ACTION" - Call to action asset.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset.
	//   "DYNAMIC_LOCAL" - Dynamic local asset.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset.
	//   "LOCATION" - Location asset.
	//   "HOTEL_PROPERTY" - Hotel property asset.
	//   "DEMAND_GEN_CAROUSEL_CARD" - Demand Gen Carousel Card asset.
	//   "BUSINESS_MESSAGE" - Business message asset.
	//   "APP_DEEP_LINK" - App deep link asset.
	Type string `json:"type,omitempty"`
	// UrlCustomParameters: A list of mappings to be used for substituting URL
	// custom parameter tags in the tracking_url_template, final_urls, and/or
	// final_mobile_urls.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// YoutubeVideoAsset: Immutable. A YouTube video asset.
	YoutubeVideoAsset *GoogleAdsSearchads360V23Common__YoutubeVideoAsset `json:"youtubeVideoAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppDeepLinkAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppDeepLinkAsset") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Asset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Asset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetCoverage: Information about the
// asset coverage of an asset group.
type GoogleAdsSearchads360V23Resources__AssetCoverage struct {
	// AdStrengthActionItems: Output only. A list of action items to improve the ad
	// strength of an asset group.
	AdStrengthActionItems []*GoogleAdsSearchads360V23Resources__AdStrengthActionItem `json:"adStrengthActionItems,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdStrengthActionItems") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdStrengthActionItems") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetCoverage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetCoverage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary: Contains
// policy information for an asset under AssetFieldType context.
type GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary struct {
	// AssetFieldType: Output only. FieldType of this asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// AssetSource: Output only. Source of this asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	AssetSource string `json:"assetSource,omitempty"`
	// PolicySummaryInfo: Output only. Policy summary.
	PolicySummaryInfo *GoogleAdsSearchads360V23Resources__AssetPolicySummary `json:"policySummaryInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetFieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetFieldType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetFieldTypePolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetFieldTypeView: An asset field type
// view. This view reports non-overcounted metrics for each asset field type
// when the asset is used as extension.
type GoogleAdsSearchads360V23Resources__AssetFieldTypeView struct {
	// FieldType: Output only. The asset field type of the asset field type view.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// ResourceName: Output only. The resource name of the asset field type view.
	// Asset field type view resource names have the form:
	// `customers/{customer_id}/assetFieldTypeViews/{field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetFieldTypeView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetFieldTypeView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroup: An asset group.
// AssetGroupAsset is used to link an asset to the asset group.
// AssetGroupSignal is used to associate a signal to an asset group.
type GoogleAdsSearchads360V23Resources__AssetGroup struct {
	// AdStrength: Output only. Overall ad strength of this asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The ad strength is currently pending.
	//   "NO_ADS" - No ads could be generated.
	//   "POOR" - Poor strength.
	//   "AVERAGE" - Average strength.
	//   "GOOD" - Good strength.
	//   "EXCELLENT" - Excellent strength.
	AdStrength string `json:"adStrength,omitempty"`
	// AssetCoverage: Output only. The asset coverage of this asset group.
	AssetCoverage *GoogleAdsSearchads360V23Resources__AssetCoverage `json:"assetCoverage,omitempty"`
	// Campaign: Immutable. The campaign with which this asset group is associated.
	// The asset which is linked to the asset group.
	Campaign string `json:"campaign,omitempty"`
	// FinalMobileUrls: A list of final mobile URLs after all cross domain
	// redirects. In performance max, by default, the urls are eligible for
	// expansion unless opted out.
	FinalMobileUrls []string `json:"finalMobileUrls,omitempty"`
	// FinalUrls: A list of final URLs after all cross domain redirects. In
	// performance max, by default, the urls are eligible for expansion unless
	// opted out.
	FinalUrls []string `json:"finalUrls,omitempty"`
	// Id: Output only. The ID of the asset group.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. Name of the asset group. Required. It must have a minimum
	// length of 1 and maximum length of 128. It must be unique under a campaign.
	Name string `json:"name,omitempty"`
	// Path1: First part of text that may appear appended to the url displayed in
	// the ad.
	Path1 string `json:"path1,omitempty"`
	// Path2: Second part of text that may appear appended to the url displayed in
	// the ad. This field can only be set when path1 is set.
	Path2 string `json:"path2,omitempty"`
	// PrimaryStatus: Output only. The primary status of the asset group. Provides
	// insights into why an asset group is not serving or not serving optimally.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset group is eligible to serve.
	//   "PAUSED" - The asset group is paused.
	//   "REMOVED" - The asset group is removed.
	//   "NOT_ELIGIBLE" - The asset group is not eligible to serve.
	//   "LIMITED" - The asset group has limited servability.
	//   "PENDING" - The asset group is pending approval and may serve in the
	// future.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusReasons: Output only. Provides reasons into why an asset group
	// is not serving or not serving optimally. It will be empty when the asset
	// group is serving without issues.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_GROUP_PAUSED" - The user-specified asset group status is paused.
	// Contributes to AssetGroupPrimaryStatus.PAUSED
	//   "ASSET_GROUP_REMOVED" - The user-specified asset group status is removed.
	// Contributes to AssetGroupPrimaryStatus.REMOVED.
	//   "CAMPAIGN_REMOVED" - The user-specified campaign status is removed.
	// Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_PAUSED" - The user-specified campaign status is paused.
	// Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_PENDING" - The user-specified time for this campaign to start is
	// in the future. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "CAMPAIGN_ENDED" - The user-specified time for this campaign to end has
	// passed. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "ASSET_GROUP_LIMITED" - The asset group is approved but only serves in
	// limited capacity due to policies. Contributes to
	// AssetGroupPrimaryStatus.LIMITED.
	//   "ASSET_GROUP_DISAPPROVED" - The asset group has been marked as
	// disapproved. Contributes to AssetGroupPrimaryStatus.NOT_ELIGIBLE.
	//   "ASSET_GROUP_UNDER_REVIEW" - The asset group has not completed policy
	// review. Contributes to AssetGroupPrimaryStatus.PENDING.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group. Asset group
	// resource names have the form:
	// `customers/{customer_id}/assetGroups/{asset_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The asset group is enabled.
	//   "PAUSED" - The asset group is paused.
	//   "REMOVED" - The asset group is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdStrength") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdStrength") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupAsset: AssetGroupAsset is the
// link between an asset and an asset group. Adding an AssetGroupAsset links an
// asset with an asset group.
type GoogleAdsSearchads360V23Resources__AssetGroupAsset struct {
	// Asset: Immutable. The asset which this asset group asset is linking.
	Asset string `json:"asset,omitempty"`
	// AssetGroup: Immutable. The asset group which this asset group asset is
	// linking.
	AssetGroup string `json:"assetGroup,omitempty"`
	// FieldType: The description of the placement of the asset within the asset
	// group. For example: HEADLINE, YOUTUBE_VIDEO etc
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// PolicySummary: Output only. The policy information for this asset group
	// asset.
	PolicySummary *GoogleAdsSearchads360V23Common__PolicySummary `json:"policySummary,omitempty"`
	// PrimaryStatus: Output only. Provides the PrimaryStatus of this asset link.
	// Primary status is meant essentially to differentiate between the plain
	// "status" field, which has advertiser set values of enabled, paused, or
	// removed. The primary status takes into account other signals (for assets its
	// mainly policy and quality approvals) to come up with a more comprehensive
	// status to indicate its serving state.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset is eligible to serve.
	//   "PAUSED" - The user-specified asset link status is paused.
	//   "REMOVED" - The user-specified asset link status is removed.
	//   "PENDING" - The asset may serve in the future.
	//   "LIMITED" - The asset is serving in a partial capacity.
	//   "NOT_ELIGIBLE" - The asset is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusDetails: Output only. Provides the details of the primary
	// status and its associated reasons.
	PrimaryStatusDetails []*GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails `json:"primaryStatusDetails,omitempty"`
	// PrimaryStatusReasons: Output only. Provides a list of reasons for why an
	// asset is not serving or not serving at full capacity.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_LINK_PAUSED" - The asset is paused for its linked rollup level.
	// Contributes to a PrimaryStatus of PAUSED.
	//   "ASSET_LINK_REMOVED" - The asset is removed for its linked rollup level.
	// Contributes to a PrimaryStatus of REMOVED.
	//   "ASSET_DISAPPROVED" - The asset has been marked as disapproved.
	// Contributes to a PrimaryStatus of NOT_ELIGIBLE
	//   "ASSET_UNDER_REVIEW" - The asset has not completed policy review.
	// Contributes to a PrimaryStatus of PENDING.
	//   "ASSET_APPROVED_LABELED" - The asset is approved with policies applied.
	// Contributes to a PrimaryStatus of LIMITED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group asset. Asset
	// group asset resource name have the form:
	// `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_
	// type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Source: Output only. Source of the asset group asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// Status: The status of the link between an asset and asset group.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData: Asset
// group asset combination data
type GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData struct {
	// AssetCombinationServedAssets: Output only. Served assets.
	AssetCombinationServedAssets []*GoogleAdsSearchads360V23Common__AssetUsage `json:"assetCombinationServedAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AssetCombinationServedAssets") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetCombinationServedAssets") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter:
// AssetGroupListingGroupFilter represents a listing group filter tree node in
// an asset group.
type GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter struct {
	// AssetGroup: Immutable. The asset group which this asset group listing group
	// filter is part of.
	AssetGroup string `json:"assetGroup,omitempty"`
	// CaseValue: Dimension value with which this listing group is refining its
	// parent. Undefined for the root group.
	CaseValue *GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension `json:"caseValue,omitempty"`
	// Id: Output only. The ID of the ListingGroupFilter.
	Id int64 `json:"id,omitempty,string"`
	// ListingSource: Immutable. The source of listings filtered by this listing
	// group filter.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SHOPPING" - Listings from a Shopping source, like products from Google
	// Merchant Center.
	//   "WEBPAGE" - Listings from a webpage source, like URLs from a page feed or
	// from the advertiser web domain.
	ListingSource string `json:"listingSource,omitempty"`
	// ParentListingGroupFilter: Immutable. Resource name of the parent listing
	// group subdivision. Null for the root listing group filter node.
	ParentListingGroupFilter string `json:"parentListingGroupFilter,omitempty"`
	// Path: Output only. The path of dimensions defining this listing group
	// filter.
	Path *GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath `json:"path,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group listing group
	// filter. Asset group listing group filter resource name have the form:
	// `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{list
	// ing_group_filter_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Immutable. Type of a listing group filter node.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SUBDIVISION" - Subdivision of products along some listing dimensions.
	//   "UNIT_INCLUDED" - An included listing group filter leaf node.
	//   "UNIT_EXCLUDED" - An excluded listing group filter leaf node.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView: An asset
// group product group view.
type GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView struct {
	// AssetGroup: Output only. The asset group associated with the listing group
	// filter.
	AssetGroup string `json:"assetGroup,omitempty"`
	// AssetGroupListingGroupFilter: Output only. The resource name of the asset
	// group listing group filter.
	AssetGroupListingGroupFilter string `json:"assetGroupListingGroupFilter,omitempty"`
	// ResourceName: Output only. The resource name of the asset group product
	// group view. Asset group product group view resource names have the form:
	// `customers/{customer_id}/assetGroupProductGroupViews/{asset_group_id}~{listin
	// g_group_filter_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupSignal: AssetGroupSignal
// represents a signal in an asset group. The existence of a signal tells the
// performance max campaign who's most likely to convert. Performance Max uses
// the signal to look for new people with similar or stronger intent to find
// conversions across Search, Display, Video, and more.
type GoogleAdsSearchads360V23Resources__AssetGroupSignal struct {
	// ApprovalStatus: Output only. Approval status is the output value for search
	// theme signal after Google ads policy review. When using Audience signal,
	// this field is not used and will be absent.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "APPROVED" - Search Theme is eligible to show ads.
	//   "LIMITED" - Low search volume; Below first page bid estimate.
	//   "DISAPPROVED" - Search Theme is inactive and isn't showing ads. A
	// disapproved Search Theme usually means there's an issue with one or more of
	// our advertising policies.
	//   "UNDER_REVIEW" - Search Theme is under review. It won’t be able to
	// trigger ads until it's been reviewed.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// AssetGroup: Immutable. The asset group which this asset group signal belongs
	// to.
	AssetGroup string `json:"assetGroup,omitempty"`
	// Audience: Immutable. The audience signal to be used by the performance max
	// campaign.
	Audience *GoogleAdsSearchads360V23Common__AudienceInfo `json:"audience,omitempty"`
	// DisapprovalReasons: Output only. Computed for SearchTheme signals. When
	// using Audience signal, this field is not used and will be absent.
	DisapprovalReasons []string `json:"disapprovalReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the asset group signal. Asset
	// group signal resource name have the form:
	// `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTheme: Immutable. The search_theme signal to be used by the
	// performance max campaign. Mutate errors of search_theme criterion includes
	// AssetGroupSignalError.UNSPECIFIED AssetGroupSignalError.UNKNOWN
	// AssetGroupSignalError.TOO_MANY_WORDS
	// AssetGroupSignalError.SEARCH_THEME_POLICY_VIOLATION FieldError.REQUIRED
	// StringFormatError.ILLEGAL_CHARS StringLengthError.TOO_LONG
	// ResourceCountLimitExceededError.RESOURCE_LIMIT
	SearchTheme *GoogleAdsSearchads360V23Common__SearchThemeInfo `json:"searchTheme,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupSignal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupSignal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView: A view on
// the usage of asset group asset top combinations.
type GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView struct {
	// AssetGroupTopCombinations: Output only. The top combinations of assets that
	// served together.
	AssetGroupTopCombinations []*GoogleAdsSearchads360V23Resources__AssetGroupAssetCombinationData `json:"assetGroupTopCombinations,omitempty"`
	// ResourceName: Output only. The resource name of the asset group top
	// combination view. AssetGroup Top Combination view resource names have the
	// form:
	// "customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{ass
	// et_combination_category}"
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroupTopCombinations")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroupTopCombinations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetPolicySummary: Contains policy
// information for an asset.
type GoogleAdsSearchads360V23Resources__AssetPolicySummary struct {
	// ApprovalStatus: Output only. The overall approval status of this asset,
	// calculated based on the status of its individual policy topic entries.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "DISAPPROVED" - Will not serve.
	//   "APPROVED_LIMITED" - Serves with restrictions.
	//   "APPROVED" - Serves without restrictions.
	//   "AREA_OF_INTEREST_ONLY" - Will not serve in targeted countries, but may
	// serve for users who are searching for information about the targeted
	// countries.
	ApprovalStatus string `json:"approvalStatus,omitempty"`
	// PolicyTopicEntries: Output only. The list of policy findings for this asset.
	PolicyTopicEntries []*GoogleAdsSearchads360V23Common__PolicyTopicEntry `json:"policyTopicEntries,omitempty"`
	// ReviewStatus: Output only. Where in the review process this asset is.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "REVIEW_IN_PROGRESS" - Currently under review.
	//   "REVIEWED" - Primary review complete. Other reviews may be continuing.
	//   "UNDER_APPEAL" - The resource has been resubmitted for approval or its
	// policy decision has been appealed.
	//   "ELIGIBLE_MAY_SERVE" - The resource is eligible and may be serving but
	// could still undergo further review.
	ReviewStatus string `json:"reviewStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApprovalStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApprovalStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetPolicySummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetPolicySummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetSet: An asset set representing a
// collection of assets. Use AssetSetAsset to link an asset to the asset set.
type GoogleAdsSearchads360V23Resources__AssetSet struct {
	// BusinessProfileLocationGroup: Business Profile location group asset set
	// data.
	BusinessProfileLocationGroup *GoogleAdsSearchads360V23Common__BusinessProfileLocationGroup `json:"businessProfileLocationGroup,omitempty"`
	// ChainLocationGroup: Represents information about a Chain dynamic location
	// group. Only applicable if the sync level AssetSet's type is LOCATION_SYNC
	// and sync source is chain.
	ChainLocationGroup *GoogleAdsSearchads360V23Common__ChainLocationGroup `json:"chainLocationGroup,omitempty"`
	// HotelPropertyData: Output only. For Performance Max for travel goals
	// campaigns with a Hotel Center account link. Read-only.
	HotelPropertyData *GoogleAdsSearchads360V23ResourcesAssetSetHotelPropertyData `json:"hotelPropertyData,omitempty"`
	// Id: Output only. The ID of the asset set.
	Id int64 `json:"id,omitempty,string"`
	// LocationGroupParentAssetSetId: Immutable. Parent asset set ID for the asset
	// set where the elements of this asset set come from. For example: the sync
	// level location AssetSet id where the elements in LocationGroup AssetSet come
	// from. This field is required and only applicable for Location Group typed
	// AssetSet.
	LocationGroupParentAssetSetId int64 `json:"locationGroupParentAssetSetId,omitempty,string"`
	// LocationSet: Location asset set data. This will be used for sync level
	// location set. This can only be set if AssetSet's type is LOCATION_SYNC.
	LocationSet *GoogleAdsSearchads360V23Common__LocationSet `json:"locationSet,omitempty"`
	// MerchantCenterFeed: Merchant ID and Feed Label from Google Merchant Center.
	MerchantCenterFeed *GoogleAdsSearchads360V23ResourcesAssetSetMerchantCenterFeed `json:"merchantCenterFeed,omitempty"`
	// Name: Required. Name of the asset set. Required. It must have a minimum
	// length of 1 and maximum length of 128.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the asset set. Asset set
	// resource names have the form:
	// `customers/{customer_id}/assetSets/{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the asset set. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The asset set is enabled.
	//   "REMOVED" - The asset set is removed.
	Status string `json:"status,omitempty"`
	// Type: Required. Immutable. The type of the asset set. Required.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BusinessProfileLocationGroup") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessProfileLocationGroup") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetSetAsset: AssetSetAsset is the link
// between an asset and an asset set. Adding an AssetSetAsset links an asset
// with an asset set.
type GoogleAdsSearchads360V23Resources__AssetSetAsset struct {
	// Asset: Immutable. The asset which this asset set asset is linking to.
	Asset string `json:"asset,omitempty"`
	// AssetSet: Immutable. The asset set which this asset set asset is linking to.
	AssetSet string `json:"assetSet,omitempty"`
	// ResourceName: Immutable. The resource name of the asset set asset. Asset set
	// asset resource names have the form:
	// `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The asset set asset is enabled.
	//   "REMOVED" - The asset set asset is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetSetAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetSetAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__AssetSetTypeView: An asset set type view.
// This view reports non-overcounted metrics for each asset set type. Child
// asset set types are not included in this report. Their stats are aggregated
// under the parent asset set type.
type GoogleAdsSearchads360V23Resources__AssetSetTypeView struct {
	// AssetSetType: Output only. The asset set type of the asset set type view.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	AssetSetType string `json:"assetSetType,omitempty"`
	// ResourceName: Output only. The resource name of the asset set type view.
	// Asset set type view resource names have the form:
	// `customers/{customer_id}/assetSetTypeViews/{asset_set_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSetType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSetType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__AssetSetTypeView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__AssetSetTypeView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Audience: Audience is an effective
// targeting option that lets you intersect different segment attributes, such
// as detailed demographics and affinities, to create audiences that represent
// sections of your target segments.
type GoogleAdsSearchads360V23Resources__Audience struct {
	// AssetGroup: Immutable. The asset group that this audience is scoped under.
	// Must be set if and only if scope is ASSET_GROUP. Immutable after creation.
	// If an audience with ASSET_GROUP scope is upgraded to CUSTOMER scope, this
	// field will automatically be cleared.
	AssetGroup string `json:"assetGroup,omitempty"`
	// Description: Description of this audience.
	Description string `json:"description,omitempty"`
	// Dimensions: Positive dimensions specifying the audience composition.
	Dimensions []*GoogleAdsSearchads360V23Common__AudienceDimension `json:"dimensions,omitempty"`
	// ExclusionDimension: Negative dimension specifying the audience composition.
	ExclusionDimension *GoogleAdsSearchads360V23Common__AudienceExclusionDimension `json:"exclusionDimension,omitempty"`
	// Id: Output only. ID of the audience.
	Id int64 `json:"id,omitempty,string"`
	// Name: Name of the audience. It should be unique across all audiences within
	// the account. It must have a minimum length of 1 and maximum length of 255.
	// Required when scope is not set or is set to CUSTOMER. Cannot be set or
	// updated when scope is ASSET_GROUP.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the audience. Audience names
	// have the form: `customers/{customer_id}/audiences/{audience_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Scope: Defines the scope this audience can be used in. By default, the scope
	// is CUSTOMER. Audiences can be created with a scope of ASSET_GROUP for
	// exclusive use by a single asset_group. Scope may change from ASSET_GROUP to
	// CUSTOMER but not from CUSTOMER to ASSET_GROUP.
	//
	// Possible values:
	//   "UNSPECIFIED" - The scope has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "CUSTOMER" - The audience is scoped at the customer level.
	//   "ASSET_GROUP" - The audience is scoped under a specific AssetGroup.
	Scope string `json:"scope,omitempty"`
	// Status: Output only. Status of this audience. Indicates whether the audience
	// is enabled or removed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Enabled status - audience is enabled and can be targeted.
	//   "REMOVED" - Removed status - audience is removed and cannot be used for
	// targeting.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Audience) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Audience
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact:
// specific to local services background check.
type GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact struct {
	// CaseUrl: Output only. URL to access background case.
	CaseUrl string `json:"caseUrl,omitempty"`
	// FinalAdjudicationDateTime: Output only. The timestamp when this background
	// check case result was adjudicated. The format is "YYYY-MM-DD HH:MM:SS" in
	// the Google Ads account's timezone. Examples: "2018-03-05 09:15:00" or
	// "2018-02-01 14:34:30"
	FinalAdjudicationDateTime string `json:"finalAdjudicationDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CaseUrl") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CaseUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BatchJob: A list of mutates being
// processed asynchronously. The mutates are uploaded by the user. The mutates
// themselves aren't readable and the results of the job can only be read using
// BatchJobService.ListBatchJobResults.
type GoogleAdsSearchads360V23Resources__BatchJob struct {
	// Id: Output only. ID of this batch job.
	Id int64 `json:"id,omitempty,string"`
	// LongRunningOperation: Output only. The resource name of the long-running
	// operation that can be used to poll for completion. Only set when the batch
	// job status is RUNNING or DONE.
	LongRunningOperation string `json:"longRunningOperation,omitempty"`
	// Metadata: Output only. Contains additional information about this batch job.
	Metadata *GoogleAdsSearchads360V23ResourcesBatchJobBatchJobMetadata `json:"metadata,omitempty"`
	// NextAddSequenceToken: Output only. The next sequence token to use when
	// adding operations. Only set when the batch job status is PENDING.
	NextAddSequenceToken string `json:"nextAddSequenceToken,omitempty"`
	// ResourceName: Immutable. The resource name of the batch job. Batch job
	// resource names have the form:
	// `customers/{customer_id}/batchJobs/{batch_job_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of this batch job.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The job is not currently running.
	//   "RUNNING" - The job is running.
	//   "DONE" - The job is done.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BatchJob) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BatchJob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BiddingDataExclusion: Represents a
// bidding data exclusion. Bidding data exclusions can be set in client
// accounts only, and cannot be used in manager accounts. See "About data
// exclusions" at https://support.google.com/google-ads/answer/10370710. Note:
// A customer account can have a maximum of 500 active bidding data exclusions.
type GoogleAdsSearchads360V23Resources__BiddingDataExclusion struct {
	// AdvertisingChannelTypes: The data_exclusion will apply to all the campaigns
	// under the listed channels retroactively as well as going forward when the
	// scope of this exclusion is CHANNEL. The supported advertising channel types
	// are DISPLAY, SEARCH and SHOPPING. Note: a data exclusion with both
	// advertising_channel_types and campaign_ids is not supported.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "DEMAND_GEN" - Demand Gen campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelTypes []string `json:"advertisingChannelTypes,omitempty"`
	// Campaigns: The data exclusion will apply to the campaigns listed when the
	// scope of this exclusion is CAMPAIGN. The maximum number of campaigns per
	// event is 2000. Note: a data exclusion with both advertising_channel_types
	// and campaign_ids is not supported.
	Campaigns []string `json:"campaigns,omitempty"`
	// DataExclusionId: Output only. The ID of the data exclusion.
	DataExclusionId int64 `json:"dataExclusionId,omitempty,string"`
	// Description: The description of the data exclusion. The description can be
	// at most 2048 characters.
	Description string `json:"description,omitempty"`
	// Devices: If not specified, all devices will be included in this exclusion.
	// Otherwise, only the specified targeted devices will be included in this
	// exclusion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Devices []string `json:"devices,omitempty"`
	// EndDateTime: Required. The exclusive end time of the data exclusion in
	// yyyy-MM-dd HH:mm:ss format. The length of [start_date_time, end_date_time)
	// interval must be within (0, 14 days].
	EndDateTime string `json:"endDateTime,omitempty"`
	// Name: The name of the data exclusion. The name can be at most 255
	// characters.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the data exclusion. Data
	// exclusion resource names have the form:
	// `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Scope: The scope of the data exclusion.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "CUSTOMER" - The seasonality event is applied to all the customer's
	// traffic for supported advertising channel types and device types. The
	// CUSTOMER scope cannot be used in mutates.
	//   "CAMPAIGN" - The seasonality event is applied to all specified campaigns.
	//   "CHANNEL" - The seasonality event is applied to all campaigns that belong
	// to specified channel types.
	Scope string `json:"scope,omitempty"`
	// StartDateTime: Required. The inclusive start time of the data exclusion in
	// yyyy-MM-dd HH:mm:ss format. A data exclusion is backward looking and should
	// be used for events that start in the past and end either in the past or
	// future.
	StartDateTime string `json:"startDateTime,omitempty"`
	// Status: Output only. The status of the data exclusion.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The seasonality event is enabled.
	//   "REMOVED" - The seasonality event is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingChannelTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingChannelTypes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BiddingDataExclusion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BiddingDataExclusion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment: Represents
// a bidding seasonality adjustment. Cannot be used in manager accounts. See
// "About seasonality adjustments" at
// https://support.google.com/google-ads/answer/10369906.
type GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment struct {
	// AdvertisingChannelTypes: The seasonality adjustment will apply to all the
	// campaigns under the listed channels retroactively as well as going forward
	// when the scope of this adjustment is CHANNEL. The supported advertising
	// channel types are DISPLAY, SEARCH and SHOPPING. Note: a seasonality
	// adjustment with both advertising_channel_types and campaign_ids is not
	// supported.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "DEMAND_GEN" - Demand Gen campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelTypes []string `json:"advertisingChannelTypes,omitempty"`
	// Campaigns: The seasonality adjustment will apply to the campaigns listed
	// when the scope of this adjustment is CAMPAIGN. The maximum number of
	// campaigns per event is 2000. Note: a seasonality adjustment with both
	// advertising_channel_types and campaign_ids is not supported.
	Campaigns []string `json:"campaigns,omitempty"`
	// ConversionRateModifier: Conversion rate modifier estimated based on expected
	// conversion rate changes. When this field is unset or set to 1.0 no
	// adjustment will be applied to traffic. The allowed range is 0.1 to 10.0.
	ConversionRateModifier float64 `json:"conversionRateModifier,omitempty"`
	// Description: The description of the seasonality adjustment. The description
	// can be at most 2048 characters.
	Description string `json:"description,omitempty"`
	// Devices: If not specified, all devices will be included in this adjustment.
	// Otherwise, only the specified targeted devices will be included in this
	// adjustment.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "MOBILE" - Mobile devices with full browsers.
	//   "TABLET" - Tablets with full browsers.
	//   "DESKTOP" - Computers.
	//   "CONNECTED_TV" - Smart TVs and game consoles.
	//   "OTHER" - Other device types.
	Devices []string `json:"devices,omitempty"`
	// EndDateTime: Required. The exclusive end time of the seasonality adjustment
	// in yyyy-MM-dd HH:mm:ss format. The length of [start_date_time,
	// end_date_time) interval must be within (0, 14 days].
	EndDateTime string `json:"endDateTime,omitempty"`
	// Name: The name of the seasonality adjustment. The name can be at most 255
	// characters.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the seasonality adjustment.
	// Seasonality adjustment resource names have the form:
	// `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustmen
	// t_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Scope: The scope of the seasonality adjustment.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "CUSTOMER" - The seasonality event is applied to all the customer's
	// traffic for supported advertising channel types and device types. The
	// CUSTOMER scope cannot be used in mutates.
	//   "CAMPAIGN" - The seasonality event is applied to all specified campaigns.
	//   "CHANNEL" - The seasonality event is applied to all campaigns that belong
	// to specified channel types.
	Scope string `json:"scope,omitempty"`
	// SeasonalityAdjustmentId: Output only. The ID of the seasonality adjustment.
	SeasonalityAdjustmentId int64 `json:"seasonalityAdjustmentId,omitempty,string"`
	// StartDateTime: Required. The inclusive start time of the seasonality
	// adjustment in yyyy-MM-dd HH:mm:ss format. A seasonality adjustment is
	// forward looking and should be used for events that start and end in the
	// future.
	StartDateTime string `json:"startDateTime,omitempty"`
	// Status: Output only. The status of the seasonality adjustment.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The seasonality event is enabled.
	//   "REMOVED" - The seasonality event is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingChannelTypes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingChannelTypes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment
	var s1 struct {
		ConversionRateModifier gensupport.JSONFloat64 `json:"conversionRateModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConversionRateModifier = float64(s1.ConversionRateModifier)
	return nil
}

// GoogleAdsSearchads360V23Resources__BiddingStrategy: A bidding strategy.
type GoogleAdsSearchads360V23Resources__BiddingStrategy struct {
	// AlignedCampaignBudgetId: ID of the campaign budget that this portfolio
	// bidding strategy is aligned with. When a portfolio and a campaign budget are
	// aligned, that means that they are attached to the same set of campaigns.
	// After a bidding strategy is aligned with a campaign budget, campaigns that
	// are added to the bidding strategy must also use the aligned campaign budget.
	AlignedCampaignBudgetId int64 `json:"alignedCampaignBudgetId,omitempty,string"`
	// CampaignCount: Output only. The number of campaigns attached to this bidding
	// strategy. This field is read-only.
	CampaignCount int64 `json:"campaignCount,omitempty,string"`
	// CurrencyCode: Immutable. The currency used by the bidding strategy (ISO 4217
	// three-letter code). For bidding strategies in manager customers, this
	// currency can be set on creation and defaults to the manager customer's
	// currency. For serving customers, this field cannot be set; all strategies in
	// a serving customer implicitly use the serving customer's currency. In all
	// cases the effective_currency_code field returns the currency used by the
	// strategy.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// EffectiveCurrencyCode: Output only. The currency used by the bidding
	// strategy (ISO 4217 three-letter code). For bidding strategies in manager
	// customers, this is the currency set by the advertiser when creating the
	// strategy. For serving customers, this is the customer's currency_code.
	// Bidding strategy metrics are reported in this currency. This field is
	// read-only.
	EffectiveCurrencyCode string `json:"effectiveCurrencyCode,omitempty"`
	// EnhancedCpc: A bidding strategy that raises bids for clicks that seem more
	// likely to lead to a conversion and lowers them for clicks where they seem
	// less likely.
	EnhancedCpc *GoogleAdsSearchads360V23Common__EnhancedCpc `json:"enhancedCpc,omitempty"`
	// Id: Output only. The ID of the bidding strategy.
	Id int64 `json:"id,omitempty,string"`
	// MaximizeConversionValue: An automated bidding strategy to help get the most
	// conversion value for your campaigns while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V23Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: An automated bidding strategy to help get the most
	// conversions for your campaigns while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V23Common__MaximizeConversions `json:"maximizeConversions,omitempty"`
	// Name: The name of the bidding strategy. All bidding strategies within an
	// account must be named distinctly. The length of this string should be
	// between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).
	Name string `json:"name,omitempty"`
	// NonRemovedCampaignCount: Output only. The number of non-removed campaigns
	// attached to this bidding strategy. This field is read-only.
	NonRemovedCampaignCount int64 `json:"nonRemovedCampaignCount,omitempty,string"`
	// ResourceName: Immutable. The resource name of the bidding strategy. Bidding
	// strategy resource names have the form:
	// `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the bidding strategy. This field is
	// read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The bidding strategy is enabled.
	//   "REMOVED" - The bidding strategy is removed.
	Status string `json:"status,omitempty"`
	// TargetCpa: A bidding strategy that sets bids to help get as many conversions
	// as possible at the target cost-per-acquisition (CPA) you set.
	TargetCpa *GoogleAdsSearchads360V23Common__TargetCpa `json:"targetCpa,omitempty"`
	// TargetImpressionShare: A bidding strategy that automatically optimizes
	// towards a chosen percentage of impressions.
	TargetImpressionShare *GoogleAdsSearchads360V23Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetRoas: A bidding strategy that helps you maximize revenue while
	// averaging a specific target Return On Ad Spend (ROAS).
	TargetRoas *GoogleAdsSearchads360V23Common__TargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: A bid strategy that sets your bids to help get as many clicks
	// as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V23Common__TargetSpend `json:"targetSpend,omitempty"`
	// Type: Output only. The type of the bidding strategy. Create a bidding
	// strategy by setting the bidding scheme. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPC" - Target CPC is an automated bid strategy that sets bids to
	// help get as many clicks as possible at the target cost-per-click (CPC) you
	// set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlignedCampaignBudgetId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlignedCampaignBudgetId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BiddingStrategySimulation: A bidding
// strategy simulation. Supported combinations of simulation type and
// simulation modification method are detailed below respectively. 1.
// TARGET_CPA - UNIFORM 2. TARGET_ROAS - UNIFORM
type GoogleAdsSearchads360V23Resources__BiddingStrategySimulation struct {
	// BiddingStrategyId: Output only. Bidding strategy shared set id of the
	// simulation.
	BiddingStrategyId int64 `json:"biddingStrategyId,omitempty,string"`
	// EndDate: Output only. Last day on which the simulation is based, in
	// YYYY-MM-DD format
	EndDate string `json:"endDate,omitempty"`
	// ModificationMethod: Output only. How the simulation modifies the field.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UNIFORM" - The values in a simulation were applied to all children of a
	// given resource uniformly. Overrides on child resources were not respected.
	//   "DEFAULT" - The values in a simulation were applied to the given resource.
	// Overrides on child resources were respected, and traffic estimates do not
	// include these resources.
	//   "SCALING" - The values in a simulation were all scaled by the same factor.
	// For example, in a simulated TargetCpa campaign, the campaign target and all
	// ad group targets were scaled by a factor of X.
	ModificationMethod string `json:"modificationMethod,omitempty"`
	// ResourceName: Output only. The resource name of the bidding strategy
	// simulation. Bidding strategy simulation resource names have the form:
	// `customers/{customer_id}/biddingStrategySimulations/{bidding_strategy_id}~{ty
	// pe}~{modification_method}~{start_date}~{end_date}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. First day on which the simulation is based, in
	// YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// TargetCpaPointList: Output only. Simulation points if the simulation type is
	// TARGET_CPA.
	TargetCpaPointList *GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList `json:"targetCpaPointList,omitempty"`
	// TargetRoasPointList: Output only. Simulation points if the simulation type
	// is TARGET_ROAS.
	TargetRoasPointList *GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList `json:"targetRoasPointList,omitempty"`
	// Type: Output only. The field that the simulation modifies.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CPC_BID" - The simulation is for a CPC bid.
	//   "CPV_BID" - The simulation is for a CPV bid.
	//   "TARGET_CPA" - The simulation is for a CPA target.
	//   "BID_MODIFIER" - The simulation is for a bid modifier.
	//   "TARGET_ROAS" - The simulation is for a ROAS target.
	//   "PERCENT_CPC_BID" - The simulation is for a percent CPC bid.
	//   "TARGET_IMPRESSION_SHARE" - The simulation is for an impression share
	// target.
	//   "BUDGET" - The simulation is for a budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BiddingStrategyId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddingStrategyId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BiddingStrategySimulation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BiddingStrategySimulation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BillingSetup: A billing setup, which
// associates a payments account and an advertiser. A billing setup is specific
// to one advertiser.
type GoogleAdsSearchads360V23Resources__BillingSetup struct {
	// EndDateTime: Output only. The end date time in yyyy-MM-dd or yyyy-MM-dd
	// HH:mm:ss format.
	EndDateTime string `json:"endDateTime,omitempty"`
	// EndTimeType: Output only. The end time as a type. The only possible value is
	// FOREVER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	EndTimeType string `json:"endTimeType,omitempty"`
	// Id: Output only. The ID of the billing setup.
	Id int64 `json:"id,omitempty,string"`
	// PaymentsAccount: Immutable. The resource name of the payments account
	// associated with this billing setup. Payments resource names have the form:
	// `customers/{customer_id}/paymentsAccounts/{payments_account_id}` When
	// setting up billing, this is used to signup with an existing payments account
	// (and then payments_account_info should not be set). When getting a billing
	// setup, this and payments_account_info will be populated.
	PaymentsAccount string `json:"paymentsAccount,omitempty"`
	// PaymentsAccountInfo: Immutable. The payments account information associated
	// with this billing setup. When setting up billing, this is used to signup
	// with a new payments account (and then payments_account should not be set).
	// When getting a billing setup, this and payments_account will be populated.
	PaymentsAccountInfo *GoogleAdsSearchads360V23ResourcesBillingSetupPaymentsAccountInfo `json:"paymentsAccountInfo,omitempty"`
	// ResourceName: Immutable. The resource name of the billing setup.
	// BillingSetup resource names have the form:
	// `customers/{customer_id}/billingSetups/{billing_setup_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDateTime: Immutable. The start date time in yyyy-MM-dd or yyyy-MM-dd
	// HH:mm:ss format. Only a future time is allowed.
	StartDateTime string `json:"startDateTime,omitempty"`
	// StartTimeType: Immutable. The start time as a type. Only NOW is allowed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOW" - As soon as possible.
	//   "FOREVER" - An infinite point in the future.
	StartTimeType string `json:"startTimeType,omitempty"`
	// Status: Output only. The status of the billing setup.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The billing setup is pending approval.
	//   "APPROVED_HELD" - The billing setup has been approved but the
	// corresponding first budget has not. This can only occur for billing setups
	// configured for monthly invoicing.
	//   "APPROVED" - The billing setup has been approved.
	//   "CANCELLED" - The billing setup was cancelled by the user prior to
	// approval.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndDateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BillingSetup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BillingSetup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtif
// act: specific to a local services business registration check.
type GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact struct {
	// CheckId: Output only. The id of the check, such as vat_tax_id, representing
	// "VAT Tax ID" requirement.
	CheckId string `json:"checkId,omitempty"`
	// RegistrationDocument: Output only. Message storing document info for the
	// business.
	RegistrationDocument *GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument `json:"registrationDocument,omitempty"`
	// RegistrationNumber: Output only. Message storing government issued number
	// for the business.
	RegistrationNumber *GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber `json:"registrationNumber,omitempty"`
	// RegistrationType: Output only. The type of business registration check
	// (number, document).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NUMBER" - Registration number check type.
	//   "DOCUMENT" - Registration document check type.
	RegistrationType string `json:"registrationType,omitempty"`
	// RejectionReason: Output only. Registration document rejection reason.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_NAME_MISMATCH" - Business name doesn't match business name for
	// the Local Services Ad.
	//   "BUSINESS_DETAILS_MISMATCH" - Business details mismatch.
	//   "ID_NOT_FOUND" - Business registration ID not found.
	//   "POOR_DOCUMENT_IMAGE_QUALITY" - Uploaded document not clear, blurry, etc.
	//   "DOCUMENT_EXPIRED" - Uploaded document has expired.
	//   "DOCUMENT_INVALID" - Document revoked or annuled.
	//   "DOCUMENT_TYPE_MISMATCH" - Document type mismatch.
	//   "DOCUMENT_UNVERIFIABLE" - Uploaded document could not be verified as
	// legitimate.
	//   "OTHER" - The business registration process could not be completed due to
	// an issue. Contact https://support.google.com/localservices to learn more.
	RejectionReason string `json:"rejectionReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CheckId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CheckId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument: specific to
// a local services business registration document.
type GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument struct {
	// DocumentReadonly: Output only. The readonly field containing the information
	// for an uploaded business registration document.
	DocumentReadonly *GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly `json:"documentReadonly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentReadonly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentReadonly") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BusinessRegistrationDocument
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber: specific to a
// local services business registration number.
type GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber struct {
	// Number: Output only. Government-issued number for the business.
	Number string `json:"number,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Number") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Number") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__BusinessRegistrationNumber
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CallReportingSetting: Call reporting
// setting for a customer.
type GoogleAdsSearchads360V23Resources__CallReportingSetting struct {
	// CallConversionAction: Customer-level call conversion action to attribute a
	// call conversion to. If not set a default conversion action is used. Only in
	// effect when call_conversion_reporting_enabled is set to true.
	CallConversionAction string `json:"callConversionAction,omitempty"`
	// CallConversionReportingEnabled: Whether to enable call conversion reporting.
	CallConversionReportingEnabled bool `json:"callConversionReportingEnabled,omitempty"`
	// CallReportingEnabled: Enable reporting of phone call events by redirecting
	// them through Google System.
	CallReportingEnabled bool `json:"callReportingEnabled,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallConversionAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallConversionAction") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CallReportingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CallReportingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CallView: A call view that includes data
// for call tracking of call-only ads or call extensions.
type GoogleAdsSearchads360V23Resources__CallView struct {
	// CallDurationSeconds: Output only. The advertiser-provided call duration in
	// seconds.
	CallDurationSeconds int64 `json:"callDurationSeconds,omitempty,string"`
	// CallStatus: Output only. The status of the call.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MISSED" - The call was missed.
	//   "RECEIVED" - The call was received.
	CallStatus string `json:"callStatus,omitempty"`
	// CallTrackingDisplayLocation: Output only. The call tracking display
	// location.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD" - The phone call placed from the ad.
	//   "LANDING_PAGE" - The phone call placed from the landing page ad points to.
	CallTrackingDisplayLocation string `json:"callTrackingDisplayLocation,omitempty"`
	// CallerAreaCode: Output only. Area code of the caller. Null if the call
	// duration is shorter than 15 seconds.
	CallerAreaCode string `json:"callerAreaCode,omitempty"`
	// CallerCountryCode: Output only. code of the caller.
	CallerCountryCode string `json:"callerCountryCode,omitempty"`
	// EndCallDateTime: Output only. The advertiser-provided call end date time.
	EndCallDateTime string `json:"endCallDateTime,omitempty"`
	// ResourceName: Output only. The resource name of the call view. Call view
	// resource names have the form:
	// `customers/{customer_id}/callViews/{call_detail_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartCallDateTime: Output only. The advertiser-provided call start date
	// time.
	StartCallDateTime string `json:"startCallDateTime,omitempty"`
	// Type: Output only. The type of the call.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MANUALLY_DIALED" - The phone call was manually dialed.
	//   "HIGH_END_MOBILE_SEARCH" - The phone call was a mobile click-to-call.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallDurationSeconds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallDurationSeconds") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CallView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CallView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Campaign: A campaign.
type GoogleAdsSearchads360V23Resources__Campaign struct {
	// AccessibleBiddingStrategy: Output only. Resource name of
	// AccessibleBiddingStrategy, a read-only view of the unrestricted attributes
	// of the attached portfolio bidding strategy identified by 'bidding_strategy'.
	// Empty, if the campaign does not use a portfolio strategy. Unrestricted
	// strategy attributes are available to all customers with whom the strategy is
	// shared and are read from the AccessibleBiddingStrategy resource. In
	// contrast, restricted attributes are only available to the owner customer of
	// the strategy and their managers. Restricted attributes can only be read from
	// the BiddingStrategy resource.
	AccessibleBiddingStrategy string `json:"accessibleBiddingStrategy,omitempty"`
	// AdServingOptimizationStatus: The ad serving optimization status of the
	// campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "OPTIMIZE" - Ad serving is optimized based on CTR for the campaign.
	//   "CONVERSION_OPTIMIZE" - Ad serving is optimized based on CTR * Conversion
	// for the campaign. If the campaign is not in the conversion optimizer bidding
	// strategy, it will default to OPTIMIZED.
	//   "ROTATE" - Ads are rotated evenly for 90 days, then optimized for clicks.
	//   "ROTATE_INDEFINITELY" - Show lower performing ads more evenly with higher
	// performing ads, and do not optimize.
	//   "UNAVAILABLE" - Ad serving optimization status is not available.
	AdServingOptimizationStatus string `json:"adServingOptimizationStatus,omitempty"`
	// AdvertisingChannelSubType: Immutable. Optional refinement to
	// `advertising_channel_type`. Must be a valid sub-type of the parent channel
	// type. Can be set only when creating campaigns. After campaign is created,
	// the field can not be changed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "SEARCH_MOBILE_APP" - Mobile app campaigns for Search.
	//   "DISPLAY_MOBILE_APP" - Mobile app campaigns for Display.
	//   "SEARCH_EXPRESS" - AdWords express campaigns for search.
	//   "DISPLAY_EXPRESS" - AdWords Express campaigns for display.
	//   "SHOPPING_SMART_ADS" - Smart Shopping campaigns.
	//   "DISPLAY_GMAIL_AD" - Gmail Ad campaigns.
	//   "DISPLAY_SMART_CAMPAIGN" - Smart display campaigns. New campaigns of this
	// sub type cannot be created.
	//   "VIDEO_ACTION" - Video TrueView for Action campaigns.
	//   "VIDEO_NON_SKIPPABLE" - Video campaigns with non-skippable video ads.
	//   "APP_CAMPAIGN" - App Campaign that lets you easily promote your Android or
	// iOS app across Google's top properties including Search, Play, YouTube, and
	// the Google Display Network.
	//   "APP_CAMPAIGN_FOR_ENGAGEMENT" - App Campaign for engagement, focused on
	// driving re-engagement with the app across several of Google's top properties
	// including Search, YouTube, and the Google Display Network.
	//   "LOCAL_CAMPAIGN" - Campaigns specialized for local advertising.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - Shopping Comparison Listing campaigns.
	//   "SMART_CAMPAIGN" - Standard Smart campaigns.
	//   "VIDEO_SEQUENCE" - Video campaigns with sequence video ads.
	//   "APP_CAMPAIGN_FOR_PRE_REGISTRATION" - App Campaign for pre registration,
	// specialized for advertising mobile app pre-registration, that targets
	// multiple advertising channels across Google Play, YouTube and Display
	// Network.
	//   "VIDEO_REACH_TARGET_FREQUENCY" - Video reach campaign with Target
	// Frequency bidding strategy.
	//   "TRAVEL_ACTIVITIES" - Travel Activities campaigns.
	//   "SOCIAL_FACEBOOK_TRACKING_ONLY" - Facebook tracking only social campaigns.
	AdvertisingChannelSubType string `json:"advertisingChannelSubType,omitempty"`
	// AdvertisingChannelType: Immutable. The primary serving target for ads within
	// the campaign. The targeting options can be refined in `network_settings`.
	// This field is required and should not be empty when creating new campaigns.
	// Can be set only when creating campaigns. After the campaign is created, the
	// field can not be changed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "DEMAND_GEN" - Demand Gen campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelType string `json:"advertisingChannelType,omitempty"`
	// AiMaxSetting: Settings for AI Max in search campaigns.
	AiMaxSetting *GoogleAdsSearchads360V23ResourcesCampaignAiMaxSetting `json:"aiMaxSetting,omitempty"`
	// AppCampaignSetting: The setting related to App Campaign.
	AppCampaignSetting *GoogleAdsSearchads360V23ResourcesCampaignAppCampaignSetting `json:"appCampaignSetting,omitempty"`
	// AssetAutomationSettings: Contains the opt-in/out status of each
	// AssetAutomationType. See documentation of each asset automation type enum
	// for default opt in/out behavior.
	AssetAutomationSettings []*GoogleAdsSearchads360V23ResourcesCampaignAssetAutomationSetting `json:"assetAutomationSettings,omitempty"`
	// AudienceSetting: Immutable. Setting for audience related features.
	AudienceSetting *GoogleAdsSearchads360V23ResourcesCampaignAudienceSetting `json:"audienceSetting,omitempty"`
	// BaseCampaign: Output only. The resource name of the base campaign of a draft
	// or experiment campaign. For base campaigns, this is equal to
	// `resource_name`. This field is read-only.
	BaseCampaign string `json:"baseCampaign,omitempty"`
	// BiddingStrategy: The resource name of the portfolio bidding strategy used by
	// the campaign.
	BiddingStrategy string `json:"biddingStrategy,omitempty"`
	// BiddingStrategySystemStatus: Output only. The system status of the
	// campaign's bidding strategy.
	//
	// Possible values:
	//   "UNSPECIFIED" - Signals that an unexpected error occurred, for example, no
	// bidding strategy type was found, or no status information was found.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The bid strategy is active, and AdWords cannot find any
	// specific issues with the strategy.
	//   "LEARNING_NEW" - The bid strategy is learning because it has been recently
	// created or recently reactivated.
	//   "LEARNING_SETTING_CHANGE" - The bid strategy is learning because of a
	// recent setting change.
	//   "LEARNING_BUDGET_CHANGE" - The bid strategy is learning because of a
	// recent budget change.
	//   "LEARNING_COMPOSITION_CHANGE" - The bid strategy is learning because of
	// recent change in number of campaigns, ad groups or keywords attached to it.
	//   "LEARNING_CONVERSION_TYPE_CHANGE" - The bid strategy depends on conversion
	// reporting and the customer recently modified conversion types that were
	// relevant to the bid strategy.
	//   "LEARNING_CONVERSION_SETTING_CHANGE" - The bid strategy depends on
	// conversion reporting and the customer recently changed their conversion
	// settings.
	//   "LIMITED_BY_CPC_BID_CEILING" - The bid strategy is limited by its bid
	// ceiling.
	//   "LIMITED_BY_CPC_BID_FLOOR" - The bid strategy is limited by its bid floor.
	//   "LIMITED_BY_DATA" - The bid strategy is limited because there was not
	// enough conversion traffic over the past weeks.
	//   "LIMITED_BY_BUDGET" - A significant fraction of keywords in this bid
	// strategy are limited by budget.
	//   "LIMITED_BY_LOW_PRIORITY_SPEND" - The bid strategy cannot reach its target
	// spend because its spend has been de-prioritized.
	//   "LIMITED_BY_LOW_QUALITY" - A significant fraction of keywords in this bid
	// strategy have a low Quality Score.
	//   "LIMITED_BY_INVENTORY" - The bid strategy cannot fully spend its budget
	// because of narrow targeting.
	//   "MISCONFIGURED_ZERO_ELIGIBILITY" - Missing conversion tracking (no pings
	// present) and/or remarketing lists for SSC.
	//   "MISCONFIGURED_CONVERSION_TYPES" - The bid strategy depends on conversion
	// reporting and the customer is lacking conversion types that might be
	// reported against this strategy.
	//   "MISCONFIGURED_CONVERSION_SETTINGS" - The bid strategy depends on
	// conversion reporting and the customer's conversion settings are
	// misconfigured.
	//   "MISCONFIGURED_SHARED_BUDGET" - There are campaigns outside the bid
	// strategy that share budgets with campaigns included in the strategy.
	//   "MISCONFIGURED_STRATEGY_TYPE" - The campaign has an invalid strategy type
	// and is not serving.
	//   "PAUSED" - The bid strategy is not active. Either there are no active
	// campaigns, ad groups or keywords attached to the bid strategy. Or there are
	// no active budgets connected to the bid strategy.
	//   "UNAVAILABLE" - This bid strategy currently does not support status
	// reporting.
	//   "MULTIPLE_LEARNING" - There were multiple LEARNING_* system statuses for
	// this bid strategy during the time in question.
	//   "MULTIPLE_LIMITED" - There were multiple LIMITED_* system statuses for
	// this bid strategy during the time in question.
	//   "MULTIPLE_MISCONFIGURED" - There were multiple MISCONFIGURED_* system
	// statuses for this bid strategy during the time in question.
	//   "MULTIPLE" - There were multiple system statuses for this bid strategy
	// during the time in question.
	BiddingStrategySystemStatus string `json:"biddingStrategySystemStatus,omitempty"`
	// BiddingStrategyType: Output only. The type of bidding strategy. A bidding
	// strategy can be created by setting either the bidding scheme to create a
	// standard bidding strategy or the `bidding_strategy` field to create a
	// portfolio bidding strategy. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPC" - Target CPC is an automated bid strategy that sets bids to
	// help get as many clicks as possible at the target cost-per-click (CPC) you
	// set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	BiddingStrategyType string                                                    `json:"biddingStrategyType,omitempty"`
	BrandGuidelines     *GoogleAdsSearchads360V23ResourcesCampaignBrandGuidelines `json:"brandGuidelines,omitempty"`
	// BrandGuidelinesEnabled: Immutable. Whether Brand Guidelines are enabled for
	// this Campaign. Only applicable to Performance Max campaigns. If enabled,
	// business name and logo assets must be linked as CampaignAssets instead of
	// AssetGroupAssets.
	BrandGuidelinesEnabled bool `json:"brandGuidelinesEnabled,omitempty"`
	// CampaignBudget: The resource name of the campaign budget of the campaign.
	CampaignBudget string `json:"campaignBudget,omitempty"`
	// CampaignGroup: The resource name of the campaign group that this campaign
	// belongs to.
	CampaignGroup string `json:"campaignGroup,omitempty"`
	// Commission: Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	Commission *GoogleAdsSearchads360V23Common__Commission `json:"commission,omitempty"`
	// ContainsEuPoliticalAdvertising: The advertiser should self-declare whether
	// this campaign contains political advertising content targeted towards the
	// European Union.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CONTAINS_EU_POLITICAL_ADVERTISING" - The campaign contains political
	// advertising targeted towards the EU. The campaign will be restricted from
	// serving ads in the EU.
	//   "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING" - The campaign does not
	// contain political advertising targeted towards the EU. No additional serving
	// restrictions will apply.
	ContainsEuPoliticalAdvertising string `json:"containsEuPoliticalAdvertising,omitempty"`
	// DemandGenCampaignSettings: Settings for Demand Gen campaign.
	DemandGenCampaignSettings *GoogleAdsSearchads360V23ResourcesCampaignDemandGenCampaignSettings `json:"demandGenCampaignSettings,omitempty"`
	// DynamicSearchAdsSetting: The setting for controlling Dynamic Search Ads
	// (DSA).
	DynamicSearchAdsSetting *GoogleAdsSearchads360V23ResourcesCampaignDynamicSearchAdsSetting `json:"dynamicSearchAdsSetting,omitempty"`
	// EffectiveLabels: Output only. The resource names of effective labels
	// attached to this campaign. An effective label is a label inherited or
	// directly assigned to this campaign.
	EffectiveLabels []string `json:"effectiveLabels,omitempty"`
	// EndDateTime: The last day and time of the campaign in serving customer's
	// timezone in "yyyy-MM-dd HH:mm:ss" format. Set the time component to 23:59:59
	// for daily granularity, time granularity is only supported for some campaign
	// types. On create, defaults to running indefinitely. To set an existing
	// campaign to run indefinitely, clear this field.
	EndDateTime string `json:"endDateTime,omitempty"`
	// EngineId: Output only. ID of the campaign in the external engine account.
	// This field is for non-Google Ads account only, for example, Yahoo Japan,
	// Microsoft, Baidu etc. For Google Ads entity, use "campaign.id" instead.
	EngineId string `json:"engineId,omitempty"`
	// ExcludedParentAssetFieldTypes: The asset field types that should be excluded
	// from this campaign. Asset links with these field types will not be inherited
	// by this campaign from the upper level.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	ExcludedParentAssetFieldTypes []string `json:"excludedParentAssetFieldTypes,omitempty"`
	// ExcludedParentAssetSetTypes: The asset set types that should be excluded
	// from this campaign. Asset set links with these types will not be inherited
	// by this campaign from the upper level. Location group types
	// (GMB_DYNAMIC_LOCATION_GROUP, CHAIN_DYNAMIC_LOCATION_GROUP, and
	// STATIC_LOCATION_GROUP) are child types of LOCATION_SYNC. Therefore, if
	// LOCATION_SYNC is set for this field, all location group asset sets are not
	// allowed to be linked to this campaign, and all Location Extension (LE) and
	// Affiliate Location Extensions (ALE) will not be served under this campaign.
	// Only LOCATION_SYNC is currently supported.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	ExcludedParentAssetSetTypes []string `json:"excludedParentAssetSetTypes,omitempty"`
	// ExperimentType: Output only. The type of campaign: normal, draft, or
	// experiment.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BASE" - This is a regular campaign.
	//   "DRAFT" - This is a draft version of a campaign. It has some modifications
	// from a base campaign, but it does not serve or accrue metrics.
	//   "EXPERIMENT" - This is an experiment version of a campaign. It has some
	// modifications from a base campaign, and a percentage of traffic is being
	// diverted from the BASE campaign to this experiment campaign.
	ExperimentType string `json:"experimentType,omitempty"`
	// FeedTypes: Output only. Types of feeds that are attached directly to this
	// campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PAGE_FEED" - Page asset set.
	//   "DYNAMIC_EDUCATION" - Dynamic education asset set.
	//   "MERCHANT_CENTER_FEED" - Google Merchant Center asset set.
	//   "DYNAMIC_REAL_ESTATE" - Dynamic real estate asset set.
	//   "DYNAMIC_CUSTOM" - Dynamic custom asset set.
	//   "DYNAMIC_HOTELS_AND_RENTALS" - Dynamic hotels and rentals asset set.
	//   "DYNAMIC_FLIGHTS" - Dynamic flights asset set.
	//   "DYNAMIC_TRAVEL" - Dynamic travel asset set.
	//   "DYNAMIC_LOCAL" - Dynamic local asset set.
	//   "DYNAMIC_JOBS" - Dynamic jobs asset set.
	//   "LOCATION_SYNC" - Location sync level asset set.
	//   "BUSINESS_PROFILE_DYNAMIC_LOCATION_GROUP" - Business Profile location
	// group asset set.
	//   "CHAIN_DYNAMIC_LOCATION_GROUP" - Chain location group asset set which can
	// be used for both owned locations and affiliate locations.
	//   "STATIC_LOCATION_GROUP" - Static location group asset set which can be
	// used for both owned locations and affiliate locations.
	//   "HOTEL_PROPERTY" - Hotel Property asset set which is used to link a hotel
	// property feed to Performance Max for travel goals campaigns.
	//   "TRAVEL_FEED" - Travel Feed asset set type. Can represent either a Hotel
	// feed or a Things to Do (activities) feed.
	FeedTypes []string `json:"feedTypes,omitempty"`
	// FinalUrlSuffix: Suffix used to append query parameters to landing pages that
	// are served with parallel tracking.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// FrequencyCaps: A list that limits how often each user will see this
	// campaign's ads.
	FrequencyCaps []*GoogleAdsSearchads360V23Common__FrequencyCapEntry `json:"frequencyCaps,omitempty"`
	// GeoTargetTypeSetting: The setting for ads geotargeting.
	GeoTargetTypeSetting *GoogleAdsSearchads360V23ResourcesCampaignGeoTargetTypeSetting `json:"geoTargetTypeSetting,omitempty"`
	// HotelPropertyAssetSet: Immutable. The resource name for a set of hotel
	// properties for Performance Max for travel goals campaigns.
	HotelPropertyAssetSet string `json:"hotelPropertyAssetSet,omitempty"`
	// HotelSetting: Output only. The hotel setting for the campaign.
	HotelSetting *GoogleAdsSearchads360V23ResourcesCampaignHotelSettingInfo `json:"hotelSetting,omitempty"`
	// Id: Output only. The ID of the campaign.
	Id int64 `json:"id,omitempty,string"`
	// KeywordMatchType: Keyword match type of Campaign. Set to BROAD to set broad
	// matching for all keywords in a campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BROAD" - Campaign level broad match.
	KeywordMatchType string `json:"keywordMatchType,omitempty"`
	// Labels: Output only. The resource names of labels attached to this campaign.
	Labels []string `json:"labels,omitempty"`
	// LastModifiedTime: Output only. The datetime when this campaign was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// ListingType: Immutable. Listing type of ads served for this campaign. Field
	// is restricted for usage with Performance Max campaigns.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VEHICLES" - This campaign serves vehicle ads.
	ListingType string `json:"listingType,omitempty"`
	// LocalCampaignSetting: The setting for local campaign.
	LocalCampaignSetting *GoogleAdsSearchads360V23ResourcesCampaignLocalCampaignSetting `json:"localCampaignSetting,omitempty"`
	// LocalServicesCampaignSettings: The Local Services Campaign related settings.
	LocalServicesCampaignSettings *GoogleAdsSearchads360V23ResourcesCampaignLocalServicesCampaignSettings `json:"localServicesCampaignSettings,omitempty"`
	// ManualCpa: Standard Manual CPA bidding strategy. Manual bidding strategy
	// that allows advertiser to set the bid per advertiser-specified action.
	// Supported only for Local Services campaigns.
	ManualCpa *GoogleAdsSearchads360V23Common__ManualCpa `json:"manualCpa,omitempty"`
	// ManualCpc: Standard Manual CPC bidding strategy. Manual click-based bidding
	// where user pays per click.
	ManualCpc *GoogleAdsSearchads360V23Common__ManualCpc `json:"manualCpc,omitempty"`
	// ManualCpm: Standard Manual CPM bidding strategy. Manual impression-based
	// bidding where user pays per thousand impressions.
	ManualCpm *GoogleAdsSearchads360V23Common__ManualCpm `json:"manualCpm,omitempty"`
	// ManualCpv: A bidding strategy that pays a configurable amount per video
	// view.
	ManualCpv *GoogleAdsSearchads360V23Common__ManualCpv `json:"manualCpv,omitempty"`
	// MaximizeConversionValue: Standard Maximize Conversion Value bidding strategy
	// that automatically sets bids to maximize revenue while spending your budget.
	MaximizeConversionValue *GoogleAdsSearchads360V23Common__MaximizeConversionValue `json:"maximizeConversionValue,omitempty"`
	// MaximizeConversions: Standard Maximize Conversions bidding strategy that
	// automatically maximizes number of conversions while spending your budget.
	MaximizeConversions *GoogleAdsSearchads360V23Common__MaximizeConversions `json:"maximizeConversions,omitempty"`
	// MissingEuPoliticalAdvertisingDeclaration: Output only. Indicates whether
	// this campaign is missing a declaration about whether it contains political
	// advertising targeted towards the EU and is ineligible for any exemptions. If
	// this field is true, use the contains_eu_political_advertising field to add
	// the required declaration. This field is read-only.
	MissingEuPoliticalAdvertisingDeclaration bool `json:"missingEuPoliticalAdvertisingDeclaration,omitempty"`
	// Name: The name of the campaign. This field is required and should not be
	// empty when creating new campaigns. It must not contain any null (code point
	// 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD)
	// characters.
	Name string `json:"name,omitempty"`
	// NetworkSettings: The network settings for the campaign.
	NetworkSettings *GoogleAdsSearchads360V23ResourcesCampaignNetworkSettings `json:"networkSettings,omitempty"`
	// OptimizationGoalSetting: Optimization goal setting for this campaign, which
	// includes a set of optimization goal types.
	OptimizationGoalSetting *GoogleAdsSearchads360V23ResourcesCampaignOptimizationGoalSetting `json:"optimizationGoalSetting,omitempty"`
	// OptimizationScore: Output only. Optimization score of the campaign.
	// Optimization score is an estimate of how well a campaign is set to perform.
	// It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the
	// campaign is performing at full potential. This field is null for unscored
	// campaigns. See "About optimization score" at
	// https://support.google.com/google-ads/answer/9061546. This field is
	// read-only.
	OptimizationScore float64 `json:"optimizationScore,omitempty"`
	// PaymentMode: Payment mode for the campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLICKS" - Pay per interaction.
	//   "CONVERSION_VALUE" - Pay per conversion value. This mode is only supported
	// by campaigns with AdvertisingChannelType.HOTEL,
	// BiddingStrategyType.COMMISSION, and BudgetType..
	//   "CONVERSIONS" - Pay per conversion. This mode is only supported by
	// campaigns with AdvertisingChannelType.DISPLAY (excluding
	// AdvertisingChannelSubType.DISPLAY_GMAIL), BiddingStrategyType.TARGET_CPA,
	// and BudgetType.FIXED_CPA. The customer must also be eligible for this mode.
	// See Customer.eligibility_failure_reasons for details.
	//   "GUEST_STAY" - Pay per guest stay value. This mode is only supported by
	// campaigns with AdvertisingChannelType.HOTEL, BiddingStrategyType.COMMISSION,
	// and BudgetType.STANDARD.
	PaymentMode string `json:"paymentMode,omitempty"`
	// PercentCpc: Standard Percent Cpc bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	PercentCpc *GoogleAdsSearchads360V23Common__PercentCpc `json:"percentCpc,omitempty"`
	// PerformanceMaxUpgrade: Output only. Information about campaigns being
	// upgraded to Performance Max.
	PerformanceMaxUpgrade *GoogleAdsSearchads360V23ResourcesCampaignPerformanceMaxUpgrade `json:"performanceMaxUpgrade,omitempty"`
	// PmaxCampaignSettings: Settings for Performance Max campaign.
	PmaxCampaignSettings *GoogleAdsSearchads360V23ResourcesCampaignPmaxCampaignSettings `json:"pmaxCampaignSettings,omitempty"`
	// PrimaryStatus: Output only. The primary status of the campaign. Provides
	// insight into why a campaign is not serving or not serving optimally.
	// Modification to the campaign and its related entities might take a while to
	// be reflected in this status.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The campaign is eligible to serve.
	//   "PAUSED" - The user-specified campaign status is paused.
	//   "REMOVED" - The user-specified campaign status is removed.
	//   "ENDED" - The user-specified time for this campaign to end has passed.
	//   "PENDING" - The campaign may serve in the future.
	//   "MISCONFIGURED" - The campaign or its associated entities have incorrect
	// user-specified settings.
	//   "LIMITED" - The campaign or its associated entities are limited by
	// user-specified settings.
	//   "LEARNING" - The automated bidding system is adjusting to user-specified
	// changes to the campaign or associated entities.
	//   "NOT_ELIGIBLE" - The campaign is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusReasons: Output only. The primary status reasons of the
	// campaign. Provides insight into why a campaign is not serving or not serving
	// optimally. These reasons are aggregated to determine an overall
	// CampaignPrimaryStatus.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_REMOVED" - The user-specified campaign status is removed.
	//   "CAMPAIGN_PAUSED" - The user-specified campaign status is paused.
	//   "CAMPAIGN_PENDING" - The user-specified time for this campaign to start is
	// in the future.
	//   "CAMPAIGN_ENDED" - The user-specified time for this campaign to end has
	// passed.
	//   "CAMPAIGN_DRAFT" - The campaign is a draft.
	//   "BIDDING_STRATEGY_MISCONFIGURED" - The bidding strategy has incorrect
	// user-specified settings.
	//   "BIDDING_STRATEGY_LIMITED" - The bidding strategy is limited by
	// user-specified settings such as lack of data or similar.
	//   "BIDDING_STRATEGY_LEARNING" - The automated bidding system is adjusting to
	// user-specified changes to the bidding strategy.
	//   "BIDDING_STRATEGY_CONSTRAINED" - Campaign could capture more conversion
	// value by adjusting CPA/ROAS targets.
	//   "BUDGET_CONSTRAINED" - The budget is limiting the campaign's ability to
	// serve.
	//   "BUDGET_MISCONFIGURED" - The budget has incorrect user-specified settings.
	//   "SEARCH_VOLUME_LIMITED" - Campaign is not targeting all relevant queries.
	//   "AD_GROUPS_PAUSED" - The user-specified ad group statuses are all paused.
	//   "NO_AD_GROUPS" - No eligible ad groups exist in this campaign.
	//   "KEYWORDS_PAUSED" - The user-specified keyword statuses are all paused.
	//   "NO_KEYWORDS" - No eligible keywords exist in this campaign.
	//   "AD_GROUP_ADS_PAUSED" - The user-specified ad group ad statuses are all
	// paused.
	//   "NO_AD_GROUP_ADS" - No eligible ad group ads exist in this campaign.
	//   "HAS_ADS_LIMITED_BY_POLICY" - At least one ad in this campaign is limited
	// by policy.
	//   "HAS_ADS_DISAPPROVED" - At least one ad in this campaign is disapproved.
	//   "MOST_ADS_UNDER_REVIEW" - Most ads in this campaign are pending review.
	//   "MISSING_LEAD_FORM_EXTENSION" - The campaign has a lead form goal, and the
	// lead form extension is missing.
	//   "MISSING_CALL_EXTENSION" - The campaign has a call goal, and the call
	// extension is missing.
	//   "LEAD_FORM_EXTENSION_UNDER_REVIEW" - The lead form extension is under
	// review.
	//   "LEAD_FORM_EXTENSION_DISAPPROVED" - The lead extension is disapproved.
	//   "CALL_EXTENSION_UNDER_REVIEW" - The call extension is under review.
	//   "CALL_EXTENSION_DISAPPROVED" - The call extension is disapproved.
	//   "NO_MOBILE_APPLICATION_AD_GROUP_CRITERIA" - No eligible mobile application
	// ad group criteria exist in this campaign.
	//   "CAMPAIGN_GROUP_PAUSED" - The user-specified campaign group status is
	// paused.
	//   "CAMPAIGN_GROUP_ALL_GROUP_BUDGETS_ENDED" - The user-specified times of all
	// group budgets associated with the parent campaign group has passed.
	//   "APP_NOT_RELEASED" - The app associated with this ACi campaign is not
	// released in the target countries of the campaign.
	//   "APP_PARTIALLY_RELEASED" - The app associated with this ACi campaign is
	// partially released in the target countries of the campaign.
	//   "HAS_ASSET_GROUPS_DISAPPROVED" - At least one asset group in this campaign
	// is disapproved.
	//   "HAS_ASSET_GROUPS_LIMITED_BY_POLICY" - At least one asset group in this
	// campaign is limited by policy.
	//   "MOST_ASSET_GROUPS_UNDER_REVIEW" - Most asset groups in this campaign are
	// pending review.
	//   "NO_ASSET_GROUPS" - No eligible asset groups exist in this campaign.
	//   "ASSET_GROUPS_PAUSED" - All asset groups in this campaign are paused.
	//   "MISSING_LOCATION_TARGETING" - The campaign has location restrictions but
	// does not specify location targeting.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// RealTimeBiddingSetting: Settings for Real-Time Bidding, a feature only
	// available for campaigns targeting the Ad Exchange network.
	RealTimeBiddingSetting *GoogleAdsSearchads360V23Common__RealTimeBiddingSetting `json:"realTimeBiddingSetting,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign. Campaign
	// resource names have the form:
	// `customers/{customer_id}/campaigns/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SelectiveOptimization: Selective optimization setting for this campaign,
	// which includes a set of conversion actions to optimize this campaign
	// towards. This feature only applies to app campaigns that use MULTI_CHANNEL
	// as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
	// AdvertisingChannelSubType.
	SelectiveOptimization *GoogleAdsSearchads360V23ResourcesCampaignSelectiveOptimization `json:"selectiveOptimization,omitempty"`
	// SelectiveOptimizationMode: Selective optimization mode for this campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - The selective optimization mode has not been specified.
	//   "UNKNOWN" - The selective optimization mode is not known in this version.
	//   "UNCONSTRAINED" - Google Ads selective optimization setting has no
	// constraints.
	//   "MATCHES_SEARCH_ADS360_EFFECTIVE_CAMPAIGN_LEVEL_CONFIG" - Google Ads
	// selective optimization setting matches Search Ads 360 effective campaign
	// level selective optimization setting.
	SelectiveOptimizationMode string `json:"selectiveOptimizationMode,omitempty"`
	// ServingStatus: Output only. The ad serving status of the campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "SERVING" - Serving.
	//   "NONE" - None.
	//   "ENDED" - Ended.
	//   "PENDING" - Pending.
	//   "SUSPENDED" - Suspended.
	ServingStatus string `json:"servingStatus,omitempty"`
	// ShoppingSetting: The setting for controlling Shopping campaigns.
	ShoppingSetting *GoogleAdsSearchads360V23ResourcesCampaignShoppingSetting `json:"shoppingSetting,omitempty"`
	// StartDateTime: The date and time when campaign started in serving. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format. Set the time component to 00:00:00 for daily granularity, time
	// granularity is only supported for some campaign types.
	StartDateTime string `json:"startDateTime,omitempty"`
	// Status: The status of the campaign. When a new campaign is added, the status
	// defaults to ENABLED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Campaign is active and can show ads.
	//   "PAUSED" - Campaign has been paused by the user.
	//   "REMOVED" - Campaign has been removed.
	Status string `json:"status,omitempty"`
	// TargetCpa: Standard Target CPA bidding strategy that automatically sets bids
	// to help get as many conversions as possible at the target
	// cost-per-acquisition (CPA) you set.
	TargetCpa *GoogleAdsSearchads360V23Common__TargetCpa `json:"targetCpa,omitempty"`
	// TargetCpc: An automated bidding strategy that sets bids to help get as many
	// clicks as possible at the target cost-per-click (CPC) you set.
	TargetCpc *GoogleAdsSearchads360V23Common__TargetCpc `json:"targetCpc,omitempty"`
	// TargetCpm: A bidding strategy that automatically optimizes cost per thousand
	// impressions.
	TargetCpm *GoogleAdsSearchads360V23Common__TargetCpm `json:"targetCpm,omitempty"`
	// TargetImpressionShare: Target Impression Share bidding strategy. An
	// automated bidding strategy that sets bids to achieve a chosen percentage of
	// impressions.
	TargetImpressionShare *GoogleAdsSearchads360V23Common__TargetImpressionShare `json:"targetImpressionShare,omitempty"`
	// TargetRoas: Standard Target ROAS bidding strategy that automatically
	// maximizes revenue while averaging a specific target return on ad spend
	// (ROAS).
	TargetRoas *GoogleAdsSearchads360V23Common__TargetRoas `json:"targetRoas,omitempty"`
	// TargetSpend: Standard Target Spend bidding strategy that automatically sets
	// your bids to help get as many clicks as possible within your budget.
	TargetSpend *GoogleAdsSearchads360V23Common__TargetSpend `json:"targetSpend,omitempty"`
	// TargetingSetting: Setting for targeting related features.
	TargetingSetting *GoogleAdsSearchads360V23Common__TargetingSetting `json:"targetingSetting,omitempty"`
	// ThirdPartyIntegrationPartners: Third-Party integration partners.
	ThirdPartyIntegrationPartners *GoogleAdsSearchads360V23Common__CampaignThirdPartyIntegrationPartners `json:"thirdPartyIntegrationPartners,omitempty"`
	// TrackingSetting: Output only. Campaign-level settings for tracking
	// information.
	TrackingSetting *GoogleAdsSearchads360V23ResourcesCampaignTrackingSetting `json:"trackingSetting,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// TravelCampaignSettings: Settings for Travel campaign.
	TravelCampaignSettings *GoogleAdsSearchads360V23ResourcesCampaignTravelCampaignSettings `json:"travelCampaignSettings,omitempty"`
	// UrlCustomParameters: The list of mappings used to substitute custom
	// parameter tags in a `tracking_url_template`, `final_urls`, or
	// `mobile_final_urls`.
	UrlCustomParameters []*GoogleAdsSearchads360V23Common__CustomParameter `json:"urlCustomParameters,omitempty"`
	// VanityPharma: Describes how unbranded pharma ads will be displayed.
	VanityPharma *GoogleAdsSearchads360V23ResourcesCampaignVanityPharma `json:"vanityPharma,omitempty"`
	// VideoBrandSafetySuitability: Brand Safety setting at the individual campaign
	// level. Allows for selecting an inventory type to show your ads on content
	// that is the right fit for your brand. See
	// https://support.google.com/google-ads/answer/7515513.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXPANDED_INVENTORY" - This option lets you show ads across all inventory
	// on YouTube and video partners that meet our standards for monetization. This
	// option may be an appropriate choice for brands that want maximum access to
	// the full breadth of videos eligible for ads, including, for example, videos
	// that have strong profanity in the context of comedy or a documentary, or
	// excessive violence as featured in video games.
	//   "STANDARD_INVENTORY" - This option lets you show ads across a wide range
	// of content that's appropriate for most brands, such as popular music videos,
	// documentaries, and movie trailers. The content you can show ads on is based
	// on YouTube's advertiser-friendly content guidelines that take into account,
	// for example, the strength or frequency of profanity, or the appropriateness
	// of subject matter like sensitive events. Ads won't show, for example, on
	// content with repeated strong profanity, strong sexual content, or graphic
	// violence.
	//   "LIMITED_INVENTORY" - This option lets you show ads on a reduced range of
	// content that's appropriate for brands with particularly strict guidelines
	// around inappropriate language and sexual suggestiveness; above and beyond
	// what YouTube's advertiser-friendly content guidelines address. The videos
	// accessible in this sensitive category meet heightened requirements,
	// especially for inappropriate language and sexual suggestiveness. For
	// example, your ads will be excluded from showing on some of YouTube's most
	// popular music videos and other pop culture content across YouTube and Google
	// video partners.
	VideoBrandSafetySuitability string `json:"videoBrandSafetySuitability,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessibleBiddingStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessibleBiddingStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Campaign) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Campaign
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__Campaign) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__Campaign
	var s1 struct {
		OptimizationScore gensupport.JSONFloat64 `json:"optimizationScore"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.OptimizationScore = float64(s1.OptimizationScore)
	return nil
}

// GoogleAdsSearchads360V23Resources__CampaignAsset: A link between a Campaign
// and an Asset.
type GoogleAdsSearchads360V23Resources__CampaignAsset struct {
	// Asset: Immutable. The asset which is linked to the campaign.
	Asset string `json:"asset,omitempty"`
	// Campaign: Immutable. The campaign to which the asset is linked.
	Campaign string `json:"campaign,omitempty"`
	// FieldType: Immutable. Role that the asset takes under the linked campaign.
	// Required.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// PrimaryStatus: Output only. Provides the PrimaryStatus of this asset link.
	// Primary status is meant essentially to differentiate between the plain
	// "status" field, which has advertiser set values of enabled, paused, or
	// removed. The primary status takes into account other signals (for assets its
	// mainly policy and quality approvals) to come up with a more comprehensive
	// status to indicate its serving state.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset is eligible to serve.
	//   "PAUSED" - The user-specified asset link status is paused.
	//   "REMOVED" - The user-specified asset link status is removed.
	//   "PENDING" - The asset may serve in the future.
	//   "LIMITED" - The asset is serving in a partial capacity.
	//   "NOT_ELIGIBLE" - The asset is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusDetails: Output only. Provides the details of the primary
	// status and its associated reasons.
	PrimaryStatusDetails []*GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails `json:"primaryStatusDetails,omitempty"`
	// PrimaryStatusReasons: Output only. Provides a list of reasons for why an
	// asset is not serving or not serving at full capacity.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_LINK_PAUSED" - The asset is paused for its linked rollup level.
	// Contributes to a PrimaryStatus of PAUSED.
	//   "ASSET_LINK_REMOVED" - The asset is removed for its linked rollup level.
	// Contributes to a PrimaryStatus of REMOVED.
	//   "ASSET_DISAPPROVED" - The asset has been marked as disapproved.
	// Contributes to a PrimaryStatus of NOT_ELIGIBLE
	//   "ASSET_UNDER_REVIEW" - The asset has not completed policy review.
	// Contributes to a PrimaryStatus of PENDING.
	//   "ASSET_APPROVED_LABELED" - The asset is approved with policies applied.
	// Contributes to a PrimaryStatus of LIMITED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign asset.
	// CampaignAsset resource names have the form:
	// `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}
	// `
	ResourceName string `json:"resourceName,omitempty"`
	// Source: Output only. Source of the campaign asset link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// Status: Status of the campaign asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignAssetSet: CampaignAssetSet is the
// linkage between a campaign and an asset set. Adding a CampaignAssetSet links
// an asset set with a campaign.
type GoogleAdsSearchads360V23Resources__CampaignAssetSet struct {
	// AssetSet: Immutable. The asset set which is linked to the campaign.
	AssetSet string `json:"assetSet,omitempty"`
	// Campaign: Immutable. The campaign to which this asset set is linked.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign asset set. Asset
	// set asset resource names have the form:
	// `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the campaign asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignAudienceView: A campaign audience
// view. Includes performance data from interests and remarketing lists for
// Display Network and YouTube Network ads, and remarketing lists for search
// ads (RLSA), aggregated by campaign and audience criterion. This view only
// includes audiences attached at the campaign level.
type GoogleAdsSearchads360V23Resources__CampaignAudienceView struct {
	// ResourceName: Output only. The resource name of the campaign audience view.
	// Campaign audience view resource names have the form:
	// `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignAudienceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignAudienceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignBidModifier: Represents a
// bid-modifiable only criterion at the campaign level.
type GoogleAdsSearchads360V23Resources__CampaignBidModifier struct {
	// BidModifier: The modifier for the bid when the criterion matches.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// Campaign: Output only. The campaign to which this criterion belongs.
	Campaign string `json:"campaign,omitempty"`
	// CriterionId: Output only. The ID of the criterion to bid modify. This field
	// is ignored for mutates.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// InteractionType: Immutable. Criterion for interaction type. Only supported
	// for search campaigns.
	InteractionType *GoogleAdsSearchads360V23Common__InteractionTypeInfo `json:"interactionType,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign bid modifier.
	// Campaign bid modifier resource names have the form:
	// `customers/{customer_id}/campaignBidModifiers/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BidModifier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BidModifier") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignBidModifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignBidModifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__CampaignBidModifier) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignBidModifier
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V23Resources__CampaignBudget: A campaign budget.
type GoogleAdsSearchads360V23Resources__CampaignBudget struct {
	// AlignedBiddingStrategyId: ID of the portfolio bidding strategy that this
	// shared campaign budget is aligned with. When a bidding strategy and a
	// campaign budget are aligned, they are attached to the same set of campaigns.
	// After a campaign budget is aligned with a bidding strategy, campaigns that
	// are added to the campaign budget must also use the aligned bidding strategy.
	AlignedBiddingStrategyId int64 `json:"alignedBiddingStrategyId,omitempty,string"`
	// AmountMicros: The average daily amount to be spent by the campaign. This
	// field is used when the CampaignBudget `period` is set to `DAILY`, which is
	// the default. Amount is specified in micros in the account's local currency.
	// One million micros is equivalent to one currency unit. The effective monthly
	// spend is capped at 30.4 times this daily amount. This field is mutually
	// exclusive with 'total_amount_micros'. Only one of 'amount_micros' or
	// 'total_amount_micros' should be set.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// DeliveryMethod: The delivery method that determines the rate at which the
	// campaign budget is spent. Defaults to STANDARD if unspecified in a create
	// operation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STANDARD" - The budget server will throttle serving evenly across the
	// entire time period.
	//   "ACCELERATED" - The budget server will not throttle serving, and ads will
	// serve as fast as possible.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// ExplicitlyShared: Specifies whether the budget is explicitly shared.
	// Defaults to true if unspecified in a create operation. If true, the budget
	// was created with the purpose of sharing across one or more campaigns. If
	// false, the budget was created with the intention of only being used with a
	// single campaign. The budget's name and status will stay in sync with the
	// campaign's name and status. Attempting to share the budget with a second
	// campaign will result in an error. A non-shared budget can become an
	// explicitly shared. The same operation must also assign the budget a name. A
	// shared campaign budget can never become non-shared.
	ExplicitlyShared bool `json:"explicitlyShared,omitempty"`
	// HasRecommendedBudget: Output only. Indicates whether there is a recommended
	// budget for this campaign budget. This field is read-only.
	HasRecommendedBudget bool `json:"hasRecommendedBudget,omitempty"`
	// Id: Output only. The ID of the campaign budget. A campaign budget is created
	// using the CampaignBudgetService create operation and is assigned a budget
	// ID. A budget ID can be shared across different campaigns; the system will
	// then allocate the campaign budget among different campaigns to get optimum
	// results.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the campaign budget. When creating a campaign budget
	// through CampaignBudgetService, every explicitly shared campaign budget must
	// have a non-null, non-empty name. Campaign budgets that are not explicitly
	// shared derive their name from the attached campaign's name. The length of
	// this string must be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).
	Name string `json:"name,omitempty"`
	// Period: Immutable. Period over which to spend the budget. Defaults to DAILY
	// if not specified.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DAILY" - Daily budget.
	//   "CUSTOM_PERIOD" - Custom budget can be used with total_amount to specify
	// lifetime budget limit.
	Period string `json:"period,omitempty"`
	// RecommendedBudgetAmountMicros: Output only. The recommended budget amount.
	// If no recommendation is available, this will be set to the budget amount.
	// Amount is specified in micros, where one million is equivalent to one
	// currency unit. This field is read-only.
	RecommendedBudgetAmountMicros int64 `json:"recommendedBudgetAmountMicros,omitempty,string"`
	// RecommendedBudgetEstimatedChangeWeeklyClicks: Output only. The estimated
	// change in weekly clicks if the recommended budget is applied. This field is
	// read-only.
	RecommendedBudgetEstimatedChangeWeeklyClicks int64 `json:"recommendedBudgetEstimatedChangeWeeklyClicks,omitempty,string"`
	// RecommendedBudgetEstimatedChangeWeeklyCostMicros: Output only. The estimated
	// change in weekly cost in micros if the recommended budget is applied. One
	// million is equivalent to one currency unit. This field is read-only.
	RecommendedBudgetEstimatedChangeWeeklyCostMicros int64 `json:"recommendedBudgetEstimatedChangeWeeklyCostMicros,omitempty,string"`
	// RecommendedBudgetEstimatedChangeWeeklyInteractions: Output only. The
	// estimated change in weekly interactions if the recommended budget is
	// applied. This field is read-only.
	RecommendedBudgetEstimatedChangeWeeklyInteractions int64 `json:"recommendedBudgetEstimatedChangeWeeklyInteractions,omitempty,string"`
	// RecommendedBudgetEstimatedChangeWeeklyViews: Output only. The estimated
	// change in weekly views if the recommended budget is applied. This field is
	// read-only.
	RecommendedBudgetEstimatedChangeWeeklyViews int64 `json:"recommendedBudgetEstimatedChangeWeeklyViews,omitempty,string"`
	// ReferenceCount: Output only. The number of campaigns actively using the
	// budget. This field is read-only.
	ReferenceCount int64 `json:"referenceCount,omitempty,string"`
	// ResourceName: Immutable. The resource name of the campaign budget. Campaign
	// budget resource names have the form:
	// `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of this campaign budget. This field is
	// read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Budget is enabled.
	//   "REMOVED" - Budget is removed.
	Status string `json:"status,omitempty"`
	// TotalAmountMicros: The total amount to be spent by the campaign over its
	// entire duration. This field is used *only* when the CampaignBudget `period`
	// is set to `CUSTOM_PERIOD`. It represents the budget cap for the campaign's
	// lifetime, rather than a daily limit. The amount is specified in micros in
	// the account's local currency. One million micros is equivalent to one
	// currency unit. This field is mutually exclusive with 'amount_micros'. Only
	// one of 'total_amount_micros' or 'amount_micros' should be set.
	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
	// Type: Immutable. The type of the campaign budget.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STANDARD" - Budget type for standard Google Ads usage. Caps daily spend
	// at two times the specified budget amount. Full details:
	// https://support.google.com/google-ads/answer/6385083
	//   "FIXED_CPA" - Budget type with a fixed cost-per-acquisition (conversion).
	// Full details: https://support.google.com/google-ads/answer/7528254 This type
	// is only supported by campaigns with AdvertisingChannelType.DISPLAY
	// (excluding AdvertisingChannelSubType.DISPLAY_GMAIL),
	// BiddingStrategyType.TARGET_CPA and PaymentMode.CONVERSIONS.
	//   "SMART_CAMPAIGN" - Budget type for Smart Campaign. Full details:
	// https://support.google.com/google-ads/answer/7653509 This type is only
	// supported by campaigns with AdvertisingChannelType.SMART and
	// AdvertisingChannelSubType.SMART_CAMPAIGN.
	//   "LOCAL_SERVICES" - Budget type for Local Services Campaign. Full details:
	// https://support.google.com/localservices/answer/7434558 This type is only
	// supported by campaigns with AdvertisingChannelType.LOCAL_SERVICES.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlignedBiddingStrategyId")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlignedBiddingStrategyId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignBudget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignBudget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignConversionGoal: The biddability
// setting for the specified campaign only for all conversion actions with a
// matching category and origin.
type GoogleAdsSearchads360V23Resources__CampaignConversionGoal struct {
	// Biddable: The biddability of the campaign conversion goal.
	Biddable bool `json:"biddable,omitempty"`
	// Campaign: Immutable. The campaign with which this campaign conversion goal
	// is associated.
	Campaign string `json:"campaign,omitempty"`
	// Category: The conversion category of this campaign conversion goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	Category string `json:"category,omitempty"`
	// Origin: The conversion origin of this campaign conversion goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - The conversion origin has not been specified.
	//   "UNKNOWN" - The conversion origin is not known in this version.
	//   "WEBSITE" - Conversion that occurs when a user visits a website or takes
	// an action there after viewing an ad.
	//   "GOOGLE_HOSTED" - Conversions reported by an offline pipeline which
	// collects local actions from Google-hosted pages (for example, Google Maps,
	// Google Place Page, etc) and attributes them to relevant ad events.
	//   "APP" - Conversion that occurs when a user performs an action through any
	// app platforms.
	//   "CALL_FROM_ADS" - Conversion that occurs when a user makes a call from
	// ads.
	//   "STORE" - Conversion that occurs when a user visits or makes a purchase at
	// a physical store.
	//   "YOUTUBE_HOSTED" - Conversion that occurs on YouTube.
	//   "FLOODLIGHT" - Conversions that occur through Floodlight tag.
	Origin string `json:"origin,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign conversion goal.
	// Campaign conversion goal resource names have the form:
	// `customers/{customer_id}/campaignConversionGoals/{campaign_id}~{category}~{or
	// igin}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchAds360Biddable: Search Ads 360 biddability of the campaign conversion
	// goal.
	SearchAds360Biddable bool `json:"searchAds360Biddable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Biddable") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Biddable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignConversionGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignConversionGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignCriterion: A campaign criterion.
type GoogleAdsSearchads360V23Resources__CampaignCriterion struct {
	// AdSchedule: Immutable. Ad Schedule.
	AdSchedule *GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adSchedule,omitempty"`
	// AgeRange: Immutable. Age range.
	AgeRange *GoogleAdsSearchads360V23Common__AgeRangeInfo `json:"ageRange,omitempty"`
	// BidModifier: The modifier for the bids when the criterion matches. The
	// modifier must be in the range: 0.1 - 10.0. Most targetable criteria types
	// support modifiers. Use 0 to opt out of a Device type.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// BrandList: Immutable. Brand list campaign criterion.
	BrandList *GoogleAdsSearchads360V23Common__BrandListInfo `json:"brandList,omitempty"`
	// Campaign: Immutable. The campaign to which the criterion belongs.
	Campaign string `json:"campaign,omitempty"`
	// Carrier: Immutable. Carrier.
	Carrier *GoogleAdsSearchads360V23Common__CarrierInfo `json:"carrier,omitempty"`
	// CombinedAudience: Immutable. Combined Audience.
	CombinedAudience *GoogleAdsSearchads360V23Common__CombinedAudienceInfo `json:"combinedAudience,omitempty"`
	// ContentLabel: Immutable. ContentLabel.
	ContentLabel *GoogleAdsSearchads360V23Common__ContentLabelInfo `json:"contentLabel,omitempty"`
	// CriterionId: Output only. The ID of the criterion. This field is ignored
	// during mutate.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Device: Immutable. Device.
	Device *GoogleAdsSearchads360V23Common__DeviceInfo `json:"device,omitempty"`
	// DisplayName: Output only. The display name of the criterion. This field is
	// ignored for mutates.
	DisplayName string `json:"displayName,omitempty"`
	// ExtendedDemographic: Immutable. Extended demographic criterion.
	ExtendedDemographic *GoogleAdsSearchads360V23Common__ExtendedDemographicInfo `json:"extendedDemographic,omitempty"`
	// Gender: Immutable. Gender.
	Gender *GoogleAdsSearchads360V23Common__GenderInfo `json:"gender,omitempty"`
	// IncomeRange: Immutable. Income range.
	IncomeRange *GoogleAdsSearchads360V23Common__IncomeRangeInfo `json:"incomeRange,omitempty"`
	// IpBlock: Immutable. IpBlock. You can exclude up to 500 IP addresses per
	// campaign.
	IpBlock *GoogleAdsSearchads360V23Common__IpBlockInfo `json:"ipBlock,omitempty"`
	// Keyword: Immutable. Keyword.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// KeywordTheme: Immutable. Smart Campaign Keyword Theme.
	KeywordTheme *GoogleAdsSearchads360V23Common__KeywordThemeInfo `json:"keywordTheme,omitempty"`
	// Language: Immutable. Language.
	Language *GoogleAdsSearchads360V23Common__LanguageInfo `json:"language,omitempty"`
	// LastModifiedTime: Output only. The datetime when this campaign criterion was
	// last modified. The datetime is in the customer's time zone and in
	// "yyyy-MM-dd HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// LifeEvent: Immutable. Life event campaign criterion.
	LifeEvent *GoogleAdsSearchads360V23Common__LifeEventInfo `json:"lifeEvent,omitempty"`
	// ListingScope: Immutable. Listing scope.
	ListingScope *GoogleAdsSearchads360V23Common__ListingScopeInfo `json:"listingScope,omitempty"`
	// LocalServiceId: Immutable. GLS service campaign criterion.
	LocalServiceId *GoogleAdsSearchads360V23Common__LocalServiceIdInfo `json:"localServiceId,omitempty"`
	// Location: Immutable. Location.
	Location *GoogleAdsSearchads360V23Common__LocationInfo `json:"location,omitempty"`
	// LocationGroup: Immutable. Location Group
	LocationGroup *GoogleAdsSearchads360V23Common__LocationGroupInfo `json:"locationGroup,omitempty"`
	// MobileAppCategory: Immutable. Mobile app category.
	MobileAppCategory *GoogleAdsSearchads360V23Common__MobileAppCategoryInfo `json:"mobileAppCategory,omitempty"`
	// MobileApplication: Immutable. Mobile application.
	MobileApplication *GoogleAdsSearchads360V23Common__MobileApplicationInfo `json:"mobileApplication,omitempty"`
	// MobileDevice: Immutable. Mobile Device.
	MobileDevice *GoogleAdsSearchads360V23Common__MobileDeviceInfo `json:"mobileDevice,omitempty"`
	// Negative: Immutable. Whether to target (`false`) or exclude (`true`) the
	// criterion.
	Negative bool `json:"negative,omitempty"`
	// OperatingSystemVersion: Immutable. Operating system version.
	OperatingSystemVersion *GoogleAdsSearchads360V23Common__OperatingSystemVersionInfo `json:"operatingSystemVersion,omitempty"`
	// ParentalStatus: Immutable. Parental status.
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusInfo `json:"parentalStatus,omitempty"`
	// Placement: Immutable. Placement.
	Placement *GoogleAdsSearchads360V23Common__PlacementInfo `json:"placement,omitempty"`
	// Proximity: Immutable. Proximity.
	Proximity *GoogleAdsSearchads360V23Common__ProximityInfo `json:"proximity,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign criterion.
	// Campaign criterion resource names have the form:
	// `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The campaign criterion is enabled.
	//   "PAUSED" - The campaign criterion is paused.
	//   "REMOVED" - The campaign criterion is removed.
	Status string `json:"status,omitempty"`
	// Topic: Immutable. Topic.
	Topic *GoogleAdsSearchads360V23Common__TopicInfo `json:"topic,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "NEGATIVE_KEYWORD_LIST" - Negative Keyword List
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "SEARCH_THEME" - Search Theme.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	//   "WEBPAGE_LIST" - Webpage List
	//   "VIDEO_LINEUP" - Video lineup
	//   "PLACEMENT_LIST" - Placement List
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST" - A list of rules for item groups in
	// Vertical Ads.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE" - A rule for an item group in Vertical Ads.
	Type string `json:"type,omitempty"`
	// UserInterest: Immutable. User Interest.
	UserInterest *GoogleAdsSearchads360V23Common__UserInterestInfo `json:"userInterest,omitempty"`
	// UserList: Immutable. User List.
	UserList *GoogleAdsSearchads360V23Common__UserListInfo `json:"userList,omitempty"`
	// VideoLineup: Immutable. Video lineup criterion.
	VideoLineup *GoogleAdsSearchads360V23Common__VideoLineupInfo `json:"videoLineup,omitempty"`
	// Webpage: Immutable. Webpage.
	Webpage *GoogleAdsSearchads360V23Common__WebpageInfo `json:"webpage,omitempty"`
	// WebpageList: Immutable. Webpage list. This criterion is not publicly
	// available.
	WebpageList *GoogleAdsSearchads360V23Common__WebpageListInfo `json:"webpageList,omitempty"`
	// YoutubeChannel: Immutable. YouTube Channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeVideo: Immutable. YouTube Video.
	YoutubeVideo *GoogleAdsSearchads360V23Common__YouTubeVideoInfo `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdSchedule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdSchedule") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__CampaignCriterion) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignCriterion
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V23Resources__CampaignCustomizer: A customizer value
// for the associated CustomizerAttribute at the Campaign level.
type GoogleAdsSearchads360V23Resources__CampaignCustomizer struct {
	// Campaign: Immutable. The campaign to which the customizer attribute is
	// linked.
	Campaign string `json:"campaign,omitempty"`
	// CustomizerAttribute: Required. Immutable. The customizer attribute which is
	// linked to the campaign.
	CustomizerAttribute string `json:"customizerAttribute,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign customizer.
	// Campaign customizer resource names have the form:
	// `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attrib
	// ute_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the campaign customizer.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The customizer value is enabled.
	//   "REMOVED" - The customizer value is removed.
	Status string `json:"status,omitempty"`
	// Value: Required. The value to associate with the customizer attribute at
	// this level. The value must be of the type specified for the
	// CustomizerAttribute.
	Value *GoogleAdsSearchads360V23Common__CustomizerValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignCustomizer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignCustomizer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignDraft: A campaign draft.
type GoogleAdsSearchads360V23Resources__CampaignDraft struct {
	// BaseCampaign: Immutable. The base campaign to which the draft belongs.
	BaseCampaign string `json:"baseCampaign,omitempty"`
	// DraftCampaign: Output only. Resource name of the Campaign that results from
	// overlaying the draft changes onto the base campaign. This field is
	// read-only.
	DraftCampaign string `json:"draftCampaign,omitempty"`
	// DraftId: Output only. The ID of the draft. This field is read-only.
	DraftId int64 `json:"draftId,omitempty,string"`
	// HasExperimentRunning: Output only. Whether there is an experiment based on
	// this draft currently serving.
	HasExperimentRunning bool `json:"hasExperimentRunning,omitempty"`
	// LongRunningOperation: Output only. The resource name of the long-running
	// operation that can be used to poll for completion of draft promotion. This
	// is only set if the draft promotion is in progress or finished.
	LongRunningOperation string `json:"longRunningOperation,omitempty"`
	// Name: The name of the campaign draft. This field is required and should not
	// be empty when creating new campaign drafts. It must not contain any null
	// (code point 0x0), NL line feed (code point 0xA) or carriage return (code
	// point 0xD) characters.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign draft. Campaign
	// draft resource names have the form:
	// `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the campaign draft. This field is
	// read-only. When a new campaign draft is added, the status defaults to
	// PROPOSED.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PROPOSED" - Initial state of the draft, the advertiser can start adding
	// changes with no effect on serving.
	//   "REMOVED" - The campaign draft is removed.
	//   "PROMOTING" - Advertiser requested to promote draft's changes back into
	// the original campaign. Advertiser can poll the long running operation
	// returned by the promote action to see the status of the promotion.
	//   "PROMOTED" - The process to merge changes in the draft back to the
	// original campaign has completed successfully.
	//   "PROMOTE_FAILED" - The promotion failed after it was partially applied.
	// Promote cannot be attempted again safely, so the issue must be corrected in
	// the original campaign.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaseCampaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaseCampaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignDraft) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignDraft
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel: Represents a
// relationship between a campaign and an effective label. An effective label
// is a label inherited or directly assigned to this campaign.
type GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel struct {
	// Campaign: Immutable. The campaign to which the effective label is attached.
	Campaign string `json:"campaign,omitempty"`
	// Label: Immutable. The effective label assigned to the campaign.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the
	// effective label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. CampaignEffectivelabel
	// resource names have the form:
	// `customers/{owner_customer_id}/campaignEffectiveLabels/{campaign_id}~{label_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignGoalConfig: A link between a
// campaign and a goal enabling campaign-specific optimization.
type GoogleAdsSearchads360V23Resources__CampaignGoalConfig struct {
	// Campaign: Immutable. The resource name of the campaign for this link.
	Campaign string `json:"campaign,omitempty"`
	// CampaignRetentionSettings: Retention goal campaign settings.
	CampaignRetentionSettings *GoogleAdsSearchads360V23CommonCampaignGoalSettingsCampaignRetentionGoalSettings `json:"campaignRetentionSettings,omitempty"`
	// Goal: Immutable. The resource name of the goal this link is attached to.
	Goal string `json:"goal,omitempty"`
	// GoalType: Output only. The goal type this link is attached to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CUSTOMER_RETENTION" - Retention goal, which allows advertisers to
	// optimize campaigns to win back lapsed customers.
	// (https://support.google.com/google-ads/answer/14792043?hl=en)
	GoalType string `json:"goalType,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign goal config.
	// campaign goal config resource names have the form:
	// `customers/{customer_id}/campaignGoalConfigs/{campaign_id}~{goal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignGoalConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignGoalConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignGroup: A campaign group.
type GoogleAdsSearchads360V23Resources__CampaignGroup struct {
	// Id: Output only. The ID of the campaign group.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the campaign group. This field is required and should not
	// be empty when creating new campaign groups. It must not contain any null
	// (code point 0x0), NL line feed (code point 0xA) or carriage return (code
	// point 0xD) characters.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign group. Campaign
	// group resource names have the form:
	// `customers/{customer_id}/campaignGroups/{campaign_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the campaign group. When a new campaign group is
	// added, the status defaults to ENABLED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The campaign group is active.
	//   "REMOVED" - The campaign group has been removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignLabel: Represents a relationship
// between a campaign and a label.
type GoogleAdsSearchads360V23Resources__CampaignLabel struct {
	// Campaign: Immutable. The campaign to which the label is attached.
	Campaign string `json:"campaign,omitempty"`
	// Label: Immutable. The label assigned to the campaign.
	Label string `json:"label,omitempty"`
	// OwnerCustomerId: Output only. The ID of the Customer which owns the label.
	OwnerCustomerId int64 `json:"ownerCustomerId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. Campaign label resource names
	// have the form:
	// `customers/{owner_customer_id}/campaignLabels/{campaign_id}~{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal: Campaign level
// customer lifecycle goal settings.
type GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal struct {
	// Campaign: Output only. The campaign where the goal is attached.
	Campaign string `json:"campaign,omitempty"`
	// CustomerAcquisitionGoalSettings: Output only. The customer acquisition goal
	// settings for the campaign. The customer acquisition goal is described in
	// this article: https://support.google.com/google-ads/answer/12080169
	CustomerAcquisitionGoalSettings *GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings `json:"customerAcquisitionGoalSettings,omitempty"`
	// ResourceName: Immutable. The resource name of the customer lifecycle goal of
	// a campaign. `customers/{customer_id}/campaignLifecycleGoal/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight: This report
// provides a high-level view of search demand at the campaign level by
// grouping similar search terms into categories and showing their search
// volume. Historical data is available starting March 2023.
type GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight struct {
	// CampaignId: Output only. The ID of the campaign.
	CampaignId int64 `json:"campaignId,omitempty,string"`
	// CategoryLabel: Output only. The label for the search category. An empty
	// string denotes the catch-all category for search terms that didn't fit into
	// another category.
	CategoryLabel string `json:"categoryLabel,omitempty"`
	// Id: Output only. The ID of the insight.
	Id int64 `json:"id,omitempty,string"`
	// ResourceName: Output only. The resource name of the campaign level search
	// term insight. Campaign level search term insight resource names have the
	// form:
	// `customers/{customer_id}/campaignSearchTermInsights/{campaign_id}~{category_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignSearchTermView: This report
// provides granular performance data, including cost metrics, for each
// individual search term that triggered your ads. If keyword-related segments
// are used, Performance Max data will be excluded from the results.
type GoogleAdsSearchads360V23Resources__CampaignSearchTermView struct {
	// Campaign: Output only. The campaign the search term served in.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Output only. The resource name of the campaign search term
	// view. Campaign search term view resource names have the form:
	// `customers/{customer_id}/campaignSearchTermViews/{campaign_id}~{URL-base64_se
	// arch_term}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. The search term.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignSearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignSearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignSharedSet: CampaignSharedSets are
// used for managing the shared sets associated with a campaign.
type GoogleAdsSearchads360V23Resources__CampaignSharedSet struct {
	// Campaign: Immutable. The campaign to which the campaign shared set belongs.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Immutable. The resource name of the campaign shared set.
	// Campaign shared set resource names have the form:
	// `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SharedSet: Immutable. The shared set associated with the campaign. This may
	// be a negative keyword shared set of another customer. This customer should
	// be a manager of the other customer, otherwise the campaign shared set will
	// exist but have no serving effect. Only negative keyword shared sets can be
	// associated with Shopping campaigns. Only negative placement shared sets can
	// be associated with Display mobile app campaigns.
	SharedSet string `json:"sharedSet,omitempty"`
	// Status: Output only. The status of this campaign shared set. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The campaign shared set is enabled.
	//   "REMOVED" - The campaign shared set is removed and can no longer be used.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignSharedSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignSharedSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CampaignSimulation: A campaign
// simulation. Supported combinations of advertising channel type, simulation
// type and simulation modification method is detailed below respectively. *
// SEARCH - CPC_BID - UNIFORM * SEARCH - CPC_BID - SCALING * SEARCH -
// TARGET_CPA - UNIFORM * SEARCH - TARGET_CPA - SCALING * SEARCH - TARGET_ROAS
// - UNIFORM * SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM * SEARCH - BUDGET -
// UNIFORM * SHOPPING - BUDGET - UNIFORM * SHOPPING - TARGET_ROAS - UNIFORM *
// MULTI_CHANNEL - TARGET_CPA - UNIFORM * MULTI_CHANNEL - TARGET_ROAS - UNIFORM
// * DEMAND_GEN - TARGET_CPA - DEFAULT * DISPLAY - TARGET_CPA - UNIFORM *
// PERFORMANCE_MAX - TARGET_CPA - UNIFORM * PERFORMANCE_MAX - TARGET_ROAS -
// UNIFORM * PERFORMANCE_MAX - BUDGET - UNIFORM
type GoogleAdsSearchads360V23Resources__CampaignSimulation struct {
	// BudgetPointList: Output only. Simulation points if the simulation type is
	// BUDGET.
	BudgetPointList *GoogleAdsSearchads360V23Common__BudgetSimulationPointList `json:"budgetPointList,omitempty"`
	// CampaignId: Output only. Campaign id of the simulation.
	CampaignId int64 `json:"campaignId,omitempty,string"`
	// CpcBidPointList: Output only. Simulation points if the simulation type is
	// CPC_BID.
	CpcBidPointList *GoogleAdsSearchads360V23Common__CpcBidSimulationPointList `json:"cpcBidPointList,omitempty"`
	// EndDate: Output only. Last day on which the simulation is based, in
	// YYYY-MM-DD format
	EndDate string `json:"endDate,omitempty"`
	// ModificationMethod: Output only. How the simulation modifies the field.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UNIFORM" - The values in a simulation were applied to all children of a
	// given resource uniformly. Overrides on child resources were not respected.
	//   "DEFAULT" - The values in a simulation were applied to the given resource.
	// Overrides on child resources were respected, and traffic estimates do not
	// include these resources.
	//   "SCALING" - The values in a simulation were all scaled by the same factor.
	// For example, in a simulated TargetCpa campaign, the campaign target and all
	// ad group targets were scaled by a factor of X.
	ModificationMethod string `json:"modificationMethod,omitempty"`
	// ResourceName: Output only. The resource name of the campaign simulation.
	// Campaign simulation resource names have the form:
	// `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modificati
	// on_method}~{start_date}~{end_date}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Output only. First day on which the simulation is based, in
	// YYYY-MM-DD format.
	StartDate string `json:"startDate,omitempty"`
	// TargetCpaPointList: Output only. Simulation points if the simulation type is
	// TARGET_CPA.
	TargetCpaPointList *GoogleAdsSearchads360V23Common__TargetCpaSimulationPointList `json:"targetCpaPointList,omitempty"`
	// TargetImpressionSharePointList: Output only. Simulation points if the
	// simulation type is TARGET_IMPRESSION_SHARE.
	TargetImpressionSharePointList *GoogleAdsSearchads360V23Common__TargetImpressionShareSimulationPointList `json:"targetImpressionSharePointList,omitempty"`
	// TargetRoasPointList: Output only. Simulation points if the simulation type
	// is TARGET_ROAS.
	TargetRoasPointList *GoogleAdsSearchads360V23Common__TargetRoasSimulationPointList `json:"targetRoasPointList,omitempty"`
	// Type: Output only. The field that the simulation modifies.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CPC_BID" - The simulation is for a CPC bid.
	//   "CPV_BID" - The simulation is for a CPV bid.
	//   "TARGET_CPA" - The simulation is for a CPA target.
	//   "BID_MODIFIER" - The simulation is for a bid modifier.
	//   "TARGET_ROAS" - The simulation is for a ROAS target.
	//   "PERCENT_CPC_BID" - The simulation is for a percent CPC bid.
	//   "TARGET_IMPRESSION_SHARE" - The simulation is for an impression share
	// target.
	//   "BUDGET" - The simulation is for a budget.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BudgetPointList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetPointList") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CampaignSimulation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CampaignSimulation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CarrierConstant: A carrier criterion that
// can be used in campaign targeting.
type GoogleAdsSearchads360V23Resources__CarrierConstant struct {
	// CountryCode: Output only. The country code of the country where the carrier
	// is located, for example, "AR", "FR", etc.
	CountryCode string `json:"countryCode,omitempty"`
	// Id: Output only. The ID of the carrier criterion.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. The full name of the carrier in English.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the carrier criterion.
	// Carrier criterion resource names have the form:
	// `carrierConstants/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CarrierConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CarrierConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CartDataSalesView: Cart data sales view.
// Provides information about the products which were purchased if conversions
// with cart data is implemented. Performance metrics like revenue, gross
// profit, lead/cross-sell metrics etc. and Merchant Center attributes such as
// brand, category etc. are available for products defined in an inventory feed
// and sold as a result of Google ads. For purchases attributed to clicks on
// Shopping ads, dimensions of both clicked and sold products can be viewed
// together.
type GoogleAdsSearchads360V23Resources__CartDataSalesView struct {
	// ResourceName: Output only. The resource name of the Cart data sales view.
	// Cart data sales view resource names have the form:
	// `customers/{customer_id}/cartDataSalesView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CartDataSalesView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CartDataSalesView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ChangeEvent: Describes the granular
// change of returned resources of certain resource types. Changes made through
// the UI or API in the past 30 days are included. Previous and new values of
// the changed fields are shown. ChangeEvent could have up to 3 minutes delay
// to reflect a new change.
type GoogleAdsSearchads360V23Resources__ChangeEvent struct {
	// AdGroup: Output only. The AdGroup affected by this change.
	AdGroup string `json:"adGroup,omitempty"`
	// Asset: Output only. The Asset affected by this change.
	Asset string `json:"asset,omitempty"`
	// Campaign: Output only. The Campaign affected by this change.
	Campaign string `json:"campaign,omitempty"`
	// ChangeDateTime: Output only. Time at which the change was committed on this
	// resource.
	ChangeDateTime string `json:"changeDateTime,omitempty"`
	// ChangeResourceName: Output only. The Simply resource this change occurred
	// on.
	ChangeResourceName string `json:"changeResourceName,omitempty"`
	// ChangeResourceType: Output only. The type of the changed resource. This
	// dictates what resource will be set in old_resource and new_resource.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// resource unknown in this version.
	//   "AD" - An Ad resource change.
	//   "AD_GROUP" - An AdGroup resource change.
	//   "AD_GROUP_CRITERION" - An AdGroupCriterion resource change.
	//   "CAMPAIGN" - A Campaign resource change.
	//   "CAMPAIGN_BUDGET" - A CampaignBudget resource change.
	//   "AD_GROUP_BID_MODIFIER" - An AdGroupBidModifier resource change.
	//   "CAMPAIGN_CRITERION" - A CampaignCriterion resource change.
	//   "FEED" - A Feed resource change.
	//   "FEED_ITEM" - A FeedItem resource change.
	//   "CAMPAIGN_FEED" - A CampaignFeed resource change.
	//   "AD_GROUP_FEED" - An AdGroupFeed resource change.
	//   "AD_GROUP_AD" - An AdGroupAd resource change.
	//   "ASSET" - An Asset resource change.
	//   "CUSTOMER_ASSET" - A CustomerAsset resource change.
	//   "CAMPAIGN_ASSET" - A CampaignAsset resource change.
	//   "AD_GROUP_ASSET" - An AdGroupAsset resource change.
	//   "ASSET_SET" - An AssetSet resource change.
	//   "ASSET_SET_ASSET" - An AssetSetAsset resource change.
	//   "CAMPAIGN_ASSET_SET" - A CampaignAssetSet resource change.
	ChangeResourceType string `json:"changeResourceType,omitempty"`
	// ChangedFields: Output only. A list of fields that are changed in the
	// returned resource.
	ChangedFields string `json:"changedFields,omitempty"`
	// ClientType: Output only. Where the change was made through.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified client
	// type unknown in this version.
	//   "GOOGLE_ADS_WEB_CLIENT" - Changes made through the "ads.google.com". For
	// example, changes made through campaign management.
	//   "GOOGLE_ADS_AUTOMATED_RULE" - Changes made through Google Ads automated
	// rules.
	//   "GOOGLE_ADS_SCRIPTS" - Changes made through Google Ads scripts.
	//   "GOOGLE_ADS_BULK_UPLOAD" - Changes made by Google Ads bulk upload.
	//   "GOOGLE_ADS_API" - Changes made by Google Ads API.
	//   "GOOGLE_ADS_EDITOR" - Changes made by Google Ads Editor. This value is a
	// placeholder. The API does not return these changes.
	//   "GOOGLE_ADS_MOBILE_APP" - Changes made by Google Ads mobile app.
	//   "GOOGLE_ADS_RECOMMENDATIONS" - Changes made through Google Ads
	// recommendations.
	//   "SEARCH_ADS_360_SYNC" - Changes made through Search Ads 360 Sync.
	//   "SEARCH_ADS_360_POST" - Changes made through Search Ads 360 Post.
	//   "INTERNAL_TOOL" - Changes made through internal tools. For example, when a
	// user sets a URL template on an entity like a Campaign, it's automatically
	// wrapped with the SA360 Clickserver URL.
	//   "OTHER" - Types of changes that are not categorized, for example, changes
	// made by coupon redemption through Google Ads.
	//   "GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION" - Changes made by subscribing to
	// Google Ads recommendations.
	ClientType string `json:"clientType,omitempty"`
	// NewResource: Output only. The new resource after the change. Only changed
	// fields will be populated.
	NewResource *GoogleAdsSearchads360V23ResourcesChangeEventChangedResource `json:"newResource,omitempty"`
	// OldResource: Output only. The old resource before the change. Only changed
	// fields will be populated.
	OldResource *GoogleAdsSearchads360V23ResourcesChangeEventChangedResource `json:"oldResource,omitempty"`
	// ResourceChangeOperation: Output only. The operation on the changed resource.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// operation unknown in this version.
	//   "CREATE" - The resource was created.
	//   "UPDATE" - The resource was modified.
	//   "REMOVE" - The resource was removed.
	ResourceChangeOperation string `json:"resourceChangeOperation,omitempty"`
	// ResourceName: Output only. The resource name of the change event. Change
	// event resource names have the form:
	// `customers/{customer_id}/changeEvents/{timestamp_micros}~{command_index}~{mut
	// ate_index}`
	ResourceName string `json:"resourceName,omitempty"`
	// UserEmail: Output only. The email of the user who made this change.
	UserEmail string `json:"userEmail,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ChangeEvent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ChangeEvent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ChangeStatus: Describes the status of
// returned resource. ChangeStatus could have up to 3 minutes delay to reflect
// a new change.
type GoogleAdsSearchads360V23Resources__ChangeStatus struct {
	// AdGroup: Output only. The AdGroup affected by this change.
	AdGroup string `json:"adGroup,omitempty"`
	// AdGroupAd: Output only. The AdGroupAd affected by this change.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// AdGroupAsset: Output only. The AdGroupAsset affected by this change.
	AdGroupAsset string `json:"adGroupAsset,omitempty"`
	// AdGroupBidModifier: Output only. The AdGroupBidModifier affected by this
	// change.
	AdGroupBidModifier string `json:"adGroupBidModifier,omitempty"`
	// AdGroupCriterion: Output only. The AdGroupCriterion affected by this change.
	AdGroupCriterion string `json:"adGroupCriterion,omitempty"`
	// Asset: Output only. The Asset affected by this change.
	Asset string `json:"asset,omitempty"`
	// AssetGroup: Output only. The AssetGroup affected by this change.
	AssetGroup string `json:"assetGroup,omitempty"`
	// AssetSet: Output only. The AssetSet affected by this change.
	AssetSet string `json:"assetSet,omitempty"`
	// Campaign: Output only. The Campaign affected by this change.
	Campaign string `json:"campaign,omitempty"`
	// CampaignAsset: Output only. The CampaignAsset affected by this change.
	CampaignAsset string `json:"campaignAsset,omitempty"`
	// CampaignAssetSet: Output only. The CampaignAssetSet affected by this change.
	CampaignAssetSet string `json:"campaignAssetSet,omitempty"`
	// CampaignBudget: Output only. The CampaignBudget affected by this change.
	CampaignBudget string `json:"campaignBudget,omitempty"`
	// CampaignCriterion: Output only. The CampaignCriterion affected by this
	// change.
	CampaignCriterion string `json:"campaignCriterion,omitempty"`
	// CampaignSharedSet: Output only. The CampaignSharedSet affected by this
	// change.
	CampaignSharedSet string `json:"campaignSharedSet,omitempty"`
	// CombinedAudience: Output only. The CombinedAudience affected by this change.
	CombinedAudience string `json:"combinedAudience,omitempty"`
	// CustomerAsset: Output only. The CustomerAsset affected by this change.
	CustomerAsset string `json:"customerAsset,omitempty"`
	// LastChangeDateTime: Output only. Time at which the most recent change has
	// occurred on this resource.
	LastChangeDateTime string `json:"lastChangeDateTime,omitempty"`
	// ResourceName: Output only. The resource name of the change status. Change
	// status resource names have the form:
	// `customers/{customer_id}/changeStatus/{change_status_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ResourceStatus: Output only. Represents the status of the changed resource.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// resource unknown in this version.
	//   "ADDED" - The resource was created.
	//   "CHANGED" - The resource was modified.
	//   "REMOVED" - The resource was removed.
	ResourceStatus string `json:"resourceStatus,omitempty"`
	// ResourceType: Output only. Represents the type of the changed resource. This
	// dictates what fields will be set. For example, for AD_GROUP, campaign and
	// ad_group fields will be set.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - Used for return value only. Represents an unclassified
	// resource unknown in this version.
	//   "AD_GROUP" - An AdGroup resource change.
	//   "AD_GROUP_AD" - An AdGroupAd resource change.
	//   "AD_GROUP_CRITERION" - An AdGroupCriterion resource change.
	//   "CAMPAIGN" - A Campaign resource change.
	//   "CAMPAIGN_CRITERION" - A CampaignCriterion resource change.
	//   "CAMPAIGN_BUDGET" - A CampaignBudget resource change.
	//   "FEED" - A Feed resource change.
	//   "FEED_ITEM" - A FeedItem resource change.
	//   "AD_GROUP_FEED" - An AdGroupFeed resource change.
	//   "CAMPAIGN_FEED" - A CampaignFeed resource change.
	//   "AD_GROUP_BID_MODIFIER" - An AdGroupBidModifier resource change.
	//   "SHARED_SET" - A SharedSet resource change.
	//   "CAMPAIGN_SHARED_SET" - A CampaignSharedSet resource change.
	//   "ASSET" - An Asset resource change.
	//   "CUSTOMER_ASSET" - A CustomerAsset resource change.
	//   "CAMPAIGN_ASSET" - A CampaignAsset resource change.
	//   "AD_GROUP_ASSET" - An AdGroupAsset resource change.
	//   "COMBINED_AUDIENCE" - A CombinedAudience resource change.
	//   "ASSET_GROUP" - An AssetGroup resource change.
	//   "ASSET_SET" - An AssetSet resource change.
	//   "CAMPAIGN_ASSET_SET" - A CampaignAssetSet resource change.
	ResourceType string `json:"resourceType,omitempty"`
	// SharedSet: Output only. The SharedSet affected by this change.
	SharedSet string `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ChangeStatus) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ChangeStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ClickView: A click view with metrics
// aggregated at each click level, including both valid and invalid clicks. For
// non-Search campaigns, metrics.clicks represents the number of valid and
// invalid interactions. Queries including ClickView must have a filter
// limiting the results to one day and can be requested for dates back to 90
// days before the time of the request. GCLIDs are not available in this report
// for App Campaigns for Installs (ACi) and App Campaigns for Pre-registration
// (ACpre).
type GoogleAdsSearchads360V23Resources__ClickView struct {
	// AdGroupAd: Output only. The associated ad.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// AreaOfInterest: Output only. The location criteria matching the area of
	// interest associated with the impression.
	AreaOfInterest *GoogleAdsSearchads360V23Common__ClickLocation `json:"areaOfInterest,omitempty"`
	// CampaignLocationTarget: Output only. The associated campaign location
	// target, if one exists.
	CampaignLocationTarget string `json:"campaignLocationTarget,omitempty"`
	// Gclid: Output only. The Google Click ID.
	Gclid string `json:"gclid,omitempty"`
	// Keyword: Output only. The associated keyword, if one exists and the click
	// corresponds to the SEARCH channel.
	Keyword string `json:"keyword,omitempty"`
	// KeywordInfo: Output only. Basic information about the associated keyword, if
	// it exists.
	KeywordInfo *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keywordInfo,omitempty"`
	// LocationOfPresence: Output only. The location criteria matching the location
	// of presence associated with the impression.
	LocationOfPresence *GoogleAdsSearchads360V23Common__ClickLocation `json:"locationOfPresence,omitempty"`
	// PageNumber: Output only. Page number in search results where the ad was
	// shown.
	PageNumber int64 `json:"pageNumber,omitempty,string"`
	// ResourceName: Output only. The resource name of the click view. Click view
	// resource names have the form: `customers/{customer_id}/clickViews/{date
	// (yyyy-MM-dd)}~{gclid}`
	ResourceName string `json:"resourceName,omitempty"`
	// UserList: Output only. The associated user list, if one exists.
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ClickView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ClickView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CombinedAudience: Describe a resource for
// combined audiences which includes different audiences.
type GoogleAdsSearchads360V23Resources__CombinedAudience struct {
	// Description: Output only. Description of this combined audience.
	Description string `json:"description,omitempty"`
	// Id: Output only. ID of the combined audience.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. Name of the combined audience. It should be unique across
	// all combined audiences.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the combined audience.
	// Combined audience names have the form:
	// `customers/{customer_id}/combinedAudience/{combined_audience_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of this combined audience. Indicates whether the
	// combined audience is enabled or removed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Enabled status - combined audience is enabled and can be
	// targeted.
	//   "REMOVED" - Removed status - combined audience is removed and cannot be
	// used for targeting.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CombinedAudience) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CombinedAudience
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ContactDetails: Fields containing
// consumer contact details.
type GoogleAdsSearchads360V23Resources__ContactDetails struct {
	// ConsumerName: Output only. Consumer name if consumer provided name from
	// Message or Booking form on google.com
	ConsumerName string `json:"consumerName,omitempty"`
	// Email: Output only. Consumer email address.
	Email string `json:"email,omitempty"`
	// PhoneNumber: Output only. Phone number of the consumer for the lead. This
	// can be a real phone number or a tracking number. The phone number is
	// returned in E164 format. See
	// https://support.google.com/google-ads/answer/16355235?hl=en to learn more.
	// Example: +16504519489.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsumerName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsumerName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ContactDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ContactDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ContentCriterionView: A content criterion
// view.
type GoogleAdsSearchads360V23Resources__ContentCriterionView struct {
	// ResourceName: Output only. The resource name of the content criterion view.
	// Content criterion view resource names have the form:
	// `customers/{customer_id}/contentCriterionViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ContentCriterionView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ContentCriterionView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Conversion: A conversion.
type GoogleAdsSearchads360V23Resources__Conversion struct {
	// AdId: Output only. Ad ID. A value of 0 indicates that the ad is
	// unattributed.
	AdId int64 `json:"adId,omitempty,string"`
	// AdvertiserConversionId: Output only. For offline conversions, this is an ID
	// provided by advertisers. If an advertiser doesn't specify such an ID, Search
	// Ads 360 generates one. For online conversions, this is equal to the id
	// column or the floodlight_order_id column depending on the advertiser's
	// Floodlight instructions.
	AdvertiserConversionId string `json:"advertiserConversionId,omitempty"`
	// AssetFieldType: Output only. Asset field type of the conversion event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// AssetId: Output only. ID of the asset which was interacted with during the
	// conversion event.
	AssetId int64 `json:"assetId,omitempty,string"`
	// AttributionType: Output only. What the conversion is attributed to: Visit or
	// Keyword+Ad.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VISIT" - The conversion is attributed to a visit.
	//   "CRITERION_AD" - The conversion is attributed to a criterion and ad pair.
	AttributionType string `json:"attributionType,omitempty"`
	// ClickId: Output only. A unique string, for the visit that the conversion is
	// attributed to, that is passed to the landing page as the click id URL
	// parameter.
	ClickId string `json:"clickId,omitempty"`
	// ConversionDateTime: Output only. The timestamp of the conversion event.
	ConversionDateTime string `json:"conversionDateTime,omitempty"`
	// ConversionLastModifiedDateTime: Output only. The timestamp of the last time
	// the conversion was modified.
	ConversionLastModifiedDateTime string `json:"conversionLastModifiedDateTime,omitempty"`
	// ConversionQuantity: Output only. The quantity of items recorded by the
	// conversion, as determined by the qty url parameter. The advertiser is
	// responsible for dynamically populating the parameter (such as number of
	// items sold in the conversion), otherwise it defaults to 1.
	ConversionQuantity int64 `json:"conversionQuantity,omitempty,string"`
	// ConversionRevenueMicros: Output only. The adjusted revenue in micros for the
	// conversion event. This will always be in the currency of the serving
	// account.
	ConversionRevenueMicros int64 `json:"conversionRevenueMicros,omitempty,string"`
	// ConversionVisitDateTime: Output only. The timestamp of the visit that the
	// conversion is attributed to.
	ConversionVisitDateTime string `json:"conversionVisitDateTime,omitempty"`
	// CriterionId: Output only. Search Ads 360 criterion ID. A value of 0
	// indicates that the criterion is unattributed.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// FloodlightOrderId: Output only. The Floodlight order ID provided by the
	// advertiser for the conversion.
	FloodlightOrderId string `json:"floodlightOrderId,omitempty"`
	// FloodlightOriginalRevenue: Output only. The original, unchanged revenue
	// associated with the Floodlight event (in the currency of the current
	// report), before Floodlight currency instruction modifications.
	FloodlightOriginalRevenue int64 `json:"floodlightOriginalRevenue,omitempty,string"`
	// Id: Output only. The ID of the conversion
	Id int64 `json:"id,omitempty,string"`
	// MerchantId: Output only. The Search Ads 360 inventory account ID containing
	// the product that was clicked on. Search Ads 360 generates this ID when you
	// link an inventory account in Search Ads 360.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// ProductChannel: Output only. The sales channel of the product that was
	// clicked on: Online or Local.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductCountryCode: Output only. The country (ISO-3166-format) registered
	// for the inventory feed that contains the product clicked on.
	ProductCountryCode string `json:"productCountryCode,omitempty"`
	// ProductId: Output only. The ID of the product clicked on.
	ProductId string `json:"productId,omitempty"`
	// ProductLanguageCode: Output only. The language (ISO-639-1) that has been set
	// for the Merchant Center feed containing data about the product.
	ProductLanguageCode string `json:"productLanguageCode,omitempty"`
	// ProductStoreId: Output only. The store in the Local Inventory Ad that was
	// clicked on. This should match the store IDs used in your local products
	// feed.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ResourceName: Output only. The resource name of the conversion. Conversion
	// resource names have the form:
	// `customers/{customer_id}/conversions/{ad_group_id}~{criterion_id}~{ds_convers
	// ion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the conversion, either ENABLED or
	// REMOVED..
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The conversion is enabled.
	//   "REMOVED" - The conversion has been removed.
	Status string `json:"status,omitempty"`
	// VisitId: Output only. The Search Ads 360 visit ID that the conversion is
	// attributed to.
	VisitId int64 `json:"visitId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdId") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Conversion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Conversion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionAction: A conversion action.
type GoogleAdsSearchads360V23Resources__ConversionAction struct {
	// AppId: App ID for an app conversion action.
	AppId string `json:"appId,omitempty"`
	// AttributionModelSettings: Settings related to this conversion action's
	// attribution model.
	AttributionModelSettings *GoogleAdsSearchads360V23ResourcesConversionActionAttributionModelSettings `json:"attributionModelSettings,omitempty"`
	// Category: The category of conversions reported for this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	Category string `json:"category,omitempty"`
	// ClickThroughLookbackWindowDays: The maximum number of days that may elapse
	// between an interaction (for example, a click) and a conversion event.
	ClickThroughLookbackWindowDays int64 `json:"clickThroughLookbackWindowDays,omitempty,string"`
	// CountingType: How to count conversion events for the conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONE_PER_CLICK" - Count only one conversion per click.
	//   "MANY_PER_CLICK" - Count all conversions per click.
	CountingType string `json:"countingType,omitempty"`
	// CreationTime: Output only. Timestamp of the Floodlight activity's creation,
	// formatted in ISO 8601.
	CreationTime string `json:"creationTime,omitempty"`
	// FirebaseSettings: Output only. Firebase settings for Firebase conversion
	// types.
	FirebaseSettings *GoogleAdsSearchads360V23ResourcesConversionActionFirebaseSettings `json:"firebaseSettings,omitempty"`
	// FloodlightSettings: Output only. Floodlight settings for Floodlight
	// conversion types.
	FloodlightSettings *GoogleAdsSearchads360V23ResourcesConversionActionFloodlightSettings `json:"floodlightSettings,omitempty"`
	// GoogleAnalytics4Settings: Output only. Google Analytics 4 settings for
	// Google Analytics 4 conversion types.
	GoogleAnalytics4Settings *GoogleAdsSearchads360V23ResourcesConversionActionGoogleAnalytics4Settings `json:"googleAnalytics4Settings,omitempty"`
	// Id: Output only. The ID of the conversion action.
	Id int64 `json:"id,omitempty,string"`
	// IncludeInClientAccountConversionsMetric: Whether this conversion action
	// should be included in the "client_account_conversions" metric.
	IncludeInClientAccountConversionsMetric bool `json:"includeInClientAccountConversionsMetric,omitempty"`
	// IncludeInConversionsMetric: Output only. Whether this conversion action
	// should be included in the "conversions" metric.
	IncludeInConversionsMetric bool `json:"includeInConversionsMetric,omitempty"`
	// MobileAppVendor: Output only. Mobile app vendor for an app conversion
	// action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Mobile app vendor for Apple app store.
	//   "GOOGLE_APP_STORE" - Mobile app vendor for Google app store.
	MobileAppVendor string `json:"mobileAppVendor,omitempty"`
	// Name: The name of the conversion action. This field is required and should
	// not be empty when creating new conversion actions.
	Name string `json:"name,omitempty"`
	// Origin: Output only. The conversion origin of this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - The conversion origin has not been specified.
	//   "UNKNOWN" - The conversion origin is not known in this version.
	//   "WEBSITE" - Conversion that occurs when a user visits a website or takes
	// an action there after viewing an ad.
	//   "GOOGLE_HOSTED" - Conversions reported by an offline pipeline which
	// collects local actions from Google-hosted pages (for example, Google Maps,
	// Google Place Page, etc) and attributes them to relevant ad events.
	//   "APP" - Conversion that occurs when a user performs an action through any
	// app platforms.
	//   "CALL_FROM_ADS" - Conversion that occurs when a user makes a call from
	// ads.
	//   "STORE" - Conversion that occurs when a user visits or makes a purchase at
	// a physical store.
	//   "YOUTUBE_HOSTED" - Conversion that occurs on YouTube.
	//   "FLOODLIGHT" - Conversions that occur through Floodlight tag.
	Origin string `json:"origin,omitempty"`
	// OwnerCustomer: Output only. The resource name of the conversion action owner
	// customer, or null if this is a system-defined conversion action.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// PhoneCallDurationSeconds: The phone call duration in seconds after which a
	// conversion should be reported for this conversion action. The value must be
	// between 0 and 10000, inclusive.
	PhoneCallDurationSeconds int64 `json:"phoneCallDurationSeconds,omitempty,string"`
	// PrimaryForGoal: If a conversion action's primary_for_goal bit is false, the
	// conversion action is non-biddable for all campaigns regardless of their
	// customer conversion goal or campaign conversion goal. However, custom
	// conversion goals do not respect primary_for_goal, so if a campaign has a
	// custom conversion goal configured with a primary_for_goal = false conversion
	// action, that conversion action is still biddable. By default,
	// primary_for_goal will be true if not set. In V9, primary_for_goal can only
	// be set to false after creation through an 'update' operation because it's
	// not declared as optional.
	PrimaryForGoal bool `json:"primaryForGoal,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion action.
	// Conversion action resource names have the form:
	// `customers/{customer_id}/conversionActions/{conversion_action_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of this conversion action for conversion event accrual.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Conversions will be recorded.
	//   "REMOVED" - Conversions will not be recorded.
	//   "HIDDEN" - Conversions will not be recorded and the conversion action will
	// not appear in the UI.
	Status string `json:"status,omitempty"`
	// TagSnippets: Output only. The snippets used for tracking conversions.
	TagSnippets []*GoogleAdsSearchads360V23Common__TagSnippet `json:"tagSnippets,omitempty"`
	// ThirdPartyAppAnalyticsSettings: Output only. Third Party App Analytics
	// settings for third party conversion types.
	ThirdPartyAppAnalyticsSettings *GoogleAdsSearchads360V23ResourcesConversionActionThirdPartyAppAnalyticsSettings `json:"thirdPartyAppAnalyticsSettings,omitempty"`
	// Type: Immutable. The type of this conversion action.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AD_CALL" - Conversions that occur when a user clicks on an ad's call
	// extension.
	//   "CLICK_TO_CALL" - Conversions that occur when a user on a mobile device
	// clicks a phone number.
	//   "GOOGLE_PLAY_DOWNLOAD" - Conversions that occur when a user downloads a
	// mobile app from the Google Play Store.
	//   "GOOGLE_PLAY_IN_APP_PURCHASE" - Conversions that occur when a user makes a
	// purchase in an app through Android billing.
	//   "UPLOAD_CALLS" - Call conversions that are tracked by the advertiser and
	// uploaded.
	//   "UPLOAD_CLICKS" - Conversions that are tracked by the advertiser and
	// uploaded with attributed clicks.
	//   "WEBPAGE" - Conversions that occur on a webpage.
	//   "WEBSITE_CALL" - Conversions that occur when a user calls a
	// dynamically-generated phone number from an advertiser's website.
	//   "STORE_SALES_DIRECT_UPLOAD" - Store Sales conversion based on first-party
	// or third-party merchant data uploads. Only customers on the allowlist can
	// use store sales direct upload types.
	//   "STORE_SALES" - Store Sales conversion based on first-party or third-party
	// merchant data uploads and/or from in-store purchases using cards from
	// payment networks. Only customers on the allowlist can use store sales types.
	// Read only.
	//   "FIREBASE_ANDROID_FIRST_OPEN" - Android app first open conversions tracked
	// through Firebase.
	//   "FIREBASE_ANDROID_IN_APP_PURCHASE" - Android app in app purchase
	// conversions tracked through Firebase.
	//   "FIREBASE_ANDROID_CUSTOM" - Android app custom conversions tracked through
	// Firebase.
	//   "FIREBASE_IOS_FIRST_OPEN" - iOS app first open conversions tracked through
	// Firebase.
	//   "FIREBASE_IOS_IN_APP_PURCHASE" - iOS app in app purchase conversions
	// tracked through Firebase.
	//   "FIREBASE_IOS_CUSTOM" - iOS app custom conversions tracked through
	// Firebase.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN" - Android app first open
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE" - Android app in app
	// purchase conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM" - Android app custom
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN" - iOS app first open
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE" - iOS app in app purchase
	// conversions tracked through Third Party App Analytics.
	//   "THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM" - iOS app custom conversions
	// tracked through Third Party App Analytics.
	//   "ANDROID_APP_PRE_REGISTRATION" - Conversions that occur when a user
	// pre-registers a mobile app from the Google Play Store. Read only.
	//   "ANDROID_INSTALLS_ALL_OTHER_APPS" - Conversions that track all Google Play
	// downloads which aren't tracked by an app-specific type. Read only.
	//   "FLOODLIGHT_ACTION" - Floodlight activity that counts the number of times
	// that users have visited a particular webpage after seeing or clicking on one
	// of an advertiser's ads. Read only.
	//   "FLOODLIGHT_TRANSACTION" - Floodlight activity that tracks the number of
	// sales made or the number of items purchased. Can also capture the total
	// value of each sale. Read only.
	//   "GOOGLE_HOSTED" - Conversions that track local actions from Google's
	// products and services after interacting with an ad. Read only.
	//   "LEAD_FORM_SUBMIT" - Conversions reported when a user submits a lead form.
	// Read only.
	//   "SALESFORCE" - Deprecated: The Salesforce integration will be going away
	// and replaced with an improved way to import your conversions from
	// Salesforce. - see https://support.google.com/google-ads/answer/14728349
	//   "SEARCH_ADS_360" - Conversions imported from Search Ads 360 Floodlight
	// data. Read only.
	//   "SMART_CAMPAIGN_AD_CLICKS_TO_CALL" - Call conversions that occur on Smart
	// campaign Ads without call tracking setup, using Smart campaign custom
	// criteria. Read only.
	//   "SMART_CAMPAIGN_MAP_CLICKS_TO_CALL" - The user clicks on a call element
	// within Google Maps. Smart campaign only. Read only.
	//   "SMART_CAMPAIGN_MAP_DIRECTIONS" - The user requests directions to a
	// business location within Google Maps. Smart campaign only. Read only.
	//   "SMART_CAMPAIGN_TRACKED_CALLS" - Call conversions that occur on Smart
	// campaign Ads with call tracking setup, using Smart campaign custom criteria.
	// Read only.
	//   "STORE_VISITS" - Conversions that occur when a user visits an advertiser's
	// retail store. Read only.
	//   "WEBPAGE_CODELESS" - Conversions created from website events (such as form
	// submissions or page loads), that don't use individually coded event
	// snippets. Read only.
	//   "UNIVERSAL_ANALYTICS_GOAL" - Conversions that come from linked Universal
	// Analytics goals.
	//   "UNIVERSAL_ANALYTICS_TRANSACTION" - Conversions that come from linked
	// Universal Analytics transactions.
	//   "GOOGLE_ANALYTICS_4_CUSTOM" - Conversions that come from linked Google
	// Analytics 4 custom event conversions.
	//   "GOOGLE_ANALYTICS_4_PURCHASE" - Conversions that come from linked Google
	// Analytics 4 purchase conversions.
	Type string `json:"type,omitempty"`
	// ValueSettings: Settings related to the value for conversion events
	// associated with this conversion action.
	ValueSettings *GoogleAdsSearchads360V23ResourcesConversionActionValueSettings `json:"valueSettings,omitempty"`
	// ViewThroughLookbackWindowDays: The maximum number of days which may elapse
	// between an impression and a conversion without an interaction.
	ViewThroughLookbackWindowDays int64 `json:"viewThroughLookbackWindowDays,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionAction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionCustomVariable: A conversion
// custom variable. See "About custom Floodlight metrics and dimensions in the
// new Search Ads 360" at https://support.google.com/sa360/answer/13567857
type GoogleAdsSearchads360V23Resources__ConversionCustomVariable struct {
	// Cardinality: Output only. Cardinality of the conversion custom variable.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BELOW_ALL_LIMITS" - The conversion custom variable has cardinality below
	// all limits. The variable can be used for segmentation, and stats can accrue
	// for new values if the variable is enabled.
	//   "EXCEEDS_SEGMENTATION_LIMIT_BUT_NOT_STATS_LIMIT" - The conversion custom
	// variable has cardinality that exceeds the segmentation limit, but does not
	// exceed the stats limit. Segmentation will be disabled, but stats can accrue
	// for new values if the variable is enabled.
	//   "APPROACHES_STATS_LIMIT" - The conversion custom variable has exceeded the
	// segmentation limits, and is approaching the stats limits (> 90%).
	// Segmentation will be disabled, but stats can accrue for new values if the
	// variable is enabled.
	//   "EXCEEDS_STATS_LIMIT" - The conversion custom variable has exceeded both
	// the segmentation limits and stats limits. Segmentation will be disabled, and
	// stats for enabled variables can accrue only if the existing values do not
	// increase the cardinality of the variable any further.
	Cardinality string `json:"cardinality,omitempty"`
	// CustomColumnIds: Output only. The IDs of custom columns that use this
	// conversion custom variable.
	CustomColumnIds googleapi.Int64s `json:"customColumnIds,omitempty"`
	// Family: Output only. Family of the conversion custom variable.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STANDARD" - The standard conversion custom variable. Customers are
	// required to activate before use.
	//   "FLOODLIGHT" - The conversion custom variable imported from a custom
	// floodlight variable.
	Family string `json:"family,omitempty"`
	// FloodlightConversionCustomVariableInfo: Output only. Fields for Search Ads
	// 360 floodlight conversion custom variables.
	FloodlightConversionCustomVariableInfo *GoogleAdsSearchads360V23ResourcesConversionCustomVariableFloodlightConversionCustomVariableInfo `json:"floodlightConversionCustomVariableInfo,omitempty"`
	// Id: Output only. The ID of the conversion custom variable.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. The name of the conversion custom variable. Name should be
	// unique. The maximum length of name is 100 characters. There should not be
	// any extra spaces before and after.
	Name string `json:"name,omitempty"`
	// OwnerCustomer: Output only. The resource name of the customer that owns the
	// conversion custom variable.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion custom
	// variable. Conversion custom variable resource names have the form:
	// `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variabl
	// e_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the conversion custom variable for conversion event
	// accrual.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVATION_NEEDED" - The conversion custom variable is pending activation
	// and will not accrue stats until set to ENABLED. This status can't be used in
	// CREATE and UPDATE requests.
	//   "ENABLED" - The conversion custom variable is enabled and will accrue
	// stats.
	//   "PAUSED" - The conversion custom variable is paused and will not accrue
	// stats until set to ENABLED again.
	Status string `json:"status,omitempty"`
	// Tag: Required. Immutable. The tag of the conversion custom variable. Tag
	// should be unique and consist of a "u" character directly followed with a
	// number less than ormequal to 100. For example: "u4".
	Tag string `json:"tag,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cardinality") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cardinality") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionCustomVariable) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionCustomVariable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig: Conversion
// goal settings for a Campaign.
type GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig struct {
	// Campaign: Immutable. The campaign with which this conversion goal campaign
	// config is associated.
	Campaign string `json:"campaign,omitempty"`
	// CustomConversionGoal: The custom conversion goal the campaign is using for
	// optimization.
	CustomConversionGoal string `json:"customConversionGoal,omitempty"`
	// GoalConfigLevel: The level of goal config the campaign is using.
	//
	// Possible values:
	//   "UNSPECIFIED" - The goal config level has not been specified.
	//   "UNKNOWN" - The goal config level is not known in this version.
	//   "CUSTOMER" - The goal config is defined at the customer level.
	//   "CAMPAIGN" - The goal config is defined at the campaign level.
	GoalConfigLevel string `json:"goalConfigLevel,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion goal campaign
	// config. Conversion goal campaign config resource names have the form:
	// `customers/{customer_id}/conversionGoalCampaignConfigs/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchAds360CustomConversionGoal: The Search Ads 360 custom conversion goal
	// the campaign is using for optimization.
	SearchAds360CustomConversionGoal string `json:"searchAds360CustomConversionGoal,omitempty"`
	// SearchAds360GoalConfigLevel: The level of Search Ads 360 goal config the
	// campaign is using.
	//
	// Possible values:
	//   "UNSPECIFIED" - The goal config level has not been specified.
	//   "UNKNOWN" - The goal config level is not known in this version.
	//   "CUSTOMER" - The goal config is defined at the customer level.
	//   "CAMPAIGN" - The goal config is defined at the campaign level.
	SearchAds360GoalConfigLevel string `json:"searchAds360GoalConfigLevel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionTrackingSetting: A collection
// of customer-wide settings related to Search Ads 360 Conversion Tracking.
type GoogleAdsSearchads360V23Resources__ConversionTrackingSetting struct {
	// AcceptedCustomerDataTerms: Output only. Whether the customer has accepted
	// customer data terms. If using cross-account conversion tracking, this value
	// is inherited from the manager. This field is read-only. For more
	// information, see https://support.google.com/adspolicy/answer/7475709.
	AcceptedCustomerDataTerms bool `json:"acceptedCustomerDataTerms,omitempty"`
	// ConversionTrackingId: Output only. The conversion tracking id used for this
	// account. This id doesn't indicate whether the customer uses conversion
	// tracking (conversion_tracking_status does). This field is read-only.
	ConversionTrackingId int64 `json:"conversionTrackingId,omitempty,string"`
	// ConversionTrackingStatus: Output only. Conversion tracking status. It
	// indicates whether the customer is using conversion tracking, and who is the
	// conversion tracking owner of this customer. If this customer is using
	// cross-account conversion tracking, the value returned will differ based on
	// the `login-customer-id` of the request.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOT_CONVERSION_TRACKED" - Customer does not use any conversion tracking.
	//   "CONVERSION_TRACKING_MANAGED_BY_SELF" - The conversion actions are created
	// and managed by this customer.
	//   "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER" - The conversion actions are
	// created and managed by the manager specified in the request's
	// `login-customer-id`.
	//   "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" - The conversion actions
	// are created and managed by a manager different from the customer or manager
	// specified in the request's `login-customer-id`.
	ConversionTrackingStatus string `json:"conversionTrackingStatus,omitempty"`
	// CrossAccountConversionTrackingId: Output only. The conversion tracking id of
	// the customer's manager. This is set when the customer is opted into
	// cross-account conversion tracking, and it overrides conversion_tracking_id.
	CrossAccountConversionTrackingId int64 `json:"crossAccountConversionTrackingId,omitempty,string"`
	// EnhancedConversionsForLeadsEnabled: Output only. Whether the customer is
	// opted-in for enhanced conversions for leads. If using cross-account
	// conversion tracking, this value is inherited from the manager. This field is
	// read-only.
	EnhancedConversionsForLeadsEnabled bool `json:"enhancedConversionsForLeadsEnabled,omitempty"`
	// GoogleAdsConversionCustomer: The resource name of the customer where
	// conversions are created and managed. This field is read-only.
	GoogleAdsConversionCustomer string `json:"googleAdsConversionCustomer,omitempty"`
	// GoogleAdsCrossAccountConversionTrackingId: Output only. The conversion
	// tracking id of the customer's manager. This is set when the customer is
	// opted into conversion tracking, and it overrides conversion_tracking_id.
	// This field can only be managed through the Google Ads UI. This field is
	// read-only.
	GoogleAdsCrossAccountConversionTrackingId int64 `json:"googleAdsCrossAccountConversionTrackingId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AcceptedCustomerDataTerms")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptedCustomerDataTerms") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionTrackingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionTrackingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionValueRule: A conversion value
// rule
type GoogleAdsSearchads360V23Resources__ConversionValueRule struct {
	// Action: Action applied when the rule is triggered.
	Action *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAction `json:"action,omitempty"`
	// AudienceCondition: Condition for audience that must be satisfied for the
	// value rule to apply.
	AudienceCondition *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleAudienceCondition `json:"audienceCondition,omitempty"`
	// DeviceCondition: Condition for device type that must be satisfied for the
	// value rule to apply.
	DeviceCondition *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleDeviceCondition `json:"deviceCondition,omitempty"`
	// GeoLocationCondition: Condition for Geo location that must be satisfied for
	// the value rule to apply.
	GeoLocationCondition *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleGeoLocationCondition `json:"geoLocationCondition,omitempty"`
	// Id: Output only. The ID of the conversion value rule.
	Id int64 `json:"id,omitempty,string"`
	// ItineraryCondition: Condition for itinerary that must be satisfied for the
	// value rule to apply.
	ItineraryCondition *GoogleAdsSearchads360V23ResourcesConversionValueRuleValueRuleItineraryCondition `json:"itineraryCondition,omitempty"`
	// OwnerCustomer: Output only. The resource name of the conversion value rule's
	// owner customer. When the value rule is inherited from a manager customer,
	// owner_customer will be the resource name of the manager whereas the customer
	// in the resource_name will be of the requesting serving customer. **
	// Read-only **
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion value rule.
	// Conversion value rule resource names have the form:
	// `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the conversion value rule.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Conversion Value Rule is enabled and can be applied.
	//   "REMOVED" - Conversion Value Rule is permanently deleted and can't be
	// applied.
	//   "PAUSED" - Conversion Value Rule is paused, but can be re-enabled.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionValueRule) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionValueRule
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ConversionValueRuleSet: A conversion
// value rule set is a collection of conversion value rules that lets you
// adjust conversion values based on the dimensions specified in the
// `dimensions` field.
type GoogleAdsSearchads360V23Resources__ConversionValueRuleSet struct {
	// AttachmentType: Immutable. Defines the scope where the conversion value rule
	// set is attached.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CUSTOMER" - Attached to the customer.
	//   "CAMPAIGN" - Attached to a campaign.
	AttachmentType string `json:"attachmentType,omitempty"`
	// Campaign: The resource name of the campaign when the conversion value rule
	// set is attached to a campaign.
	Campaign string `json:"campaign,omitempty"`
	// ConversionActionCategories: Immutable. The conversion action categories of
	// the conversion value rule set.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	ConversionActionCategories []string `json:"conversionActionCategories,omitempty"`
	// ConversionValueRules: Resource names of rules within the rule set.
	ConversionValueRules []string `json:"conversionValueRules,omitempty"`
	// Dimensions: Defines dimensions for Value Rule conditions. The condition
	// types of value rules within this value rule set must be of these dimensions.
	// The first entry in this list is the primary dimension of the included value
	// rules. When using value rule primary dimension segmentation, conversion
	// values will be segmented into the values adjusted by value rules and the
	// original values, if some value rules apply.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "GEO_LOCATION" - Dimension for geo location.
	//   "DEVICE" - Dimension for device type.
	//   "AUDIENCE" - Dimension for audience.
	//   "NO_CONDITION" - This dimension implies the rule will always apply.
	//   "ITINERARY" - Dimension for itinerary.
	Dimensions []string `json:"dimensions,omitempty"`
	// Id: Output only. The ID of the conversion value rule set.
	Id int64 `json:"id,omitempty,string"`
	// OwnerCustomer: Output only. The resource name of the conversion value rule
	// set's owner customer. When the value rule set is inherited from a manager
	// customer, owner_customer will be the resource name of the manager whereas
	// the customer in the resource_name will be of the requesting serving
	// customer. ** Read-only **
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the conversion value rule set.
	// Conversion value rule set resource names have the form:
	// `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_i
	// d}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the conversion value rule set. **
	// Read-only **
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Conversion Value Rule Set is enabled and can be applied.
	//   "REMOVED" - Conversion Value Rule Set is permanently deleted and can't be
	// applied.
	//   "PAUSED" - Conversion Value Rule Set is paused and won't be applied. It
	// can be enabled again.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttachmentType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachmentType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ConversionValueRuleSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ConversionValueRuleSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CreditDetails: Represents the credit
// details of a lead.
type GoogleAdsSearchads360V23Resources__CreditDetails struct {
	// CreditState: Output only. Credit state of the lead.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - A credit has been filed and is being processed by Ads backend,
	// but has not been applied to the account yet.
	//   "CREDITED" - The credit has been issued to the Ads account.
	CreditState string `json:"creditState,omitempty"`
	// CreditStateLastUpdateDateTime: Output only. The date time when the credit
	// state of the lead was last updated. The format is "YYYY-MM-DD HH:MM:SS" in
	// the Google Ads account's timezone. Examples: "2018-03-05 09:15:00" or
	// "2018-02-01 14:34:30"
	CreditStateLastUpdateDateTime string `json:"creditStateLastUpdateDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreditState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreditState") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CreditDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CreditDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CurrencyConstant: A currency constant.
type GoogleAdsSearchads360V23Resources__CurrencyConstant struct {
	// BillableUnitMicros: Output only. The billable unit for this currency. Billed
	// amounts should be multiples of this value.
	BillableUnitMicros int64 `json:"billableUnitMicros,omitempty,string"`
	// Code: Output only. ISO 4217 three-letter currency code, for example, "USD"
	Code string `json:"code,omitempty"`
	// Name: Output only. Full English name of the currency.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the currency constant.
	// Currency constant resource names have the form: `currencyConstants/{code}`
	ResourceName string `json:"resourceName,omitempty"`
	// Symbol: Output only. Standard symbol for describing this currency, for
	// example, '$' for US Dollars.
	Symbol string `json:"symbol,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BillableUnitMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BillableUnitMicros") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CurrencyConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CurrencyConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomAudience: A custom audience. This
// is a list of users by interest. The unique key of a custom audience consists
// of the following fields: name. Violating the unique key constraint produces
// error: CustomAudienceError.NAME_ALREADY_USED
type GoogleAdsSearchads360V23Resources__CustomAudience struct {
	// Description: Description of this custom audience.
	Description string `json:"description,omitempty"`
	// Id: Output only. ID of the custom audience.
	Id int64 `json:"id,omitempty,string"`
	// Members: List of custom audience members that this custom audience is
	// composed of. Members can be added during CustomAudience creation. If members
	// are presented in UPDATE operation, existing members will be overridden.
	Members []*GoogleAdsSearchads360V23Resources__CustomAudienceMember `json:"members,omitempty"`
	// Name: Name of the custom audience. It should be unique for all custom
	// audiences created by a customer. This field is required for creating
	// operations.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the custom audience. Custom
	// audience resource names have the form:
	// `customers/{customer_id}/customAudiences/{custom_audience_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of this custom audience. Indicates whether the
	// custom audience is enabled or removed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Enabled status - custom audience is enabled and can be
	// targeted.
	//   "REMOVED" - Removed status - custom audience is removed and cannot be used
	// for targeting.
	Status string `json:"status,omitempty"`
	// Type: Type of the custom audience. ("INTEREST" OR "PURCHASE_INTENT" is not
	// allowed for newly created custom audience but kept for existing audiences)
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AUTO" - Google Ads will auto-select the best interpretation at serving
	// time.
	//   "INTEREST" - Matches users by their interests.
	//   "PURCHASE_INTENT" - Matches users by topics they are researching or
	// products they are considering for purchase.
	//   "SEARCH" - Matches users by what they searched on Google Search.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomAudience) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomAudience
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomAudienceMember: A member of custom
// audience. A member can be a KEYWORD, URL, PLACE_CATEGORY or APP. It can only
// be created or removed but not changed.
type GoogleAdsSearchads360V23Resources__CustomAudienceMember struct {
	// App: A package name of Android apps which users installed such as
	// com.google.example.
	App string `json:"app,omitempty"`
	// Keyword: A keyword or keyword phrase — at most 10 words and 80 characters.
	// Languages with double-width characters such as Chinese, Japanese, or Korean,
	// are allowed 40 characters, which describes the user's interests or actions.
	Keyword string `json:"keyword,omitempty"`
	// MemberType: The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY
	// or APP.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Users whose interests or actions are described by a keyword.
	//   "URL" - Users who have interests related to the website's content.
	//   "PLACE_CATEGORY" - Users who visit place types described by a place
	// category.
	//   "APP" - Users who have installed a mobile app.
	MemberType string `json:"memberType,omitempty"`
	// PlaceCategory: A place type described by a place category users visit.
	PlaceCategory int64 `json:"placeCategory,omitempty,string"`
	// Url: An HTTP URL, protocol-included — at most 2048 characters, which
	// includes contents users have interests in.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "App") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "App") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomAudienceMember) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomAudienceMember
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomColumn: A custom column. See Search
// Ads 360 custom column at https://support.google.com/sa360/answer/9633916
type GoogleAdsSearchads360V23Resources__CustomColumn struct {
	// Description: Output only. User-defined description of the custom column.
	Description string `json:"description,omitempty"`
	// Id: Output only. ID of the custom column.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. User-defined name of the custom column.
	Name string `json:"name,omitempty"`
	// Queryable: Output only. True when the custom column is available to be used
	// in the query of SearchAds360Service.Search and
	// SearchAds360Service.SearchStream.
	Queryable bool `json:"queryable,omitempty"`
	// ReferencedSystemColumns: Output only. The list of the referenced system
	// columns of this custom column. For example, A custom column "sum of
	// impressions and clicks" has referenced system columns of {"metrics.clicks",
	// "metrics.impressions"}.
	ReferencedSystemColumns []string `json:"referencedSystemColumns,omitempty"`
	// ReferencesAttributes: Output only. True when the custom column is referring
	// to one or more attributes.
	ReferencesAttributes bool `json:"referencesAttributes,omitempty"`
	// ReferencesMetrics: Output only. True when the custom column is referring to
	// one or more metrics.
	ReferencesMetrics bool `json:"referencesMetrics,omitempty"`
	// RenderType: Output only. How the result value of the custom column should be
	// interpreted.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown.
	//   "NUMBER" - The custom column is a raw numerical value. See value_type
	// field to determine if it is an integer or a double.
	//   "PERCENT" - The custom column should be multiplied by 100 to retrieve the
	// percentage value.
	//   "MONEY" - The custom column value is a monetary value and is in micros.
	//   "STRING" - The custom column value is a string.
	//   "BOOLEAN" - The custom column value is a boolean.
	//   "DATE" - The custom column value is a date represented as an integer in
	// YYYYMMDD format.
	RenderType string `json:"renderType,omitempty"`
	// ResourceName: Immutable. The resource name of the custom column. Custom
	// column resource names have the form:
	// `customers/{customer_id}/customColumns/{custom_column_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ValueType: Output only. The type of the result value of the custom column.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown.
	//   "STRING" - The custom column value is a string.
	//   "INT64" - The custom column value is an int64 number.
	//   "DOUBLE" - The custom column value is a double number.
	//   "BOOLEAN" - The custom column value is a boolean.
	//   "DATE" - The custom column value is a date, in YYYYMMDD format.
	ValueType string `json:"valueType,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomColumn) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomColumn
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomConversionGoal: Custom conversion
// goal that can make arbitrary conversion actions biddable.
type GoogleAdsSearchads360V23Resources__CustomConversionGoal struct {
	// ConversionActions: Conversion actions that the custom conversion goal makes
	// biddable.
	ConversionActions []string `json:"conversionActions,omitempty"`
	// Id: Immutable. The ID for this custom conversion goal.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name for this custom conversion goal.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the custom conversion goal.
	// Custom conversion goal resource names have the form:
	// `customers/{customer_id}/customConversionGoals/{goal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: The status of the custom conversion goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The custom conversion goal is enabled.
	//   "REMOVED" - The custom conversion goal is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionActions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomConversionGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomConversionGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomInterest: A custom interest. This
// is a list of users by interest.
type GoogleAdsSearchads360V23Resources__CustomInterest struct {
	// Description: Description of this custom interest audience.
	Description string `json:"description,omitempty"`
	// Id: Output only. Id of the custom interest.
	Id int64 `json:"id,omitempty,string"`
	// Members: List of custom interest members that this custom interest is
	// composed of. Members can be added during CustomInterest creation. If members
	// are presented in UPDATE operation, existing members will be overridden.
	Members []*GoogleAdsSearchads360V23Resources__CustomInterestMember `json:"members,omitempty"`
	// Name: Name of the custom interest. It should be unique across the same
	// custom affinity audience. This field is required for create operations.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the custom interest. Custom
	// interest resource names have the form:
	// `customers/{customer_id}/customInterests/{custom_interest_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Status of this custom interest. Indicates whether the custom
	// interest is enabled or removed.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Enabled status - custom interest is enabled and can be
	// targeted to.
	//   "REMOVED" - Removed status - custom interest is removed and cannot be used
	// for targeting.
	Status string `json:"status,omitempty"`
	// Type: Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT. By
	// default the type is set to CUSTOM_AFFINITY.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CUSTOM_AFFINITY" - Allows brand advertisers to define custom affinity
	// audience lists.
	//   "CUSTOM_INTENT" - Allows advertisers to define custom intent audience
	// lists.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomInterest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomInterest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomInterestMember: A member of custom
// interest audience. A member can be a keyword or url. It is immutable, that
// is, it can only be created or removed but not changed.
type GoogleAdsSearchads360V23Resources__CustomInterestMember struct {
	// MemberType: The type of custom interest member, KEYWORD or URL.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Custom interest member type KEYWORD.
	//   "URL" - Custom interest member type URL.
	MemberType string `json:"memberType,omitempty"`
	// Parameter: Keyword text when member_type is KEYWORD or URL string when
	// member_type is URL.
	Parameter string `json:"parameter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MemberType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MemberType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomInterestMember) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomInterestMember
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField: Fields in
// the submitted custom question
type GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField struct {
	// FieldValue: Output only. Field value for custom question response, maximum
	// number of characters is 70.
	FieldValue string `json:"fieldValue,omitempty"`
	// QuestionText: Output only. Question text for custom question, maximum number
	// of characters is 300.
	QuestionText string `json:"questionText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Customer: A customer.
type GoogleAdsSearchads360V23Resources__Customer struct {
	// AccountLevel: Output only. The account level of the customer: Manager,
	// Sub-manager, Associate manager, Service account.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CLIENT_ACCOUNT_FACEBOOK" - Client account (Facebook)
	//   "CLIENT_ACCOUNT_GOOGLE_ADS" - Client account (Google Ads)
	//   "CLIENT_ACCOUNT_MICROSOFT" - Client account (Microsoft)
	//   "CLIENT_ACCOUNT_YAHOO_JAPAN" - Client account (Yahoo Japan)
	//   "CLIENT_ACCOUNT_ENGINE_TRACK" - Client account (Engine Track)
	//   "MANAGER" - Top-level manager.
	//   "SUB_MANAGER" - Sub manager.
	//   "ASSOCIATE_MANAGER" - Associate manager.
	AccountLevel string `json:"accountLevel,omitempty"`
	// AccountStatus: Output only. Account status, for example, Enabled, Paused,
	// Removed, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Default value.
	//   "UNKNOWN" - Unknown value.
	//   "ENABLED" - Account is able to serve ads.
	//   "PAUSED" - Account is deactivated by the user.
	//   "SUSPENDED" - Account is deactivated by an internal process.
	//   "REMOVED" - Account is irrevocably deactivated.
	//   "DRAFT" - Account is still in the process of setup, not ENABLED yet.
	AccountStatus string `json:"accountStatus,omitempty"`
	// AccountType: Output only. Engine account type, for example, Google Ads,
	// Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BAIDU" - Baidu account.
	//   "ENGINE_TRACK" - Engine track account.
	//   "FACEBOOK" - Facebook account.
	//   "FACEBOOK_GATEWAY" - Facebook account managed through gateway.
	//   "GOOGLE_ADS" - Google Ads account.
	//   "MICROSOFT" - Microsoft Advertising account.
	//   "SEARCH_ADS_360" - Search Ads 360 manager account.
	//   "YAHOO_JAPAN" - Yahoo Japan account.
	AccountType string `json:"accountType,omitempty"`
	// AssociateManagerDescriptiveName: Output only. The descriptive name of the
	// associate manager.
	AssociateManagerDescriptiveName string `json:"associateManagerDescriptiveName,omitempty"`
	// AssociateManagerId: Output only. The customer ID of the associate manager. A
	// 0 value indicates that the customer has no SA360 associate manager.
	AssociateManagerId int64 `json:"associateManagerId,omitempty,string"`
	// AutoTaggingEnabled: Whether auto-tagging is enabled for the customer.
	AutoTaggingEnabled bool `json:"autoTaggingEnabled,omitempty"`
	// CallReportingSetting: Call reporting setting for a customer.
	CallReportingSetting *GoogleAdsSearchads360V23Resources__CallReportingSetting `json:"callReportingSetting,omitempty"`
	// ContainsEuPoliticalAdvertising: Output only. Returns the advertiser
	// self-declaration status of whether this customer contains political
	// advertising content targeted towards the European Union. You can use the
	// Google Ads UI to update this account-level declaration, or use the API to
	// update the self-declaration status of individual campaigns.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CONTAINS_EU_POLITICAL_ADVERTISING" - The campaign contains political
	// advertising targeted towards the EU. The campaign will be restricted from
	// serving ads in the EU.
	//   "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING" - The campaign does not
	// contain political advertising targeted towards the EU. No additional serving
	// restrictions will apply.
	ContainsEuPoliticalAdvertising string `json:"containsEuPoliticalAdvertising,omitempty"`
	// ConversionTrackingSetting: Conversion tracking setting for a customer.
	ConversionTrackingSetting *GoogleAdsSearchads360V23Resources__ConversionTrackingSetting `json:"conversionTrackingSetting,omitempty"`
	// CreationTime: Output only. The timestamp when this customer was created. The
	// timestamp is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss"
	// format.
	CreationTime string `json:"creationTime,omitempty"`
	// CurrencyCode: Immutable. The currency in which the account operates. A
	// subset of the currency codes from the ISO 4217 standard is supported.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// CustomerAgreementSetting: Output only. Customer Agreement Setting for a
	// customer.
	CustomerAgreementSetting *GoogleAdsSearchads360V23Resources__CustomerAgreementSetting `json:"customerAgreementSetting,omitempty"`
	// DescriptiveName: Optional, non-unique descriptive name of the customer.
	DescriptiveName string `json:"descriptiveName,omitempty"`
	// DoubleClickCampaignManagerSetting: Output only. DoubleClick Campaign Manager
	// (DCM) setting for a manager customer.
	DoubleClickCampaignManagerSetting *GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting `json:"doubleClickCampaignManagerSetting,omitempty"`
	// EngineId: Output only. ID of the account in the external engine account.
	EngineId string `json:"engineId,omitempty"`
	// FinalUrlSuffix: The URL template for appending params to the final URL.
	FinalUrlSuffix string `json:"finalUrlSuffix,omitempty"`
	// HasPartnersBadge: Output only. Whether the Customer has a Partners program
	// badge. If the Customer is not associated with the Partners program, this
	// will be false. For more information, see
	// https://support.google.com/partners/answer/3125774.
	HasPartnersBadge bool `json:"hasPartnersBadge,omitempty"`
	// Id: Output only. The ID of the customer.
	Id int64 `json:"id,omitempty,string"`
	// ImageAssetAutoMigrationDone: Output only. True if feed based image has been
	// migrated to asset based image.
	ImageAssetAutoMigrationDone bool `json:"imageAssetAutoMigrationDone,omitempty"`
	// ImageAssetAutoMigrationDoneDateTime: Output only. Timestamp of migration
	// from feed based image to asset base image in yyyy-MM-dd HH:mm:ss format.
	ImageAssetAutoMigrationDoneDateTime string `json:"imageAssetAutoMigrationDoneDateTime,omitempty"`
	// LastModifiedTime: Output only. The datetime when this customer was last
	// modified. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss.ssssss" format.
	LastModifiedTime string `json:"lastModifiedTime,omitempty"`
	// LocalServicesSettings: Output only. Settings for Local Services customer.
	LocalServicesSettings *GoogleAdsSearchads360V23Resources__LocalServicesSettings `json:"localServicesSettings,omitempty"`
	// LocationAssetAutoMigrationDone: Output only. True if feed based location has
	// been migrated to asset based location.
	LocationAssetAutoMigrationDone bool `json:"locationAssetAutoMigrationDone,omitempty"`
	// LocationAssetAutoMigrationDoneDateTime: Output only. Timestamp of migration
	// from feed based location to asset base location in yyyy-MM-dd HH:mm:ss
	// format.
	LocationAssetAutoMigrationDoneDateTime string `json:"locationAssetAutoMigrationDoneDateTime,omitempty"`
	// Manager: Output only. Whether the customer is a manager.
	Manager bool `json:"manager,omitempty"`
	// ManagerDescriptiveName: Output only. The descriptive name of the manager.
	ManagerDescriptiveName string `json:"managerDescriptiveName,omitempty"`
	// ManagerId: Output only. The customer ID of the manager. A 0 value indicates
	// that the customer has no SA360 manager.
	ManagerId int64 `json:"managerId,omitempty,string"`
	// OptimizationScore: Output only. Optimization score of the customer.
	// Optimization score is an estimate of how well a customer's campaigns are set
	// to perform. It ranges from 0% (0.0) to 100% (1.0). This field is null for
	// all manager customers, and for unscored non-manager customers. See "About
	// optimization score" at https://support.google.com/google-ads/answer/9061546.
	// This field is read-only.
	OptimizationScore float64 `json:"optimizationScore,omitempty"`
	// OptimizationScoreWeight: Output only. Optimization score weight of the
	// customer. Optimization score weight can be used to compare/aggregate
	// optimization scores across multiple non-manager customers. The aggregate
	// optimization score of a manager is computed as the sum over all of their
	// customers of `Customer.optimization_score *
	// Customer.optimization_score_weight`. This field is 0 for all manager
	// customers, and for unscored non-manager customers. This field is read-only.
	OptimizationScoreWeight float64 `json:"optimizationScoreWeight,omitempty"`
	// PayPerConversionEligibilityFailureReasons: Output only. Reasons why the
	// customer is not eligible to use PaymentMode.CONVERSIONS. If the list is
	// empty, the customer is eligible. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOT_ENOUGH_CONVERSIONS" - Customer does not have enough conversions.
	//   "CONVERSION_LAG_TOO_HIGH" - Customer's conversion lag is too high.
	//   "HAS_CAMPAIGN_WITH_SHARED_BUDGET" - Customer uses shared budgets.
	//   "HAS_UPLOAD_CLICKS_CONVERSION" - Customer has conversions with
	// ConversionActionType.UPLOAD_CLICKS.
	//   "AVERAGE_DAILY_SPEND_TOO_HIGH" - Customer's average daily spend is too
	// high.
	//   "ANALYSIS_NOT_COMPLETE" - Customer's eligibility has not yet been
	// calculated by the Google Ads backend. Check back soon.
	//   "OTHER" - Customer is not eligible due to other reasons.
	PayPerConversionEligibilityFailureReasons []string `json:"payPerConversionEligibilityFailureReasons,omitempty"`
	// RemarketingSetting: Output only. Remarketing setting for a customer.
	RemarketingSetting *GoogleAdsSearchads360V23Resources__RemarketingSetting `json:"remarketingSetting,omitempty"`
	// ResourceName: Immutable. The resource name of the customer. Customer
	// resource names have the form: `customers/{customer_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customer.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Indicates an active account able to serve ads.
	//   "CANCELED" - Indicates a canceled account unable to serve ads. Can be
	// reactivated by an admin user.
	//   "SUSPENDED" - Indicates a suspended account unable to serve ads. May only
	// be activated by Google support.
	//   "CLOSED" - Indicates a closed account unable to serve ads. Test account
	// will also have CLOSED status. Status is permanent and may not be reopened.
	Status string `json:"status,omitempty"`
	// SubManagerDescriptiveName: Output only. The descriptive name of the sub
	// manager.
	SubManagerDescriptiveName string `json:"subManagerDescriptiveName,omitempty"`
	// SubManagerId: Output only. The customer ID of the sub manager. A 0 value
	// indicates that the customer has no sub SA360 manager.
	SubManagerId int64 `json:"subManagerId,omitempty,string"`
	// TestAccount: Output only. Whether the customer is a test account.
	TestAccount bool `json:"testAccount,omitempty"`
	// TimeZone: Immutable. The local timezone ID of the customer.
	TimeZone string `json:"timeZone,omitempty"`
	// TrackingUrlTemplate: The URL template for constructing a tracking URL out of
	// parameters.
	TrackingUrlTemplate string `json:"trackingUrlTemplate,omitempty"`
	// VideoBrandSafetySuitability: Brand Safety setting at the account level.
	// Allows for selecting an inventory type to show your ads on content that is
	// the right fit for your brand. See
	// https://support.google.com/google-ads/answer/7515513.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXPANDED_INVENTORY" - This option lets you show ads across all inventory
	// on YouTube and video partners that meet our standards for monetization. This
	// option may be an appropriate choice for brands that want maximum access to
	// the full breadth of videos eligible for ads, including, for example, videos
	// that have strong profanity in the context of comedy or a documentary, or
	// excessive violence as featured in video games.
	//   "STANDARD_INVENTORY" - This option lets you show ads across a wide range
	// of content that's appropriate for most brands, such as popular music videos,
	// documentaries, and movie trailers. The content you can show ads on is based
	// on YouTube's advertiser-friendly content guidelines that take into account,
	// for example, the strength or frequency of profanity, or the appropriateness
	// of subject matter like sensitive events. Ads won't show, for example, on
	// content with repeated strong profanity, strong sexual content, or graphic
	// violence.
	//   "LIMITED_INVENTORY" - This option lets you show ads on a reduced range of
	// content that's appropriate for brands with particularly strict guidelines
	// around inappropriate language and sexual suggestiveness; above and beyond
	// what YouTube's advertiser-friendly content guidelines address. The videos
	// accessible in this sensitive category meet heightened requirements,
	// especially for inappropriate language and sexual suggestiveness. For
	// example, your ads will be excluded from showing on some of YouTube's most
	// popular music videos and other pop culture content across YouTube and Google
	// video partners.
	VideoBrandSafetySuitability string `json:"videoBrandSafetySuitability,omitempty"`
	// VideoCustomer: Video specific information about a Customer.
	VideoCustomer *GoogleAdsSearchads360V23Resources__VideoCustomer `json:"videoCustomer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountLevel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountLevel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Customer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Customer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__Customer) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__Customer
	var s1 struct {
		OptimizationScore       gensupport.JSONFloat64 `json:"optimizationScore"`
		OptimizationScoreWeight gensupport.JSONFloat64 `json:"optimizationScoreWeight"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.OptimizationScore = float64(s1.OptimizationScore)
	s.OptimizationScoreWeight = float64(s1.OptimizationScoreWeight)
	return nil
}

// GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings: The
// customer acquisition goal settings for the campaign.
type GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings struct {
	// OptimizationMode: Output only. Customer acquisition optimization mode of
	// this campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TARGET_ALL_EQUALLY" - The mode is used when campaign is optimizing
	// equally for existing and new customers, which is the default value.
	//   "BID_HIGHER_FOR_NEW_CUSTOMER" - The mode is used when campaign is bidding
	// higher for new customers than existing customer.
	//   "TARGET_NEW_CUSTOMER" - The mode is used when campaign is only optimizing
	// for new customers.
	OptimizationMode string `json:"optimizationMode,omitempty"`
	// ValueSettings: Output only. Campaign specific values for the customer
	// acquisition goal.
	ValueSettings *GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings `json:"valueSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OptimizationMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OptimizationMode") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerAcquisitionGoalSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerAgreementSetting: Customer
// Agreement Setting for a customer.
type GoogleAdsSearchads360V23Resources__CustomerAgreementSetting struct {
	// AcceptedLeadFormTerms: Output only. Whether the customer has accepted lead
	// form term of service.
	AcceptedLeadFormTerms bool `json:"acceptedLeadFormTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptedLeadFormTerms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptedLeadFormTerms") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerAgreementSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerAgreementSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerAsset: A link between a customer
// and an asset.
type GoogleAdsSearchads360V23Resources__CustomerAsset struct {
	// Asset: Required. Immutable. The asset which is linked to the customer.
	Asset string `json:"asset,omitempty"`
	// FieldType: Required. Immutable. Role that the asset takes for the customer
	// link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// PrimaryStatus: Output only. Provides the PrimaryStatus of this asset link.
	// Primary status is meant essentially to differentiate between the plain
	// "status" field, which has advertiser set values of enabled, paused, or
	// removed. The primary status takes into account other signals (for assets its
	// mainly policy and quality approvals) to come up with a more comprehensive
	// status to indicate its serving state.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ELIGIBLE" - The asset is eligible to serve.
	//   "PAUSED" - The user-specified asset link status is paused.
	//   "REMOVED" - The user-specified asset link status is removed.
	//   "PENDING" - The asset may serve in the future.
	//   "LIMITED" - The asset is serving in a partial capacity.
	//   "NOT_ELIGIBLE" - The asset is not eligible to serve.
	PrimaryStatus string `json:"primaryStatus,omitempty"`
	// PrimaryStatusDetails: Output only. Provides the details of the primary
	// status and its associated reasons.
	PrimaryStatusDetails []*GoogleAdsSearchads360V23Common__AssetLinkPrimaryStatusDetails `json:"primaryStatusDetails,omitempty"`
	// PrimaryStatusReasons: Output only. Provides a list of reasons for why an
	// asset is not serving or not serving at full capacity.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ASSET_LINK_PAUSED" - The asset is paused for its linked rollup level.
	// Contributes to a PrimaryStatus of PAUSED.
	//   "ASSET_LINK_REMOVED" - The asset is removed for its linked rollup level.
	// Contributes to a PrimaryStatus of REMOVED.
	//   "ASSET_DISAPPROVED" - The asset has been marked as disapproved.
	// Contributes to a PrimaryStatus of NOT_ELIGIBLE
	//   "ASSET_UNDER_REVIEW" - The asset has not completed policy review.
	// Contributes to a PrimaryStatus of PENDING.
	//   "ASSET_APPROVED_LABELED" - The asset is approved with policies applied.
	// Contributes to a PrimaryStatus of LIMITED.
	PrimaryStatusReasons []string `json:"primaryStatusReasons,omitempty"`
	// ResourceName: Immutable. The resource name of the customer asset.
	// CustomerAsset resource names have the form:
	// `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Source: Output only. Source of the customer asset link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - The asset or asset link is provided by advertiser.
	//   "AUTOMATICALLY_CREATED" - The asset or asset link is generated by Google.
	Source string `json:"source,omitempty"`
	// Status: Status of the customer asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerAssetSet: CustomerAssetSet is the
// linkage between a customer and an asset set. Adding a CustomerAssetSet links
// an asset set with a customer.
type GoogleAdsSearchads360V23Resources__CustomerAssetSet struct {
	// AssetSet: Immutable. The asset set which is linked to the customer.
	AssetSet string `json:"assetSet,omitempty"`
	// Customer: Immutable. The customer to which this asset set is linked.
	Customer string `json:"customer,omitempty"`
	// ResourceName: Immutable. The resource name of the customer asset set. Asset
	// set asset resource names have the form:
	// `customers/{customer_id}/customerAssetSets/{asset_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customer asset set asset. Read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The linkage between asset set and its container is enabled.
	//   "REMOVED" - The linkage between asset set and its container is removed.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerAssetSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerAssetSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerClient: A link between the given
// customer and a client customer. CustomerClients only exist for manager
// customers. All direct and indirect client customers are included, as well as
// the manager itself.
type GoogleAdsSearchads360V23Resources__CustomerClient struct {
	// AppliedLabels: Output only. The resource names of the labels owned by the
	// requesting customer that are applied to the client customer. Label resource
	// names have the form: `customers/{customer_id}/labels/{label_id}`
	AppliedLabels []string `json:"appliedLabels,omitempty"`
	// ClientCustomer: Output only. The resource name of the client-customer which
	// is linked to the given customer. Read only.
	ClientCustomer string `json:"clientCustomer,omitempty"`
	// CurrencyCode: Output only. Currency code (for example, 'USD', 'EUR') for the
	// client. Read only.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// DescriptiveName: Output only. Descriptive name for the client. Read only.
	DescriptiveName string `json:"descriptiveName,omitempty"`
	// Hidden: Output only. Specifies whether this is a hidden account. Read only.
	Hidden bool `json:"hidden,omitempty"`
	// Id: Output only. The ID of the client customer. Read only.
	Id int64 `json:"id,omitempty,string"`
	// Level: Output only. Distance between given customer and client. For self
	// link, the level value will be 0. Read only.
	Level int64 `json:"level,omitempty,string"`
	// Manager: Output only. Identifies if the client is a manager. Read only.
	Manager bool `json:"manager,omitempty"`
	// ResourceName: Output only. The resource name of the customer client.
	// CustomerClient resource names have the form:
	// `customers/{customer_id}/customerClients/{client_customer_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the client customer. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Indicates an active account able to serve ads.
	//   "CANCELED" - Indicates a canceled account unable to serve ads. Can be
	// reactivated by an admin user.
	//   "SUSPENDED" - Indicates a suspended account unable to serve ads. May only
	// be activated by Google support.
	//   "CLOSED" - Indicates a closed account unable to serve ads. Test account
	// will also have CLOSED status. Status is permanent and may not be reopened.
	Status string `json:"status,omitempty"`
	// TestAccount: Output only. Identifies if the client is a test account. Read
	// only.
	TestAccount bool `json:"testAccount,omitempty"`
	// TimeZone: Output only. Common Locale Data Repository (CLDR) string
	// representation of the time zone of the client, for example,
	// America/Los_Angeles. Read only.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppliedLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppliedLabels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerClient) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerClient
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerClientLink: Represents customer
// client link relationship.
type GoogleAdsSearchads360V23Resources__CustomerClientLink struct {
	// ClientCustomer: Immutable. The client customer linked to this customer.
	ClientCustomer string `json:"clientCustomer,omitempty"`
	// Hidden: The visibility of the link. Users can choose whether or not to see
	// hidden links in the Google Ads UI. Default value is false
	Hidden bool `json:"hidden,omitempty"`
	// ManagerLinkId: Output only. This is uniquely identifies a customer client
	// link. Read only.
	ManagerLinkId int64 `json:"managerLinkId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. CustomerClientLink resource
	// names have the form:
	// `customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_li
	// nk_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: This is the status of the link between client and manager.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVE" - Indicates current in-effect relationship
	//   "INACTIVE" - Indicates terminated relationship
	//   "PENDING" - Indicates relationship has been requested by manager, but the
	// client hasn't accepted yet.
	//   "REFUSED" - Relationship was requested by the manager, but the client has
	// refused.
	//   "CANCELED" - Indicates relationship has been requested by manager, but
	// manager canceled it.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientCustomer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientCustomer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerClientLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerClientLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerConversionGoal: Biddability
// control for conversion actions with a matching category and origin.
type GoogleAdsSearchads360V23Resources__CustomerConversionGoal struct {
	// Biddable: The biddability of the customer conversion goal.
	Biddable bool `json:"biddable,omitempty"`
	// Category: The conversion category of this customer conversion goal. Only
	// conversion actions that have this category will be included in this goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DEFAULT" - Default category.
	//   "PAGE_VIEW" - User visiting a page.
	//   "PURCHASE" - Purchase, sales, or "order placed" event.
	//   "SIGNUP" - Signup user action.
	//   "DOWNLOAD" - Software download action (as for an app).
	//   "ADD_TO_CART" - The addition of items to a shopping cart or bag on an
	// advertiser site.
	//   "BEGIN_CHECKOUT" - When someone enters the checkout flow on an advertiser
	// site.
	//   "SUBSCRIBE_PAID" - The start of a paid subscription for a product or
	// service.
	//   "PHONE_CALL_LEAD" - A call to indicate interest in an advertiser's
	// offering.
	//   "IMPORTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads.
	//   "SUBMIT_LEAD_FORM" - A submission of a form on an advertiser site
	// indicating business interest.
	//   "BOOK_APPOINTMENT" - A booking of an appointment with an advertiser's
	// business.
	//   "REQUEST_QUOTE" - A quote or price estimate request.
	//   "GET_DIRECTIONS" - A search for an advertiser's business location with
	// intention to visit.
	//   "OUTBOUND_CLICK" - A click to an advertiser's partner's site.
	//   "CONTACT" - A call, SMS, email, chat or other type of contact to an
	// advertiser.
	//   "ENGAGEMENT" - A website engagement event such as long site time or a
	// Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA
	// Gold goal imports.
	//   "STORE_VISIT" - A visit to a physical store location.
	//   "STORE_SALE" - A sale occurring in a physical store.
	//   "QUALIFIED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has been further qualified by the advertiser
	// (marketing/sales team). In the lead-to-sale journey, advertisers get leads,
	// then act on them by reaching out to the consumer. If the consumer is
	// interested and may end up buying their product, the advertiser marks such
	// leads as "qualified leads".
	//   "CONVERTED_LEAD" - A lead conversion imported from an external source into
	// Google Ads, that has further completed a chosen stage as defined by the lead
	// gen advertiser.
	Category string `json:"category,omitempty"`
	// Origin: The conversion origin of this customer conversion goal. Only
	// conversion actions that have this conversion origin will be included in this
	// goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - The conversion origin has not been specified.
	//   "UNKNOWN" - The conversion origin is not known in this version.
	//   "WEBSITE" - Conversion that occurs when a user visits a website or takes
	// an action there after viewing an ad.
	//   "GOOGLE_HOSTED" - Conversions reported by an offline pipeline which
	// collects local actions from Google-hosted pages (for example, Google Maps,
	// Google Place Page, etc) and attributes them to relevant ad events.
	//   "APP" - Conversion that occurs when a user performs an action through any
	// app platforms.
	//   "CALL_FROM_ADS" - Conversion that occurs when a user makes a call from
	// ads.
	//   "STORE" - Conversion that occurs when a user visits or makes a purchase at
	// a physical store.
	//   "YOUTUBE_HOSTED" - Conversion that occurs on YouTube.
	//   "FLOODLIGHT" - Conversions that occur through Floodlight tag.
	Origin string `json:"origin,omitempty"`
	// ResourceName: Immutable. The resource name of the customer conversion goal.
	// Customer conversion goal resource names have the form:
	// `customers/{customer_id}/customerConversionGoals/{category}~{origin}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Biddable") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Biddable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerConversionGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerConversionGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerCustomizer: A customizer value
// for the associated CustomizerAttribute at the Customer level.
type GoogleAdsSearchads360V23Resources__CustomerCustomizer struct {
	// CustomizerAttribute: Required. Immutable. The customizer attribute which is
	// linked to the customer.
	CustomizerAttribute string `json:"customizerAttribute,omitempty"`
	// ResourceName: Immutable. The resource name of the customer customizer.
	// Customer customizer resource names have the form:
	// `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customer customizer attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The customizer value is enabled.
	//   "REMOVED" - The customizer value is removed.
	Status string `json:"status,omitempty"`
	// Value: Required. The value to associate with the customizer attribute at
	// this level. The value must be of the type specified for the
	// CustomizerAttribute.
	Value *GoogleAdsSearchads360V23Common__CustomizerValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomizerAttribute") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomizerAttribute") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerCustomizer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerCustomizer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerLabel: Represents a relationship
// between a customer and a label. This customer may not have access to all the
// labels attached to it. Additional CustomerLabels may be returned by
// increasing permissions with login-customer-id.
type GoogleAdsSearchads360V23Resources__CustomerLabel struct {
	// Customer: Output only. The resource name of the customer to which the label
	// is attached. Read only.
	Customer string `json:"customer,omitempty"`
	// Label: Output only. The resource name of the label assigned to the customer.
	// Note: the Customer ID portion of the label resource name is not validated
	// when creating a new CustomerLabel.
	Label string `json:"label,omitempty"`
	// ResourceName: Immutable. Name of the resource. Customer label resource names
	// have the form: `customers/{customer_id}/customerLabels/{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Customer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Customer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerLabel) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerLabel
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal: Account level
// customer lifecycle goal settings.
type GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal struct {
	// CustomerAcquisitionGoalValueSettings: Output only. Customer acquisition goal
	// customer level value settings.
	CustomerAcquisitionGoalValueSettings *GoogleAdsSearchads360V23Common__LifecycleGoalValueSettings `json:"customerAcquisitionGoalValueSettings,omitempty"`
	// OwnerCustomer: Output only. The resource name of the customer which owns the
	// lifecycle goal.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the customer lifecycle goal.
	// Customer lifecycle resource names have the form:
	// `customers/{customer_id}/customerLifecycleGoal`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CustomerAcquisitionGoalValueSettings") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "CustomerAcquisitionGoalValueSettings") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerManagerLink: Represents
// customer-manager link relationship.
type GoogleAdsSearchads360V23Resources__CustomerManagerLink struct {
	// ManagerCustomer: Output only. The manager customer linked to the customer.
	ManagerCustomer string `json:"managerCustomer,omitempty"`
	// ManagerLinkId: Output only. ID of the customer-manager link. This field is
	// read only.
	ManagerLinkId int64 `json:"managerLinkId,omitempty,string"`
	// ResourceName: Immutable. Name of the resource. CustomerManagerLink resource
	// names have the form:
	// `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_
	// link_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartTime: Output only. The timestamp when the CustomerManagerLink was
	// created. The timestamp is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss" format.
	StartTime string `json:"startTime,omitempty"`
	// Status: Status of the link between the customer and the manager.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACTIVE" - Indicates current in-effect relationship
	//   "INACTIVE" - Indicates terminated relationship
	//   "PENDING" - Indicates relationship has been requested by manager, but the
	// client hasn't accepted yet.
	//   "REFUSED" - Relationship was requested by the manager, but the client has
	// refused.
	//   "CANCELED" - Indicates relationship has been requested by manager, but
	// manager canceled it.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManagerCustomer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManagerCustomer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerManagerLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerManagerLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion: A negative
// criterion for exclusions at the customer level.
type GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion struct {
	// ContentLabel: Immutable. ContentLabel.
	ContentLabel *GoogleAdsSearchads360V23Common__ContentLabelInfo `json:"contentLabel,omitempty"`
	// Id: Output only. The ID of the criterion.
	Id int64 `json:"id,omitempty,string"`
	// IpBlock: Immutable. IpBlock. You can exclude up to 500 IP addresses per
	// account.
	IpBlock *GoogleAdsSearchads360V23Common__IpBlockInfo `json:"ipBlock,omitempty"`
	// MobileAppCategory: Immutable. MobileAppCategory.
	MobileAppCategory *GoogleAdsSearchads360V23Common__MobileAppCategoryInfo `json:"mobileAppCategory,omitempty"`
	// MobileApplication: Immutable. MobileApplication.
	MobileApplication *GoogleAdsSearchads360V23Common__MobileApplicationInfo `json:"mobileApplication,omitempty"`
	// NegativeKeywordList: Immutable. NegativeKeywordList.
	NegativeKeywordList *GoogleAdsSearchads360V23Common__NegativeKeywordListInfo `json:"negativeKeywordList,omitempty"`
	// Placement: Immutable. Placement.
	Placement *GoogleAdsSearchads360V23Common__PlacementInfo `json:"placement,omitempty"`
	// PlacementList: Immutable. PlacementList.
	PlacementList *GoogleAdsSearchads360V23Common__PlacementListInfo `json:"placementList,omitempty"`
	// ResourceName: Immutable. The resource name of the customer negative
	// criterion. Customer negative criterion resource names have the form:
	// `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "NEGATIVE_KEYWORD_LIST" - Negative Keyword List
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "SEARCH_THEME" - Search Theme.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	//   "WEBPAGE_LIST" - Webpage List
	//   "VIDEO_LINEUP" - Video lineup
	//   "PLACEMENT_LIST" - Placement List
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST" - A list of rules for item groups in
	// Vertical Ads.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE" - A rule for an item group in Vertical Ads.
	Type string `json:"type,omitempty"`
	// YoutubeChannel: Immutable. YouTube Channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeVideo: Immutable. YouTube Video.
	YoutubeVideo *GoogleAdsSearchads360V23Common__YouTubeVideoInfo `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight: This report
// provides a high-level view of search demand at the customer level by
// grouping similar search terms into categories and showing their search
// volume. Historical data is available starting March 2023.
type GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight struct {
	// CategoryLabel: Output only. The label for the search category. An empty
	// string denotes the catch-all category for search terms that didn't fit into
	// another category.
	CategoryLabel string `json:"categoryLabel,omitempty"`
	// Id: Output only. The ID of the insight.
	Id int64 `json:"id,omitempty,string"`
	// ResourceName: Output only. The resource name of the customer level search
	// term insight. Customer level search term insight resource names have the
	// form: `customers/{customer_id}/customerSearchTermInsights/{category_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryLabel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryLabel") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema:
// A CustomerSkAdNetworkConversionValueSchema.
type GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema struct {
	// ResourceName: Output only. The resource name of the schema.
	// CustomerSkAdNetworkConversionValueSchema resource names have the form:
	// customers/{customer_id}/customerSkAdNetworkConversionValueSchemas/{account_li
	// nk_id}
	ResourceName string `json:"resourceName,omitempty"`
	// Schema: Output only. The schema for the specified resource.
	Schema *GoogleAdsSearchads360V23ResourcesCustomerSkAdNetworkConversionValueSchemaSkAdNetworkConversionValueSchema `json:"schema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerUserAccess: Represents the
// permission of a single user onto a single customer.
type GoogleAdsSearchads360V23Resources__CustomerUserAccess struct {
	// AccessCreationDateTime: Output only. The customer user access creation time.
	// Read only field The format is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05
	// 09:15:00" or "2018-02-01 14:34:30"
	AccessCreationDateTime string `json:"accessCreationDateTime,omitempty"`
	// AccessRole: Access role of the user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADMIN" - Owns its account and can control the addition of other users.
	//   "STANDARD" - Can modify , but can't affect other users.
	//   "READ_ONLY" - Can view and account changes, but cannot make edits.
	//   "EMAIL_ONLY" - Role for \"email only\" access. Represents an email
	// recipient rather than a true User entity.
	AccessRole string `json:"accessRole,omitempty"`
	// EmailAddress: Output only. Email address of the user. Read only field
	EmailAddress string `json:"emailAddress,omitempty"`
	// InviterUserEmailAddress: Output only. The email address of the inviter user.
	// Read only field
	InviterUserEmailAddress string `json:"inviterUserEmailAddress,omitempty"`
	// ResourceName: Immutable. Name of the resource. Resource names have the form:
	// `customers/{customer_id}/customerUserAccesses/{user_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// UserId: Output only. User id of the user with the customer access. Read only
	// field
	UserId int64 `json:"userId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AccessCreationDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessCreationDateTime") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerUserAccess) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerUserAccess
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation: Represent
// an invitation to a new user on this customer account.
type GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation struct {
	// AccessRole: Immutable. Access role of the user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADMIN" - Owns its account and can control the addition of other users.
	//   "STANDARD" - Can modify , but can't affect other users.
	//   "READ_ONLY" - Can view and account changes, but cannot make edits.
	//   "EMAIL_ONLY" - Role for \"email only\" access. Represents an email
	// recipient rather than a true User entity.
	AccessRole string `json:"accessRole,omitempty"`
	// CreationDateTime: Output only. Time invitation was created. This field is
	// read-only. The format is "YYYY-MM-DD HH:MM:SS". Examples: "2018-03-05
	// 09:15:00" or "2018-02-01 14:34:30"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// EmailAddress: Immutable. Email address the invitation was sent to. This can
	// differ from the email address of the account that accepts the invite.
	EmailAddress string `json:"emailAddress,omitempty"`
	// InvitationId: Output only. The ID of the invitation. This field is
	// read-only.
	InvitationId int64 `json:"invitationId,omitempty,string"`
	// InvitationStatus: Output only. Invitation status of the user.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The initial state of an invitation, before being acted upon by
	// anyone.
	//   "DECLINED" - Invitation process was terminated by the email recipient. No
	// new user was created.
	//   "EXPIRED" - Invitation URLs expired without being acted upon. No new user
	// can be created. Invitations expire 20 days after creation.
	InvitationStatus string `json:"invitationStatus,omitempty"`
	// ResourceName: Immutable. Name of the resource. Resource names have the form:
	// `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessRole") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessRole") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__CustomizerAttribute: A customizer
// attribute. Use CustomerCustomizer, CampaignCustomizer, AdGroupCustomizer, or
// AdGroupCriterionCustomizer to associate a customizer attribute and set its
// value at the customer, campaign, ad group, or ad group criterion level,
// respectively.
type GoogleAdsSearchads360V23Resources__CustomizerAttribute struct {
	// Id: Output only. The ID of the customizer attribute.
	Id int64 `json:"id,omitempty,string"`
	// Name: Required. Immutable. Name of the customizer attribute. Required. It
	// must have a minimum length of 1 and maximum length of 40. Name of an enabled
	// customizer attribute must be unique (case insensitive).
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the customizer attribute.
	// Customizer Attribute resource names have the form:
	// `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the customizer attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "ENABLED" - The customizer attribute is enabled.
	//   "REMOVED" - The customizer attribute is removed.
	Status string `json:"status,omitempty"`
	// Type: Immutable. The type of the customizer attribute.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version.
	//   "TEXT" - Text customizer.
	//   "NUMBER" - Number customizer.
	//   "PRICE" - Price customizer consisting of a number and a currency.
	//   "PERCENT" - Percentage customizer consisting of a number and a '%'.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__CustomizerAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__CustomizerAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DataLink: Represents the data sharing
// connection between
type GoogleAdsSearchads360V23Resources__DataLink struct {
	// DataLinkId: Output only. The ID of the data link. This field is read only.
	DataLinkId int64 `json:"dataLinkId,omitempty,string"`
	// ProductLinkId: Output only. The ID of the link. This field is read only.
	ProductLinkId int64 `json:"productLinkId,omitempty,string"`
	// ResourceName: Immutable. Resource name of the product data link. DataLink
	// resource names have the form: `
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the data link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "REQUESTED" - Link has been requested by one party, but not confirmed by
	// the other party.
	//   "PENDING_APPROVAL" - Link is waiting for the customer to approve.
	//   "ENABLED" - Link is established and can be used as needed.
	//   "DISABLED" - Link is no longer valid and should be ignored.
	//   "REVOKED" - Link request has been cancelled by the requester and further
	// cleanup may be needed.
	//   "REJECTED" - Link request has been rejected by the approver.
	Status string `json:"status,omitempty"`
	// Type: Output only. The type of the data.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "VIDEO" - A data link to YouTube video.
	Type string `json:"type,omitempty"`
	// YoutubeVideo: Immutable. A data link to YouTube video.
	YoutubeVideo *GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataLinkId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataLinkId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DataLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DataLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DataPartnerIdentifier: The identifier for
// Data Partner account.
type GoogleAdsSearchads360V23Resources__DataPartnerIdentifier struct {
	// DataPartnerId: Immutable. The customer ID of the Data partner account. This
	// field is required and should not be empty when creating a new data partner
	// link. It is unable to be modified after the creation of the link.
	DataPartnerId int64 `json:"dataPartnerId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DataPartnerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataPartnerId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DataPartnerIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DataPartnerIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView: A
// detail content suitability placement view.
type GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView struct {
	// DisplayName: Output only. The display name is URL for websites, YouTube
	// video name for YouTube videos, and translated mobile app name for mobile
	// apps.
	DisplayName string `json:"displayName,omitempty"`
	// Placement: Output only. The automatic placement string at detail level, for
	// example. website url, mobile application id, or a YouTube video id.
	Placement string `json:"placement,omitempty"`
	// PlacementType: Output only. Represents the type of the placement, for
	// example, Website, YouTubeVideo and MobileApplication.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBSITE" - Websites(for example, 'www.flowers4sale.com').
	//   "MOBILE_APP_CATEGORY" - Mobile application categories(for example,
	// 'Games').
	//   "MOBILE_APPLICATION" - mobile applications(for example,
	// 'mobileapp::2-com.whatsthewordanswers').
	//   "YOUTUBE_VIDEO" - YouTube videos(for example,
	// 'youtube.com/video/wtLJPvx7-ys').
	//   "YOUTUBE_CHANNEL" - YouTube channels(for example,
	// 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
	//   "GOOGLE_PRODUCTS" - Surfaces owned and operated by Google(for example,
	// 'tv.google.com').
	PlacementType string `json:"placementType,omitempty"`
	// ResourceName: Output only. The resource name of the detail content
	// suitability placement view. Detail content suitability placement view
	// resource names have the form:
	// `customers/{customer_id}/detailContentSuitabilityPlacementViews/{placement_fi
	// ngerprint}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetUrl: Output only. URL of the placement, for example, website, link to
	// the mobile application in app store, or a YouTube video URL.
	TargetUrl string `json:"targetUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DetailPlacementView: A view with metrics
// aggregated by ad group and URL or YouTube video. This view primarily
// surfaces placement data from the Google Display Network. While you can
// select segments like `segments.ad_network_type`, this view generally does
// not include placement data from other networks, such as the Search Partners
// network. To understand performance on Search Partners, consider other
// reports and segmentations.
type GoogleAdsSearchads360V23Resources__DetailPlacementView struct {
	// DisplayName: Output only. The display name is URL name for websites, YouTube
	// video name for YouTube videos, and translated mobile app name for mobile
	// apps.
	DisplayName string `json:"displayName,omitempty"`
	// GroupPlacementTargetUrl: Output only. URL of the group placement, for
	// example, domain, link to the mobile application in app store, or a YouTube
	// channel URL.
	GroupPlacementTargetUrl string `json:"groupPlacementTargetUrl,omitempty"`
	// Placement: Output only. The automatic placement string at detail level, e.
	// g. website URL, mobile application ID, or a YouTube video ID.
	Placement string `json:"placement,omitempty"`
	// PlacementType: Output only. Type of the placement, for example, Website,
	// YouTube Video, and Mobile Application.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBSITE" - Websites(for example, 'www.flowers4sale.com').
	//   "MOBILE_APP_CATEGORY" - Mobile application categories(for example,
	// 'Games').
	//   "MOBILE_APPLICATION" - mobile applications(for example,
	// 'mobileapp::2-com.whatsthewordanswers').
	//   "YOUTUBE_VIDEO" - YouTube videos(for example,
	// 'youtube.com/video/wtLJPvx7-ys').
	//   "YOUTUBE_CHANNEL" - YouTube channels(for example,
	// 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
	//   "GOOGLE_PRODUCTS" - Surfaces owned and operated by Google(for example,
	// 'tv.google.com').
	PlacementType string `json:"placementType,omitempty"`
	// ResourceName: Output only. The resource name of the detail placement view.
	// Detail placement view resource names have the form:
	// `customers/{customer_id}/detailPlacementViews/{ad_group_id}~{base64_placement
	// }`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetUrl: Output only. URL of the placement, for example, website, link to
	// the mobile application in app store, or a YouTube video URL.
	TargetUrl string `json:"targetUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DetailPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DetailPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DetailedDemographic: A detailed
// demographic: a particular interest-based vertical to be targeted to reach
// users based on long-term life facts.
type GoogleAdsSearchads360V23Resources__DetailedDemographic struct {
	// Availabilities: Output only. Availability information of the detailed
	// demographic.
	Availabilities []*GoogleAdsSearchads360V23Common__CriterionCategoryAvailability `json:"availabilities,omitempty"`
	// Id: Output only. The ID of the detailed demographic.
	Id int64 `json:"id,omitempty,string"`
	// LaunchedToAll: Output only. True if the detailed demographic is launched to
	// all channels and locales.
	LaunchedToAll bool `json:"launchedToAll,omitempty"`
	// Name: Output only. The name of the detailed demographic. For
	// example,"Highest Level of Educational Attainment"
	Name string `json:"name,omitempty"`
	// Parent: Output only. The parent of the detailed_demographic.
	Parent string `json:"parent,omitempty"`
	// ResourceName: Output only. The resource name of the detailed demographic.
	// Detailed demographic resource names have the form:
	// `customers/{customer_id}/detailedDemographics/{detailed_demographic_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Availabilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Availabilities") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DetailedDemographic) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DetailedDemographic
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DisplayKeywordView: A display keyword
// view. Provides performance data for keywords used in Display Network
// campaigns. This view lets you analyze how your display keywords are
// performing across various segments. This view is primarily used to track the
// effectiveness of keyword targeting within your Display campaigns. To
// understand which network the metrics apply to, you can select the
// `segments.ad_network_type` field in your query. This field will segment the
// data by networks such as the Google Display Network, YouTube, Gmail, and so
// on. You can select fields from this resource along with metrics like
// impressions, clicks, and conversions to gauge performance. Attributed
// resources like `ad_group` and `campaign` can also be selected without
// segmenting metrics.
type GoogleAdsSearchads360V23Resources__DisplayKeywordView struct {
	// ResourceName: Output only. The resource name of the display keyword view.
	// Display Keyword view resource names have the form:
	// `customers/{customer_id}/displayKeywordViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DisplayKeywordView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DisplayKeywordView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DistanceView: A distance view with
// metrics aggregated by the user's distance from an advertiser's location
// extensions. Each DistanceBucket includes all impressions that fall within
// its distance and a single impression will contribute to the metrics for all
// DistanceBuckets that include the user's distance.
type GoogleAdsSearchads360V23Resources__DistanceView struct {
	// DistanceBucket: Output only. Grouping of user distance from location
	// extensions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WITHIN_700M" - User was within 700m of the location.
	//   "WITHIN_1KM" - User was within 1KM of the location.
	//   "WITHIN_5KM" - User was within 5KM of the location.
	//   "WITHIN_10KM" - User was within 10KM of the location.
	//   "WITHIN_15KM" - User was within 15KM of the location.
	//   "WITHIN_20KM" - User was within 20KM of the location.
	//   "WITHIN_25KM" - User was within 25KM of the location.
	//   "WITHIN_30KM" - User was within 30KM of the location.
	//   "WITHIN_35KM" - User was within 35KM of the location.
	//   "WITHIN_40KM" - User was within 40KM of the location.
	//   "WITHIN_45KM" - User was within 45KM of the location.
	//   "WITHIN_50KM" - User was within 50KM of the location.
	//   "WITHIN_55KM" - User was within 55KM of the location.
	//   "WITHIN_60KM" - User was within 60KM of the location.
	//   "WITHIN_65KM" - User was within 65KM of the location.
	//   "BEYOND_65KM" - User was beyond 65KM of the location.
	//   "WITHIN_0_7MILES" - User was within 0.7 miles of the location.
	//   "WITHIN_1MILE" - User was within 1 mile of the location.
	//   "WITHIN_5MILES" - User was within 5 miles of the location.
	//   "WITHIN_10MILES" - User was within 10 miles of the location.
	//   "WITHIN_15MILES" - User was within 15 miles of the location.
	//   "WITHIN_20MILES" - User was within 20 miles of the location.
	//   "WITHIN_25MILES" - User was within 25 miles of the location.
	//   "WITHIN_30MILES" - User was within 30 miles of the location.
	//   "WITHIN_35MILES" - User was within 35 miles of the location.
	//   "WITHIN_40MILES" - User was within 40 miles of the location.
	//   "BEYOND_40MILES" - User was beyond 40 miles of the location.
	DistanceBucket string `json:"distanceBucket,omitempty"`
	// MetricSystem: Output only. True if the DistanceBucket is using the metric
	// system, false otherwise.
	MetricSystem bool `json:"metricSystem,omitempty"`
	// ResourceName: Output only. The resource name of the distance view. Distance
	// view resource names have the form:
	// `customers/{customer_id}/distanceViews/1~{distance_bucket}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DistanceBucket") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DistanceBucket") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DistanceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DistanceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting:
// DoubleClick Campaign Manager (DCM) setting for a manager customer.
type GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting struct {
	// AdvertiserId: Output only. ID of the Campaign Manager advertiser associated
	// with this customer.
	AdvertiserId int64 `json:"advertiserId,omitempty,string"`
	// NetworkId: Output only. ID of the Campaign Manager network associated with
	// this customer.
	NetworkId int64 `json:"networkId,omitempty,string"`
	// TimeZone: Output only. Time zone of the Campaign Manager network associated
	// with this customer in IANA Time Zone Database format, such as
	// America/New_York.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertiserId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertiserId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DoubleClickCampaignManagerSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView: A dynamic
// search ads search term view.
type GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView struct {
	// HasMatchingKeyword: Output only. True if query is added to targeted
	// keywords. This field is read-only.
	HasMatchingKeyword bool `json:"hasMatchingKeyword,omitempty"`
	// HasNegativeKeyword: Output only. True if query matches a negative keyword.
	// This field is read-only.
	HasNegativeKeyword bool `json:"hasNegativeKeyword,omitempty"`
	// HasNegativeUrl: Output only. True if query matches a negative url. This
	// field is read-only.
	HasNegativeUrl bool `json:"hasNegativeUrl,omitempty"`
	// Headline: Output only. The dynamically generated headline of the Dynamic
	// Search Ad. This field is read-only.
	Headline string `json:"headline,omitempty"`
	// LandingPage: Output only. The dynamically selected landing page URL of the
	// impression. This field is read-only.
	LandingPage string `json:"landingPage,omitempty"`
	// PageUrl: Output only. The URL of page feed item served for the impression.
	// This field is read-only.
	PageUrl string `json:"pageUrl,omitempty"`
	// ResourceName: Output only. The resource name of the dynamic search ads
	// search term view. Dynamic search ads search term view resource names have
	// the form:
	// `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{searc
	// h_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_u
	// rl_fingerprint}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. Search term This field is read-only.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HasMatchingKeyword") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HasMatchingKeyword") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ExpandedLandingPageView: A landing page
// view with metrics aggregated at the expanded final URL level.
type GoogleAdsSearchads360V23Resources__ExpandedLandingPageView struct {
	// ExpandedFinalUrl: Output only. The final URL that clicks are directed to.
	ExpandedFinalUrl string `json:"expandedFinalUrl,omitempty"`
	// ResourceName: Output only. The resource name of the expanded landing page
	// view. Expanded landing page view resource names have the form:
	// `customers/{customer_id}/expandedLandingPageViews/{expanded_final_url_fingerp
	// rint}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpandedFinalUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpandedFinalUrl") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ExpandedLandingPageView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ExpandedLandingPageView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Experiment: A Google ads experiment for
// users to experiment changes on multiple campaigns, compare the performance,
// and apply the effective changes.
type GoogleAdsSearchads360V23Resources__Experiment struct {
	// Description: The description of the experiment. It must have a minimum
	// length of 1 and maximum length of 2048.
	Description string `json:"description,omitempty"`
	// EndDate: Date when the experiment ends. By default, the experiment ends on
	// the campaign's end date. If this field is set, then the experiment ends at
	// the end of the specified date in the customer's time zone. Format:
	// YYYY-MM-DD Example: 2019-04-18
	EndDate string `json:"endDate,omitempty"`
	// ExperimentId: Output only. The ID of the experiment. Read only.
	ExperimentId int64 `json:"experimentId,omitempty,string"`
	// Goals: The goals of this experiment.
	Goals []*GoogleAdsSearchads360V23Common__MetricGoal `json:"goals,omitempty"`
	// LongRunningOperation: Output only. The resource name of the long-running
	// operation that can be used to poll for completion of experiment schedule or
	// promote. The most recent long running operation is returned.
	LongRunningOperation string `json:"longRunningOperation,omitempty"`
	// Name: Required. The name of the experiment. It must have a minimum length of
	// 1 and maximum length of 1024. It must be unique under a customer.
	Name string `json:"name,omitempty"`
	// PromoteStatus: Output only. The status of the experiment promotion process.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "NOT_STARTED" - Action has not started.
	//   "IN_PROGRESS" - Action is in progress.
	//   "COMPLETED" - Action has completed successfully.
	//   "FAILED" - Action has failed.
	//   "COMPLETED_WITH_WARNING" - Action has completed successfully with
	// warnings.
	PromoteStatus string `json:"promoteStatus,omitempty"`
	// ResourceName: Immutable. The resource name of the experiment. Experiment
	// resource names have the form:
	// `customers/{customer_id}/experiments/{experiment_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// StartDate: Date when the experiment starts. By default, the experiment
	// starts now or on the campaign's start date, whichever is later. If this
	// field is set, then the experiment starts at the beginning of the specified
	// date in the customer's time zone. Format: YYYY-MM-DD Example: 2019-03-14
	StartDate string `json:"startDate,omitempty"`
	// Status: The Advertiser-chosen status of this experiment.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ENABLED" - The experiment is enabled.
	//   "REMOVED" - The experiment has been removed.
	//   "HALTED" - The experiment has been halted. This status can be set from
	// ENABLED status through API.
	//   "PROMOTED" - The experiment will be promoted out of experimental status.
	//   "SETUP" - Initial status of the experiment.
	//   "INITIATED" - The experiment's campaigns are pending materialization. This
	// status can be set from SETUP status through API.
	//   "GRADUATED" - The experiment has been graduated.
	Status string `json:"status,omitempty"`
	// Suffix: For system managed experiments, the advertiser must provide a suffix
	// during construction, in the setup stage before moving to initiated. The
	// suffix will be appended to the in-design and experiment campaign names so
	// that the name is base campaign name + suffix.
	Suffix string `json:"suffix,omitempty"`
	// SyncEnabled: Immutable. Set to true if changes to base campaigns should be
	// synced to the trial campaigns. Any changes made directly to trial campaigns
	// will be preserved. This field can only be set when the experiment is being
	// created.
	SyncEnabled bool `json:"syncEnabled,omitempty"`
	// Type: Required. The product/feature that uses this experiment.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "DISPLAY_AND_VIDEO_360" - This is a DISPLAY_AND_VIDEO_360 experiment.
	//   "AD_VARIATION" - This is an ad variation experiment.
	//   "YOUTUBE_CUSTOM" - A custom experiment consisting of Video campaigns.
	//   "DISPLAY_CUSTOM" - A custom experiment consisting of display campaigns.
	//   "SEARCH_CUSTOM" - A custom experiment consisting of search campaigns.
	//   "DISPLAY_AUTOMATED_BIDDING_STRATEGY" - An experiment that compares bidding
	// strategies for display campaigns.
	//   "SEARCH_AUTOMATED_BIDDING_STRATEGY" - An experiment that compares bidding
	// strategies for search campaigns."
	//   "SHOPPING_AUTOMATED_BIDDING_STRATEGY" - An experiment that compares
	// bidding strategies for shopping campaigns.
	//   "SMART_MATCHING" - DEPRECATED. A smart matching experiment with search
	// campaigns.
	//   "HOTEL_CUSTOM" - A custom experiment consisting of hotel campaigns.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Experiment) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Experiment
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ExperimentArm: A Google ads experiment
// for users to experiment changes on multiple campaigns, compare the
// performance, and apply the effective changes.
type GoogleAdsSearchads360V23Resources__ExperimentArm struct {
	// AssetGroups: List of asset groups in the experiment arm.
	AssetGroups []*GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo `json:"assetGroups,omitempty"`
	// Campaigns: List of campaigns in the trial arm. The max length is one.
	Campaigns []string `json:"campaigns,omitempty"`
	// Control: Whether this arm is a control arm. A control arm is the arm against
	// which the other arms are compared.
	Control bool `json:"control,omitempty"`
	// Experiment: Immutable. The experiment to which the ExperimentArm belongs.
	Experiment string `json:"experiment,omitempty"`
	// InDesignCampaigns: Output only. The in design campaigns in the treatment
	// experiment arm.
	InDesignCampaigns []string `json:"inDesignCampaigns,omitempty"`
	// Name: Required. The name of the experiment arm. It must have a minimum
	// length of 1 and maximum length of 1024. It must be unique under an
	// experiment.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the experiment arm. Experiment
	// arm resource names have the form:
	// `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_a
	// rm_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TrafficSplit: Traffic split of the trial arm. The value should be between 1
	// and 100 and must total 100 between the two trial arms.
	TrafficSplit int64 `json:"trafficSplit,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AssetGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroups") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ExperimentArm) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ExperimentArm
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Fellowship: Details about the employee's
// medical Fellowship. Fellowship is a period of medical training that the
// professional undertakes after finishing their residency.
type GoogleAdsSearchads360V23Resources__Fellowship struct {
	// CompletionYear: Output only. Year of completion.
	CompletionYear int64 `json:"completionYear,omitempty"`
	// InstitutionName: Output only. Name of the instutition at which the
	// fellowship was completed.
	InstitutionName string `json:"institutionName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletionYear") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletionYear") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Fellowship) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Fellowship
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView:
// FinalUrlExpansionAssetView Resource.
type GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView struct {
	// AdGroup: Output only. Ad Group in which FinalUrlExpansionAsset served.
	AdGroup string `json:"adGroup,omitempty"`
	// Asset: Output only. The ID of the asset.
	Asset string `json:"asset,omitempty"`
	// AssetGroup: Output only. Asset Group in which FinalUrlExpansionAsset served.
	AssetGroup string `json:"assetGroup,omitempty"`
	// Campaign: Output only. Campaign in which the asset served.
	Campaign string `json:"campaign,omitempty"`
	// FieldType: Output only. The field type of the asset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// FinalUrl: Output only. Final URL of the FinalUrlExpansionAsset.
	FinalUrl string `json:"finalUrl,omitempty"`
	// ResourceName: Output only. The resource name of the FinalUrlExpansionAsset.
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the FinalUrlExpansionAsset.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Asset link is enabled.
	//   "REMOVED" - Asset link has been removed.
	//   "PAUSED" - Asset link is paused.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GenderView: A gender view. The
// gender_view resource reflects the effective serving state, rather than what
// criteria were added. An ad group without gender criteria by default shows to
// all genders, so all genders appear in gender_view with stats.
type GoogleAdsSearchads360V23Resources__GenderView struct {
	// ResourceName: Output only. The resource name of the gender view. Gender view
	// resource names have the form:
	// `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GenderView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GenderView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GeoTargetConstant: A geo target constant.
type GoogleAdsSearchads360V23Resources__GeoTargetConstant struct {
	// CanonicalName: Output only. The fully qualified English name, consisting of
	// the target's name and that of its parent and country.
	CanonicalName string `json:"canonicalName,omitempty"`
	// CountryCode: Output only. The ISO-3166-1 alpha-2 country code that is
	// associated with the target.
	CountryCode string `json:"countryCode,omitempty"`
	// Id: Output only. The ID of the geo target constant.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. Geo target constant English name.
	Name string `json:"name,omitempty"`
	// ParentGeoTarget: Output only. The resource name of the parent geo target
	// constant. Geo target constant resource names have the form:
	// `geoTargetConstants/{parent_geo_target_constant_id}`
	ParentGeoTarget string `json:"parentGeoTarget,omitempty"`
	// ResourceName: Output only. The resource name of the geo target constant. Geo
	// target constant resource names have the form:
	// `geoTargetConstants/{geo_target_constant_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Geo target constant status.
	//
	// Possible values:
	//   "UNSPECIFIED" - No value has been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ENABLED" - The geo target constant is valid.
	//   "REMOVAL_PLANNED" - The geo target constant is obsolete and will be
	// removed.
	Status string `json:"status,omitempty"`
	// TargetType: Output only. Geo target constant target type.
	TargetType string `json:"targetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CanonicalName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CanonicalName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GeoTargetConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GeoTargetConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GeographicView: A geographic view.
// Geographic View includes all metrics aggregated at the country level, one
// row per country. It reports metrics at either actual physical location of
// the user or an area of interest. If other segment fields are used, you may
// get more than one row per country.
type GoogleAdsSearchads360V23Resources__GeographicView struct {
	// CountryCriterionId: Output only. Criterion Id for the country.
	CountryCriterionId int64 `json:"countryCriterionId,omitempty,string"`
	// LocationType: Output only. Type of the geo targeting of the campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AREA_OF_INTEREST" - Location the user is interested in while making the
	// query.
	//   "LOCATION_OF_PRESENCE" - Location of the user issuing the query.
	LocationType string `json:"locationType,omitempty"`
	// ResourceName: Output only. The resource name of the geographic view.
	// Geographic view resource names have the form:
	// `customers/{customer_id}/geographicViews/{country_criterion_id}~{location_typ
	// e}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCriterionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCriterionId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GeographicView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GeographicView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Goal: Representation of goals.
type GoogleAdsSearchads360V23Resources__Goal struct {
	// GoalId: Output only. The ID of this goal.
	GoalId int64 `json:"goalId,omitempty,string"`
	// GoalType: Output only. The type of this goal.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CUSTOMER_RETENTION" - Retention goal, which allows advertisers to
	// optimize campaigns to win back lapsed customers.
	// (https://support.google.com/google-ads/answer/14792043?hl=en)
	GoalType string `json:"goalType,omitempty"`
	// OptimizationEligibility: Output only. Indicates if this goal is eligible for
	// campaign optimization.
	//
	// Possible values:
	//   "UNSPECIFIED" - The goal optimization status has not been specified.
	//   "UNKNOWN" - The goal optimization status is not known in this version.
	//   "ELIGIBLE" - The goal is eligible for campaign optimization.
	//   "INELIGIBLE" - The goal is not eligible for campaign optimization.
	OptimizationEligibility string `json:"optimizationEligibility,omitempty"`
	// OwnerCustomer: Output only. The resource name of the goal owner customer.
	OwnerCustomer string `json:"ownerCustomer,omitempty"`
	// ResourceName: Immutable. The resource name of the goal. Goal resource names
	// have the form: `customers/{customer_id}/goals/{goal_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// RetentionGoalSettings: Retention goal settings.
	RetentionGoalSettings *GoogleAdsSearchads360V23CommonGoalSettingRetentionGoal `json:"retentionGoalSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoalId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoalId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Goal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Goal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier: The identifier for
// Google Ads account.
type GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier struct {
	// Customer: Immutable. The resource name of the Google Ads account. This field
	// is required and should not be empty when creating a new Google Ads link. It
	// is unable to be modified after the creation of the link.
	Customer string `json:"customer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Customer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Customer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GranularInsuranceStatus: Insurance status
// at geo + vertical level.
type GoogleAdsSearchads360V23Resources__GranularInsuranceStatus struct {
	// CategoryId: Output only. Service category associated with the status. For
	// example, xcat:service_area_business_plumber. For more details see:
	// https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids
	CategoryId string `json:"categoryId,omitempty"`
	// GeoCriterionId: Output only. Geotarget criterion ID associated with the
	// status. Can be on country or state/province geo level, depending on
	// requirements and location. See
	// https://developers.google.com/google-ads/api/data/geotargets for more
	// information.
	GeoCriterionId int64 `json:"geoCriterionId,omitempty,string"`
	// VerificationStatus: Output only. Granular insurance status, per geo +
	// vertical.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown verification status.
	//   "NEEDS_REVIEW" - Verification has started, but has not finished.
	//   "FAILED" - Verification has failed.
	//   "PASSED" - Verification has passed.
	//   "NOT_APPLICABLE" - Verification is not applicable.
	//   "NO_SUBMISSION" - Verification is required but pending submission.
	//   "PARTIAL_SUBMISSION" - Not all required verification has been submitted.
	//   "PENDING_ESCALATION" - Verification needs review by Local Services Ads Ops
	// Specialist.
	VerificationStatus string `json:"verificationStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GranularInsuranceStatus) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GranularInsuranceStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GranularLicenseStatus: License status at
// geo + vertical level.
type GoogleAdsSearchads360V23Resources__GranularLicenseStatus struct {
	// CategoryId: Output only. Service category associated with the status. For
	// example, xcat:service_area_business_plumber. For more details see:
	// https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids
	CategoryId string `json:"categoryId,omitempty"`
	// GeoCriterionId: Output only. Geotarget criterion ID associated with the
	// status. Can be on country or state/province geo level, depending on
	// requirements and location. See
	// https://developers.google.com/google-ads/api/data/geotargets for more
	// information.
	GeoCriterionId int64 `json:"geoCriterionId,omitempty,string"`
	// VerificationStatus: Output only. Granular license status, per geo +
	// vertical.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown verification status.
	//   "NEEDS_REVIEW" - Verification has started, but has not finished.
	//   "FAILED" - Verification has failed.
	//   "PASSED" - Verification has passed.
	//   "NOT_APPLICABLE" - Verification is not applicable.
	//   "NO_SUBMISSION" - Verification is required but pending submission.
	//   "PARTIAL_SUBMISSION" - Not all required verification has been submitted.
	//   "PENDING_ESCALATION" - Verification needs review by Local Services Ads Ops
	// Specialist.
	VerificationStatus string `json:"verificationStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GranularLicenseStatus) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GranularLicenseStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView: A
// group content suitability placement view.
type GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView struct {
	// DisplayName: Output only. The display name is URL for websites, YouTube
	// video name for YouTube videos, and translated mobile app name for mobile
	// apps.
	DisplayName string `json:"displayName,omitempty"`
	// Placement: Output only. The automatic placement string at group level, for
	// example. website url, mobile application id, or a YouTube video id.
	Placement string `json:"placement,omitempty"`
	// PlacementType: Output only. Represents the type of the placement, for
	// example, Website, YouTubeVideo and MobileApplication.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBSITE" - Websites(for example, 'www.flowers4sale.com').
	//   "MOBILE_APP_CATEGORY" - Mobile application categories(for example,
	// 'Games').
	//   "MOBILE_APPLICATION" - mobile applications(for example,
	// 'mobileapp::2-com.whatsthewordanswers').
	//   "YOUTUBE_VIDEO" - YouTube videos(for example,
	// 'youtube.com/video/wtLJPvx7-ys').
	//   "YOUTUBE_CHANNEL" - YouTube channels(for example,
	// 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
	//   "GOOGLE_PRODUCTS" - Surfaces owned and operated by Google(for example,
	// 'tv.google.com').
	PlacementType string `json:"placementType,omitempty"`
	// ResourceName: Output only. The resource name of the group content
	// suitability placement view. Group content suitability placement view
	// resource names have the form:
	// `customers/{customer_id}/groupContentSuitabilityPlacementViews/{placement_fin
	// gerprint}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetUrl: Output only. URL of the placement, for example, website, link to
	// the mobile application in app store, or a YouTube video URL.
	TargetUrl string `json:"targetUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__GroupPlacementView: A group placement
// view.
type GoogleAdsSearchads360V23Resources__GroupPlacementView struct {
	// DisplayName: Output only. Domain name for websites and YouTube channel name
	// for YouTube channels.
	DisplayName string `json:"displayName,omitempty"`
	// Placement: Output only. The automatic placement string at group level, e. g.
	// web domain, mobile app ID, or a YouTube channel ID.
	Placement string `json:"placement,omitempty"`
	// PlacementType: Output only. Type of the placement, for example, Website,
	// YouTube Channel, Mobile Application.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBSITE" - Websites(for example, 'www.flowers4sale.com').
	//   "MOBILE_APP_CATEGORY" - Mobile application categories(for example,
	// 'Games').
	//   "MOBILE_APPLICATION" - mobile applications(for example,
	// 'mobileapp::2-com.whatsthewordanswers').
	//   "YOUTUBE_VIDEO" - YouTube videos(for example,
	// 'youtube.com/video/wtLJPvx7-ys').
	//   "YOUTUBE_CHANNEL" - YouTube channels(for example,
	// 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
	//   "GOOGLE_PRODUCTS" - Surfaces owned and operated by Google(for example,
	// 'tv.google.com').
	PlacementType string `json:"placementType,omitempty"`
	// ResourceName: Output only. The resource name of the group placement view.
	// Group placement view resource names have the form:
	// `customers/{customer_id}/groupPlacementViews/{ad_group_id}~{base64_placement}
	// `
	ResourceName string `json:"resourceName,omitempty"`
	// TargetUrl: Output only. URL of the group placement, for example, domain,
	// link to the mobile application in app store, or a YouTube channel URL.
	TargetUrl string `json:"targetUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__GroupPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__GroupPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier: The
// identifier for Hotel account.
type GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier struct {
	// HotelCenterId: Output only. The hotel center id of the hotel account. This
	// field is read only
	HotelCenterId int64 `json:"hotelCenterId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "HotelCenterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HotelCenterId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__HotelGroupView: A hotel group view.
type GoogleAdsSearchads360V23Resources__HotelGroupView struct {
	// ResourceName: Output only. The resource name of the hotel group view. Hotel
	// Group view resource names have the form:
	// `customers/{customer_id}/hotelGroupViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__HotelGroupView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__HotelGroupView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__HotelPerformanceView: A hotel performance
// view.
type GoogleAdsSearchads360V23Resources__HotelPerformanceView struct {
	// ResourceName: Output only. The resource name of the hotel performance view.
	// Hotel performance view resource names have the form:
	// `customers/{customer_id}/hotelPerformanceView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__HotelPerformanceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__HotelPerformanceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__HotelReconciliation: A hotel
// reconciliation. It contains conversion information from Hotel bookings to
// reconcile with advertiser records. These rows may be updated or canceled
// before billing through Bulk Uploads.
type GoogleAdsSearchads360V23Resources__HotelReconciliation struct {
	// Billed: Output only. Whether a given booking has been billed. Once billed, a
	// booking can't be modified.
	Billed bool `json:"billed,omitempty"`
	// Campaign: Output only. The resource name for the Campaign associated with
	// the conversion.
	Campaign string `json:"campaign,omitempty"`
	// CheckInDate: Output only. Check-in date recorded when the booking is made.
	// If the check-in date is modified at reconciliation, the revised date will
	// then take the place of the original date in this column. Format is
	// YYYY-MM-DD.
	CheckInDate string `json:"checkInDate,omitempty"`
	// CheckOutDate: Output only. Check-out date recorded when the booking is made.
	// If the check-in date is modified at reconciliation, the revised date will
	// then take the place of the original date in this column. Format is
	// YYYY-MM-DD.
	CheckOutDate string `json:"checkOutDate,omitempty"`
	// CommissionId: Required. Output only. The commission ID is Google's ID for
	// this booking. Every booking event is assigned a Commission ID to help you
	// match it to a guest stay.
	CommissionId string `json:"commissionId,omitempty"`
	// HotelCenterId: Output only. Identifier for the Hotel Center account which
	// provides the rates for the Hotel campaign.
	HotelCenterId int64 `json:"hotelCenterId,omitempty,string"`
	// HotelId: Output only. Unique identifier for the booked property, as provided
	// in the Hotel Center feed. The hotel ID comes from the 'ID' parameter of the
	// conversion tracking tag.
	HotelId string `json:"hotelId,omitempty"`
	// OrderId: Output only. The order ID is the identifier for this booking as
	// provided in the 'transaction_id' parameter of the conversion tracking tag.
	OrderId string `json:"orderId,omitempty"`
	// ReconciledValueMicros: Required. Output only. Reconciled value is the final
	// value of a booking as paid by the guest. If original booking value changes
	// for any reason, such as itinerary changes or room upsells, the reconciled
	// value should be the full final amount collected. If a booking is canceled,
	// the reconciled value should include the value of any cancellation fees or
	// non-refundable nights charged. Value is in millionths of the base unit
	// currency. For example, $12.35 would be represented as 12350000. Currency
	// unit is in the default customer currency.
	ReconciledValueMicros int64 `json:"reconciledValueMicros,omitempty,string"`
	// ResourceName: Immutable. The resource name of the hotel reconciliation.
	// Hotel reconciliation resource names have the form:
	// `customers/{customer_id}/hotelReconciliations/{commission_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Required. Output only. Current status of a booking with regards to
	// reconciliation and billing. Bookings should be reconciled within 45 days
	// after the check-out date. Any booking not reconciled within 45 days will be
	// billed at its original value.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "RESERVATION_ENABLED" - Bookings are for a future date, or a stay is
	// underway but the check-out date hasn't passed. An active reservation can't
	// be reconciled.
	//   "RECONCILIATION_NEEDED" - Check-out has already taken place, or the booked
	// dates have passed without cancellation. Bookings that are not reconciled
	// within 45 days of the check-out date are billed based on the original
	// booking price.
	//   "RECONCILED" - These bookings have been reconciled. Reconciled bookings
	// are billed 45 days after the check-out date.
	//   "CANCELED" - This booking was marked as canceled. Canceled stays with a
	// value greater than zero (due to minimum stay rules or cancellation fees) are
	// billed 45 days after the check-out date.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Billed") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Billed") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__HotelReconciliation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__HotelReconciliation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__IncomeRangeView: An income range view.
type GoogleAdsSearchads360V23Resources__IncomeRangeView struct {
	// ResourceName: Output only. The resource name of the income range view.
	// Income range view resource names have the form:
	// `customers/{customer_id}/incomeRangeViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__IncomeRangeView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__IncomeRangeView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact: specific
// to a local services insurance.
type GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact struct {
	// AmountMicros: Output only. Insurance amount. This is measured in "micros" of
	// the currency mentioned in the insurance document.
	AmountMicros int64 `json:"amountMicros,omitempty,string"`
	// ExpirationDateTime: Output only. The timestamp when this insurance expires.
	// The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone.
	// Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	ExpirationDateTime string `json:"expirationDateTime,omitempty"`
	// InsuranceDocumentReadonly: Output only. The readonly field containing the
	// information for an uploaded insurance document.
	InsuranceDocumentReadonly *GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly `json:"insuranceDocumentReadonly,omitempty"`
	// RejectionReason: Output only. Insurance document's rejection reason.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_NAME_MISMATCH" - Business name doesn't match business name for
	// the Local Services Ad.
	//   "INSURANCE_AMOUNT_INSUFFICIENT" - Insurance amount doesn't meet
	// requirement listed in the legal summaries documentation for that geographic
	// + category ID combination.
	//   "EXPIRED" - Insurance document is expired.
	//   "NO_SIGNATURE" - Insurance document is missing a signature.
	//   "NO_POLICY_NUMBER" - Insurance document is missing a policy number.
	//   "NO_COMMERCIAL_GENERAL_LIABILITY" - Commercial General Liability(CGL) box
	// is not marked in the insurance document.
	//   "EDITABLE_FORMAT" - Insurance document is in an editable format.
	//   "CATEGORY_MISMATCH" - Insurance document does not cover insurance for a
	// particular category.
	//   "MISSING_EXPIRATION_DATE" - Insurance document is missing an expiration
	// date.
	//   "POOR_QUALITY" - Insurance document is poor quality - blurry images,
	// illegible, etc...
	//   "POTENTIALLY_EDITED" - Insurance document is suspected of being edited.
	//   "WRONG_DOCUMENT_TYPE" - Insurance document not accepted. For example,
	// documents of insurance proposals, but missing coverages are not accepted.
	//   "NON_FINAL" - Insurance document is not final.
	//   "OTHER" - Insurance document has another flaw not listed explicitly.
	RejectionReason string `json:"rejectionReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmountMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Invoice: An invoice. All invoice
// information is snapshotted to match the PDF invoice. For invoices older than
// the launch of InvoiceService, the snapshotted information may not match the
// PDF invoice.
type GoogleAdsSearchads360V23Resources__Invoice struct {
	// AccountBudgetSummaries: Output only. The list of summarized account budget
	// information associated with this invoice.
	AccountBudgetSummaries []*GoogleAdsSearchads360V23ResourcesInvoiceAccountBudgetSummary `json:"accountBudgetSummaries,omitempty"`
	// AccountSummaries: Output only. The list of summarized account information
	// associated with this invoice.
	AccountSummaries []*GoogleAdsSearchads360V23ResourcesInvoiceAccountSummary `json:"accountSummaries,omitempty"`
	// AdjustmentsSubtotalAmountMicros: Output only. The pretax subtotal amount of
	// invoice level adjustments, in micros.
	AdjustmentsSubtotalAmountMicros int64 `json:"adjustmentsSubtotalAmountMicros,omitempty,string"`
	// AdjustmentsTaxAmountMicros: Output only. The sum of taxes on the invoice
	// level adjustments, in micros.
	AdjustmentsTaxAmountMicros int64 `json:"adjustmentsTaxAmountMicros,omitempty,string"`
	// AdjustmentsTotalAmountMicros: Output only. The total amount of invoice level
	// adjustments, in micros.
	AdjustmentsTotalAmountMicros int64 `json:"adjustmentsTotalAmountMicros,omitempty,string"`
	// BillingSetup: Output only. The resource name of this invoice's billing
	// setup. `customers/{customer_id}/billingSetups/{billing_setup_id}`
	BillingSetup string `json:"billingSetup,omitempty"`
	// CorrectedInvoice: Output only. The resource name of the original invoice
	// corrected, wrote off, or canceled by this invoice, if applicable. If
	// `corrected_invoice` is set, `replaced_invoices` will not be set. Invoice
	// resource names have the form:
	// `customers/{customer_id}/invoices/{invoice_id}`
	CorrectedInvoice string `json:"correctedInvoice,omitempty"`
	// CurrencyCode: Output only. The currency code. All costs are returned in this
	// currency. A subset of the currency codes derived from the ISO 4217 standard
	// is supported.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// DueDate: Output only. The due date in yyyy-mm-dd format.
	DueDate string `json:"dueDate,omitempty"`
	// ExportChargeSubtotalAmountMicros: Output only. The pretax subtotal amount of
	// invoice level export charges, in micros.
	ExportChargeSubtotalAmountMicros int64 `json:"exportChargeSubtotalAmountMicros,omitempty,string"`
	// ExportChargeTaxAmountMicros: Output only. The sum of taxes on the invoice
	// level export charges, in micros.
	ExportChargeTaxAmountMicros int64 `json:"exportChargeTaxAmountMicros,omitempty,string"`
	// ExportChargeTotalAmountMicros: Output only. The total amount of invoice
	// level export charges, in micros.
	ExportChargeTotalAmountMicros int64 `json:"exportChargeTotalAmountMicros,omitempty,string"`
	// Id: Output only. The ID of the invoice. It appears on the invoice PDF as
	// "Invoice number".
	Id string `json:"id,omitempty"`
	// IssueDate: Output only. The issue date in yyyy-mm-dd format. It appears on
	// the invoice PDF as either "Issue date" or "Invoice date".
	IssueDate string `json:"issueDate,omitempty"`
	// PaymentsAccountId: Output only. A 16 digit ID used to identify the payments
	// account associated with the billing setup, for example,
	// "1234-5678-9012-3456". It appears on the invoice PDF as "Billing Account
	// Number".
	PaymentsAccountId string `json:"paymentsAccountId,omitempty"`
	// PaymentsProfileId: Output only. A 12 digit ID used to identify the payments
	// profile associated with the billing setup, for example, "1234-5678-9012". It
	// appears on the invoice PDF as "Billing ID".
	PaymentsProfileId string `json:"paymentsProfileId,omitempty"`
	// PdfUrl: Output only. The URL to a PDF copy of the invoice. Users need to
	// pass in their OAuth token to request the PDF with this URL.
	PdfUrl string `json:"pdfUrl,omitempty"`
	// RegulatoryCostsSubtotalAmountMicros: Output only. The pretax subtotal amount
	// of invoice level regulatory costs, in micros.
	RegulatoryCostsSubtotalAmountMicros int64 `json:"regulatoryCostsSubtotalAmountMicros,omitempty,string"`
	// RegulatoryCostsTaxAmountMicros: Output only. The sum of taxes on the invoice
	// level regulatory costs, in micros.
	RegulatoryCostsTaxAmountMicros int64 `json:"regulatoryCostsTaxAmountMicros,omitempty,string"`
	// RegulatoryCostsTotalAmountMicros: Output only. The total amount of invoice
	// level regulatory costs, in micros.
	RegulatoryCostsTotalAmountMicros int64 `json:"regulatoryCostsTotalAmountMicros,omitempty,string"`
	// ReplacedInvoices: Output only. The resource name of the original invoice(s)
	// being rebilled or replaced by this invoice, if applicable. There might be
	// multiple replaced invoices due to invoice consolidation. The replaced
	// invoices may not belong to the same payments account. If `replaced_invoices`
	// is set, `corrected_invoice` will not be set. Invoice resource names have the
	// form: `customers/{customer_id}/invoices/{invoice_id}`
	ReplacedInvoices []string `json:"replacedInvoices,omitempty"`
	// ResourceName: Output only. The resource name of the invoice. Multiple
	// customers can share a given invoice, so multiple resource names may point to
	// the same invoice. Invoice resource names have the form:
	// `customers/{customer_id}/invoices/{invoice_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ServiceDateRange: Output only. The service period date range of this
	// invoice. The end date is inclusive.
	ServiceDateRange *GoogleAdsSearchads360V23Common__DateRange `json:"serviceDateRange,omitempty"`
	// SubtotalAmountMicros: Output only. The pretax subtotal amount, in micros.
	// This is equal to the sum of the AccountBudgetSummary subtotal amounts and
	// Invoice.adjustments_subtotal_amount_micros.
	SubtotalAmountMicros int64 `json:"subtotalAmountMicros,omitempty,string"`
	// TaxAmountMicros: Output only. The sum of all taxes on the invoice, in
	// micros. This equals the sum of the AccountBudgetSummary tax amounts, plus
	// taxes not associated with a specific account budget.
	TaxAmountMicros int64 `json:"taxAmountMicros,omitempty,string"`
	// TotalAmountMicros: Output only. The total amount, in micros. This equals the
	// sum of Invoice.subtotal_amount_micros, Invoice.tax_amount_micros,
	// Invoice.regulatory_costs_subtotal_amount_micros, and
	// Invoice.export_charge_subtotal_amount_micros (which is separated into a
	// separate line item starting with V14.1).
	TotalAmountMicros int64 `json:"totalAmountMicros,omitempty,string"`
	// Type: Output only. The type of invoice.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CREDIT_MEMO" - An invoice with a negative amount. The account receives a
	// credit.
	//   "INVOICE" - An invoice with a positive amount. The account owes a balance.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountBudgetSummaries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountBudgetSummaries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Invoice) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Invoice
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlan: A Keyword Planner plan. Max
// number of saved keyword plans: 10000. It's possible to remove plans if limit
// is reached.
type GoogleAdsSearchads360V23Resources__KeywordPlan struct {
	// ForecastPeriod: The date period used for forecasting the plan.
	ForecastPeriod *GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod `json:"forecastPeriod,omitempty"`
	// Id: Output only. The ID of the keyword plan.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the keyword plan. This field is required and should not be
	// empty when creating new keyword plans.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the Keyword Planner plan.
	// KeywordPlan resource names have the form:
	// `customers/{customer_id}/keywordPlans/{kp_plan_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ForecastPeriod") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ForecastPeriod") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlan) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlan
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup: A Keyword Planner ad
// group. Max number of keyword plan ad groups per plan: 200.
type GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup struct {
	// CpcBidMicros: A default ad group max cpc bid in micros in account currency
	// for all biddable keywords under the keyword plan ad group. If not set, will
	// inherit from parent campaign.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// Id: Output only. The ID of the keyword plan ad group.
	Id int64 `json:"id,omitempty,string"`
	// KeywordPlanCampaign: The keyword plan campaign to which this ad group
	// belongs.
	KeywordPlanCampaign string `json:"keywordPlanCampaign,omitempty"`
	// Name: The name of the keyword plan ad group. This field is required and
	// should not be empty when creating keyword plan ad group.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the Keyword Planner ad group.
	// KeywordPlanAdGroup resource names have the form:
	// `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword: A Keyword Plan
// ad group keyword. Max number of keyword plan keywords per plan: 10000.
type GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword struct {
	// CpcBidMicros: A keyword level max cpc bid in micros (for example, $1 = 1mm).
	// The currency is the same as the account currency code. This will override
	// any CPC bid set at the keyword plan ad group level. Not applicable for
	// negative keywords. (negative = true) This field is Optional.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// Id: Output only. The ID of the Keyword Plan keyword.
	Id int64 `json:"id,omitempty,string"`
	// KeywordPlanAdGroup: The Keyword Plan ad group to which this keyword belongs.
	KeywordPlanAdGroup string `json:"keywordPlanAdGroup,omitempty"`
	// MatchType: The keyword match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	MatchType string `json:"matchType,omitempty"`
	// Negative: Immutable. If true, the keyword is negative.
	Negative bool `json:"negative,omitempty"`
	// ResourceName: Immutable. The resource name of the Keyword Plan ad group
	// keyword. KeywordPlanAdGroupKeyword resource names have the form:
	// `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Text: The keyword text.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanCampaign: A Keyword Plan
// campaign. Max number of keyword plan campaigns per plan allowed: 1.
type GoogleAdsSearchads360V23Resources__KeywordPlanCampaign struct {
	// CpcBidMicros: A default max cpc bid in micros, and in the account currency,
	// for all ad groups under the campaign. This field is required and should not
	// be empty when creating Keyword Plan campaigns.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// GeoTargets: The geo targets. Max number allowed: 20.
	GeoTargets []*GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget `json:"geoTargets,omitempty"`
	// Id: Output only. The ID of the Keyword Plan campaign.
	Id int64 `json:"id,omitempty,string"`
	// KeywordPlan: The keyword plan this campaign belongs to.
	KeywordPlan string `json:"keywordPlan,omitempty"`
	// KeywordPlanNetwork: Targeting network. This field is required and should not
	// be empty when creating Keyword Plan campaigns.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "GOOGLE_SEARCH" - Google Search.
	//   "GOOGLE_SEARCH_AND_PARTNERS" - Google Search + Search partners.
	KeywordPlanNetwork string `json:"keywordPlanNetwork,omitempty"`
	// LanguageConstants: The languages targeted for the Keyword Plan campaign. Max
	// allowed: 1.
	LanguageConstants []string `json:"languageConstants,omitempty"`
	// Name: The name of the Keyword Plan campaign. This field is required and
	// should not be empty when creating Keyword Plan campaigns.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the Keyword Plan campaign.
	// KeywordPlanCampaign resource names have the form:
	// `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CpcBidMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CpcBidMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanCampaign) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanCampaign
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword: A Keyword
// Plan Campaign keyword. Only negative keywords are supported for Campaign
// Keyword.
type GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword struct {
	// Id: Output only. The ID of the Keyword Plan negative keyword.
	Id int64 `json:"id,omitempty,string"`
	// KeywordPlanCampaign: The Keyword Plan campaign to which this negative
	// keyword belongs.
	KeywordPlanCampaign string `json:"keywordPlanCampaign,omitempty"`
	// MatchType: The keyword match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	MatchType string `json:"matchType,omitempty"`
	// Negative: Immutable. If true, the keyword is negative. Must be set to true.
	// Only negative campaign keywords are supported.
	Negative bool `json:"negative,omitempty"`
	// ResourceName: Immutable. The resource name of the Keyword Plan Campaign
	// keyword. KeywordPlanCampaignKeyword resource names have the form:
	// `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}
	// `
	ResourceName string `json:"resourceName,omitempty"`
	// Text: The keyword text.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod: The
// forecasting period associated with the keyword plan.
type GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod struct {
	// DateInterval: A future date range relative to the current date used for
	// forecasting.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "NEXT_WEEK" - The next week date range for keyword plan. The next week is
	// based on the default locale of the user's account and is mostly SUN-SAT or
	// MON-SUN. This can be different from next-7 days.
	//   "NEXT_MONTH" - The next month date range for keyword plan.
	//   "NEXT_QUARTER" - The next quarter date range for keyword plan.
	DateInterval string `json:"dateInterval,omitempty"`
	// DateRange: The custom date range used for forecasting. It cannot be greater
	// than a year. The start and end dates must be in the future. Otherwise, an
	// error will be returned when the forecasting action is performed. The start
	// and end dates are inclusive.
	DateRange *GoogleAdsSearchads360V23Common__DateRange `json:"dateRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DateInterval") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DateInterval") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanForecastPeriod
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget: A geo target.
type GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget struct {
	// GeoTargetConstant: Required. The resource name of the geo target.
	GeoTargetConstant string `json:"geoTargetConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GeoTargetConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordPlanGeoTarget
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordThemeConstant: A Smart Campaign
// keyword theme constant.
type GoogleAdsSearchads360V23Resources__KeywordThemeConstant struct {
	// CountryCode: Output only. The ISO-3166 Alpha-2 country code of the constant,
	// eg. "US". To display and query matching purpose, the keyword theme needs to
	// be localized.
	CountryCode string `json:"countryCode,omitempty"`
	// DisplayName: Output only. The display name of the keyword theme or sub
	// keyword theme.
	DisplayName string `json:"displayName,omitempty"`
	// LanguageCode: Output only. The ISO-639-1 language code with 2 letters of the
	// constant, eg. "en". To display and query matching purpose, the keyword theme
	// needs to be localized.
	LanguageCode string `json:"languageCode,omitempty"`
	// ResourceName: Output only. The resource name of the keyword theme constant.
	// Keyword theme constant resource names have the form:
	// `keywordThemeConstants/{keyword_theme_id}~{sub_keyword_theme_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordThemeConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordThemeConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__KeywordView: A keyword view.
type GoogleAdsSearchads360V23Resources__KeywordView struct {
	// ResourceName: Output only. The resource name of the keyword view. Keyword
	// view resource names have the form:
	// `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__KeywordView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__KeywordView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Label: A label.
type GoogleAdsSearchads360V23Resources__Label struct {
	// Id: Output only. ID of the label. Read only.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the label. This field is required and should not be empty
	// when creating a new label. The length of this string should be between 1 and
	// 80, inclusive.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. Name of the resource. Label resource names have the
	// form: `customers/{owner_customer_id}/labels/{label_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the label. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Label is enabled.
	//   "REMOVED" - Label is removed.
	Status string `json:"status,omitempty"`
	// TextLabel: A type of label displaying text on a colored background.
	TextLabel *GoogleAdsSearchads360V23Common__TextLabel `json:"textLabel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Label) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Label
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LandingPageView: A landing page view with
// metrics aggregated at the unexpanded final URL level.
type GoogleAdsSearchads360V23Resources__LandingPageView struct {
	// ResourceName: Output only. The resource name of the landing page view.
	// Landing page view resource names have the form:
	// `customers/{customer_id}/landingPageViews/{unexpanded_final_url_fingerprint}`
	ResourceName string `json:"resourceName,omitempty"`
	// UnexpandedFinalUrl: Output only. The advertiser-specified final URL.
	UnexpandedFinalUrl string `json:"unexpandedFinalUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LandingPageView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LandingPageView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LanguageConstant: A language.
type GoogleAdsSearchads360V23Resources__LanguageConstant struct {
	// Code: Output only. The language code, for example, "en_US", "en_AU", "es",
	// "fr", etc.
	Code string `json:"code,omitempty"`
	// Id: Output only. The ID of the language constant.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. The full name of the language in English, for example,
	// "English (US)", "Spanish", etc.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the language constant.
	// Language constant resource names have the form:
	// `languageConstants/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Targetable: Output only. Whether the language is targetable.
	Targetable bool `json:"targetable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LanguageConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LanguageConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LeadFormSubmissionData: Data from lead
// form submissions.
type GoogleAdsSearchads360V23Resources__LeadFormSubmissionData struct {
	// AdGroup: Output only. AdGroup associated with the submitted lead form.
	AdGroup string `json:"adGroup,omitempty"`
	// AdGroupAd: Output only. AdGroupAd associated with the submitted lead form.
	AdGroupAd string `json:"adGroupAd,omitempty"`
	// Asset: Output only. Asset associated with the submitted lead form.
	Asset string `json:"asset,omitempty"`
	// Campaign: Output only. Campaign associated with the submitted lead form.
	Campaign string `json:"campaign,omitempty"`
	// CustomLeadFormSubmissionFields: Output only. Submission data associated with
	// a custom lead form.
	CustomLeadFormSubmissionFields []*GoogleAdsSearchads360V23Resources__CustomLeadFormSubmissionField `json:"customLeadFormSubmissionFields,omitempty"`
	// Gclid: Output only. Google Click Id associated with the submissed lead form.
	Gclid string `json:"gclid,omitempty"`
	// Id: Output only. ID of this lead form submission.
	Id string `json:"id,omitempty"`
	// LeadFormSubmissionFields: Output only. Submission data associated with a
	// lead form.
	LeadFormSubmissionFields []*GoogleAdsSearchads360V23Resources__LeadFormSubmissionField `json:"leadFormSubmissionFields,omitempty"`
	// ResourceName: Output only. The resource name of the lead form submission
	// data. Lead form submission data resource names have the form:
	// `customers/{customer_id}/leadFormSubmissionData/{lead_form_submission_data_id
	// }`
	ResourceName string `json:"resourceName,omitempty"`
	// SubmissionDateTime: Output only. The date and time at which the lead form
	// was submitted. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example,
	// "2019-01-01 12:32:45-08:00".
	SubmissionDateTime string `json:"submissionDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LeadFormSubmissionData) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LeadFormSubmissionData
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LeadFormSubmissionField: Fields in the
// submitted lead form.
type GoogleAdsSearchads360V23Resources__LeadFormSubmissionField struct {
	// FieldType: Output only. Field type for lead form fields.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "FULL_NAME" - The user will be asked to fill in their given and family
	// name. This field cannot be set at the same time as GIVEN_NAME or
	// FAMILY_NAME.
	//   "EMAIL" - The user will be asked to fill in their email address.
	//   "PHONE_NUMBER" - The user will be asked to fill in their phone number.
	//   "POSTAL_CODE" - The user will be asked to fill in their zip code.
	//   "STREET_ADDRESS" - The user will be asked to fill in their street address.
	//   "CITY" - The user will be asked to fill in their city.
	//   "REGION" - The user will be asked to fill in their region part of the
	// address (for example, state for US, province for Canada).
	//   "COUNTRY" - The user will be asked to fill in their country.
	//   "WORK_EMAIL" - The user will be asked to fill in their work email address.
	//   "COMPANY_NAME" - The user will be asked to fill in their company name.
	//   "WORK_PHONE" - The user will be asked to fill in their work phone.
	//   "JOB_TITLE" - The user will be asked to fill in their job title.
	//   "GOVERNMENT_ISSUED_ID_CPF_BR" - The user will be asked to fill in their
	// CPF for Brazil users.
	//   "GOVERNMENT_ISSUED_ID_DNI_AR" - The user will be asked to fill in their
	// DNI for Argentina users.
	//   "GOVERNMENT_ISSUED_ID_DNI_PE" - The user will be asked to fill in their
	// DNI for Peru users.
	//   "GOVERNMENT_ISSUED_ID_RUT_CL" - The user will be asked to fill in their
	// RUT for Chile users.
	//   "GOVERNMENT_ISSUED_ID_CC_CO" - The user will be asked to fill in their CC
	// for Colombia users.
	//   "GOVERNMENT_ISSUED_ID_CI_EC" - The user will be asked to fill in their CI
	// for Ecuador users.
	//   "GOVERNMENT_ISSUED_ID_RFC_MX" - The user will be asked to fill in their
	// RFC for Mexico users.
	//   "FIRST_NAME" - The user will be asked to fill in their first name. This
	// field can not be set at the same time as FULL_NAME.
	//   "LAST_NAME" - The user will be asked to fill in their last name. This
	// field can not be set at the same time as FULL_NAME.
	//   "VEHICLE_MODEL" - Question: "Which model are you interested in?" Category:
	// "Auto" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_TYPE" - Question: "Which type of vehicle are you interested in?"
	// Category: "Auto" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "PREFERRED_DEALERSHIP" - Question: "What is your preferred dealership?"
	// Category: "Auto" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_PURCHASE_TIMELINE" - Question: "When do you plan on purchasing a
	// vehicle?" Category: "Auto" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "VEHICLE_OWNERSHIP" - Question: "Do you own a vehicle?" Category: "Auto"
	// This field is subject to a limit of 5 qualifying questions per form and
	// cannot be used if values are set using custom_question_fields.
	//   "VEHICLE_PAYMENT_TYPE" - Question: "What vehicle ownership option are you
	// interested in?" Category: "Auto" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "VEHICLE_CONDITION" - Question: "What type of vehicle condition are you
	// interested in?" Category: "Auto" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "COMPANY_SIZE" - Question: "What size is your company?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "ANNUAL_SALES" - Question: "What is your annual sales volume?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "YEARS_IN_BUSINESS" - Question: "How many years have you been in
	// business?" Category: "Business" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "JOB_DEPARTMENT" - Question: "What is your job department?" Category:
	// "Business" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "JOB_ROLE" - Question: "What is your job role?" Category: "Business" This
	// field is subject to a limit of 5 qualifying questions per form and cannot be
	// used if values are set using custom_question_fields.
	//   "OVER_18_AGE" - Question: "Are you over 18 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_19_AGE" - Question: "Are you over 19 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_20_AGE" - Question: "Are you over 20 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_21_AGE" - Question: "Are you over 21 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_22_AGE" - Question: "Are you over 22 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_23_AGE" - Question: "Are you over 23 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_24_AGE" - Question: "Are you over 24 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_25_AGE" - Question: "Are you over 25 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_26_AGE" - Question: "Are you over 26 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_27_AGE" - Question: "Are you over 27 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_28_AGE" - Question: "Are you over 28 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_29_AGE" - Question: "Are you over 29 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_30_AGE" - Question: "Are you over 30 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_31_AGE" - Question: "Are you over 31 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_32_AGE" - Question: "Are you over 32 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_33_AGE" - Question: "Are you over 33 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_34_AGE" - Question: "Are you over 34 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_35_AGE" - Question: "Are you over 35 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_36_AGE" - Question: "Are you over 36 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_37_AGE" - Question: "Are you over 37 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_38_AGE" - Question: "Are you over 38 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_39_AGE" - Question: "Are you over 39 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_40_AGE" - Question: "Are you over 40 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_41_AGE" - Question: "Are you over 41 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_42_AGE" - Question: "Are you over 42 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_43_AGE" - Question: "Are you over 43 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_44_AGE" - Question: "Are you over 44 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_45_AGE" - Question: "Are you over 45 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_46_AGE" - Question: "Are you over 46 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_47_AGE" - Question: "Are you over 47 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_48_AGE" - Question: "Are you over 48 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_49_AGE" - Question: "Are you over 49 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_50_AGE" - Question: "Are you over 50 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_51_AGE" - Question: "Are you over 51 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_52_AGE" - Question: "Are you over 52 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_53_AGE" - Question: "Are you over 53 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_54_AGE" - Question: "Are you over 54 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_55_AGE" - Question: "Are you over 55 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_56_AGE" - Question: "Are you over 56 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_57_AGE" - Question: "Are you over 57 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_58_AGE" - Question: "Are you over 58 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_59_AGE" - Question: "Are you over 59 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_60_AGE" - Question: "Are you over 60 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_61_AGE" - Question: "Are you over 61 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_62_AGE" - Question: "Are you over 62 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_63_AGE" - Question: "Are you over 63 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_64_AGE" - Question: "Are you over 64 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "OVER_65_AGE" - Question: "Are you over 65 years of age?" Category:
	// "Demographics" This field is subject to a limit of 5 qualifying questions
	// per form and cannot be used if values are set using custom_question_fields.
	//   "EDUCATION_PROGRAM" - Question: "Which program are you interested in?"
	// Category: "Education" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "EDUCATION_COURSE" - Question: "Which course are you interested in?"
	// Category: "Education" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PRODUCT" - Question: "Which product are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "SERVICE" - Question: "Which service are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "OFFER" - Question: "Which offer are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "CATEGORY" - Question: "Which category are you interested in?" Category:
	// "General" This field is subject to a limit of 5 qualifying questions per
	// form and cannot be used if values are set using custom_question_fields.
	//   "PREFERRED_CONTACT_METHOD" - Question: "What is your preferred method of
	// contact?" Category: "General" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_LOCATION" - Question: "What is your preferred location?"
	// Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_CONTACT_TIME" - Question: "What is the best time to contact
	// you?" Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PURCHASE_TIMELINE" - Question: "When are you looking to make a purchase?"
	// Category: "General" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "YEARS_OF_EXPERIENCE" - Question: "How many years of work experience do
	// you have?" Category: "Jobs" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "JOB_INDUSTRY" - Question: "What industry do you work in?" Category:
	// "Jobs" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "LEVEL_OF_EDUCATION" - Question: "What is your highest level of
	// education?" Category: "Jobs" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PROPERTY_TYPE" - Question: "What type of property are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "REALTOR_HELP_GOAL" - Question: "What do you need a realtor's help with?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PROPERTY_COMMUNITY" - Question: "What neighborhood are you interested
	// in?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PRICE_RANGE" - Question: "What price range are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "NUMBER_OF_BEDROOMS" - Question: "How many bedrooms are you looking for?"
	// Category: "Real Estate" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "FURNISHED_PROPERTY" - Question: "Are you looking for a fully furnished
	// property?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PETS_ALLOWED_PROPERTY" - Question: "Are you looking for properties that
	// allow pets?" Category: "Real Estate" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "NEXT_PLANNED_PURCHASE" - Question: "What is the next product you plan to
	// purchase?" Category: "Retail" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "EVENT_SIGNUP_INTEREST" - Question: "Would you like to sign up for an
	// event?" Category: "Retail" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "PREFERRED_SHOPPING_PLACES" - Question: "Where are you interested in
	// shopping?" Category: "Retail" This field is subject to a limit of 5
	// qualifying questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "FAVORITE_BRAND" - Question: "What is your favorite brand?" Category:
	// "Retail" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "TRANSPORTATION_COMMERCIAL_LICENSE_TYPE" - Question: "Which type of valid
	// commercial license do you have?" Category: "Transportation" This field is
	// subject to a limit of 5 qualifying questions per form and cannot be used if
	// values are set using custom_question_fields.
	//   "EVENT_BOOKING_INTEREST" - Question: "Interested in booking an event?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DESTINATION_COUNTRY" - Question: "What is your destination country?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DESTINATION_CITY" - Question: "What is your destination city?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "DEPARTURE_COUNTRY" - Question: "What is your departure country?"
	// Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "DEPARTURE_CITY" - Question: "What is your departure city?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "DEPARTURE_DATE" - Question: "What is your departure date?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "RETURN_DATE" - Question: "What is your return date?" Category: "Travel"
	// This field is subject to a limit of 5 qualifying questions per form and
	// cannot be used if values are set using custom_question_fields.
	//   "NUMBER_OF_TRAVELERS" - Question: "How many people are you traveling
	// with?" Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	//   "TRAVEL_BUDGET" - Question: "What is your travel budget?" Category:
	// "Travel" This field is subject to a limit of 5 qualifying questions per form
	// and cannot be used if values are set using custom_question_fields.
	//   "TRAVEL_ACCOMMODATION" - Question: "Where do you want to stay during your
	// travel?" Category: "Travel" This field is subject to a limit of 5 qualifying
	// questions per form and cannot be used if values are set using
	// custom_question_fields.
	FieldType string `json:"fieldType,omitempty"`
	// FieldValue: Output only. Field value for lead form fields.
	FieldValue string `json:"fieldValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LeadFormSubmissionField) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LeadFormSubmissionField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact: specific to
// a local services license.
type GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact struct {
	// ExpirationDateTime: Output only. The timestamp when this license expires.
	// The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone.
	// Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	ExpirationDateTime string `json:"expirationDateTime,omitempty"`
	// LicenseDocumentReadonly: Output only. The readonly field containing the
	// information for an uploaded license document.
	LicenseDocumentReadonly *GoogleAdsSearchads360V23Common__LocalServicesDocumentReadOnly `json:"licenseDocumentReadonly,omitempty"`
	// LicenseNumber: Output only. License number.
	LicenseNumber string `json:"licenseNumber,omitempty"`
	// LicenseType: Output only. License type / name.
	LicenseType string `json:"licenseType,omitempty"`
	// LicenseeFirstName: Output only. First name of the licensee.
	LicenseeFirstName string `json:"licenseeFirstName,omitempty"`
	// LicenseeLastName: Output only. Last name of the licensee.
	LicenseeLastName string `json:"licenseeLastName,omitempty"`
	// RejectionReason: Output only. License rejection reason.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_NAME_MISMATCH" - Business name doesn't match business name for
	// the Local Services Ad.
	//   "UNAUTHORIZED" - License is unauthorized or been revoked.
	//   "EXPIRED" - License is expired.
	//   "POOR_QUALITY" - License is poor quality - blurry images, illegible,
	// etc...
	//   "UNVERIFIABLE" - License cannot be verified due to a not legitimate image.
	//   "WRONG_DOCUMENT_OR_ID" - License is not the requested document type or
	// contains an invalid ID.
	//   "OTHER" - License has another flaw not listed explicitly.
	RejectionReason string `json:"rejectionReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpirationDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpirationDateTime") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LifeEvent: A life event: a particular
// interest-based vertical to be targeted to reach users when they are in the
// midst of important life milestones.
type GoogleAdsSearchads360V23Resources__LifeEvent struct {
	// Availabilities: Output only. Availability information of the life event.
	Availabilities []*GoogleAdsSearchads360V23Common__CriterionCategoryAvailability `json:"availabilities,omitempty"`
	// Id: Output only. The ID of the life event.
	Id int64 `json:"id,omitempty,string"`
	// LaunchedToAll: Output only. True if the life event is launched to all
	// channels and locales.
	LaunchedToAll bool `json:"launchedToAll,omitempty"`
	// Name: Output only. The name of the life event, for example,"Recently Moved"
	Name string `json:"name,omitempty"`
	// Parent: Output only. The parent of the life_event.
	Parent string `json:"parent,omitempty"`
	// ResourceName: Output only. The resource name of the life event. Life event
	// resource names have the form:
	// `customers/{customer_id}/lifeEvents/{life_event_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Availabilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Availabilities") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LifeEvent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LifeEvent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension: Listing
// dimensions for the asset group listing group filter.
type GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension struct {
	// ProductBrand: Brand of a product offer.
	ProductBrand *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductBrand `json:"productBrand,omitempty"`
	// ProductCategory: Category of a product offer.
	ProductCategory *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCategory `json:"productCategory,omitempty"`
	// ProductChannel: Locality of a product offer.
	ProductChannel *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductChannel `json:"productChannel,omitempty"`
	// ProductCondition: Condition of a product offer.
	ProductCondition *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCondition `json:"productCondition,omitempty"`
	// ProductCustomAttribute: Custom attribute of a product offer.
	ProductCustomAttribute *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductCustomAttribute `json:"productCustomAttribute,omitempty"`
	// ProductItemId: Item id of a product offer.
	ProductItemId *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductItemId `json:"productItemId,omitempty"`
	// ProductType: Type of a product offer.
	ProductType *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionProductType `json:"productType,omitempty"`
	// Webpage: Filters for URLs in a page feed and URLs from the advertiser web
	// domain.
	Webpage *GoogleAdsSearchads360V23ResourcesListingGroupFilterDimensionWebpage `json:"webpage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductBrand") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductBrand") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath: The path
// defining of dimensions defining a listing group filter.
type GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath struct {
	// Dimensions: Output only. The complete path of dimensions through the listing
	// group filter hierarchy (excluding the root node) to this listing group
	// filter.
	Dimensions []*GoogleAdsSearchads360V23Resources__ListingGroupFilterDimension `json:"dimensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ListingGroupFilterDimensionPath
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocalServicesEmployee: A local services
// employee resource.
type GoogleAdsSearchads360V23Resources__LocalServicesEmployee struct {
	// CategoryIds: Output only. Category of the employee. A list of Local Services
	// category IDs can be found at
	// https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids.
	CategoryIds []string `json:"categoryIds,omitempty"`
	// CreationDateTime: Output only. Timestamp of employee creation. The format is
	// "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone. Examples:
	// "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// EmailAddress: Output only. Email address of the employee.
	EmailAddress string `json:"emailAddress,omitempty"`
	// Fellowships: Output only. The institutions where the employee has completed
	// their fellowship.
	Fellowships []*GoogleAdsSearchads360V23Resources__Fellowship `json:"fellowships,omitempty"`
	// FirstName: Output only. First name of the employee.
	FirstName string `json:"firstName,omitempty"`
	// Id: Output only. The ID of the employee.
	Id int64 `json:"id,omitempty,string"`
	// JobTitle: Output only. Job title for this employee, such as "Senior partner"
	// in legal verticals.
	JobTitle string `json:"jobTitle,omitempty"`
	// LanguagesSpoken: Output only. Languages that the employee speaks,
	// represented as language tags from
	// https://developers.google.com/admin-sdk/directory/v1/languages
	LanguagesSpoken []string `json:"languagesSpoken,omitempty"`
	// LastName: Output only. Last name of the employee.
	LastName string `json:"lastName,omitempty"`
	// MiddleName: Output only. Middle name of the employee.
	MiddleName string `json:"middleName,omitempty"`
	// NationalProviderIdNumber: Output only. NPI id associated with the employee.
	NationalProviderIdNumber string `json:"nationalProviderIdNumber,omitempty"`
	// Residencies: Output only. The institutions where the employee has completed
	// their residency.
	Residencies []*GoogleAdsSearchads360V23Resources__Residency `json:"residencies,omitempty"`
	// ResourceName: Immutable. The resource name of the Local Services
	// Verification. Local Services Verification resource names have the form:
	// `customers/{customer_id}/localServicesEmployees/{gls_employee_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Employee status, such as DELETED or ENABLED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - Employee is not removed, and employee status is active.
	//   "REMOVED" - Employee is removed. Used to delete an employee from the
	// business.
	Status string `json:"status,omitempty"`
	// Type: Output only. Employee type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BUSINESS_OWNER" - Represents the owner of the business.
	//   "EMPLOYEE" - Represents an employee of the business.
	Type string `json:"type,omitempty"`
	// UniversityDegrees: Output only. A list of degrees this employee has
	// obtained, and wants to feature.
	UniversityDegrees []*GoogleAdsSearchads360V23Resources__UniversityDegree `json:"universityDegrees,omitempty"`
	// YearStartedPracticing: Output only. The year that this employee started
	// practicing in this field.
	YearStartedPracticing int64 `json:"yearStartedPracticing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryIds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryIds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocalServicesEmployee) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocalServicesEmployee
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocalServicesLead: Data from Local
// Services Lead. Contains details of Lead which is generated when user calls,
// messages or books service from advertiser. More info:
// https://ads.google.com/local-services-ads
type GoogleAdsSearchads360V23Resources__LocalServicesLead struct {
	// CategoryId: Output only. Service category of the lead. For example:
	// `xcat:service_area_business_hvac`,
	// `xcat:service_area_business_real_estate_agent`, etc. For more details see:
	// https://developers.google.com/google-ads/api/data/codes-formats#local_services_ids
	CategoryId string `json:"categoryId,omitempty"`
	// ContactDetails: Output only. Lead's contact details.
	ContactDetails *GoogleAdsSearchads360V23Resources__ContactDetails `json:"contactDetails,omitempty"`
	// CreationDateTime: Output only. The date time at which lead was created by
	// Local Services Ads. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads
	// account's timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// CreditDetails: Output only. Credit details of the lead.
	CreditDetails *GoogleAdsSearchads360V23Resources__CreditDetails `json:"creditDetails,omitempty"`
	// Id: Output only. ID of this Lead.
	Id int64 `json:"id,omitempty,string"`
	// LeadCharged: Output only. True if the advertiser was charged for the lead.
	LeadCharged bool `json:"leadCharged,omitempty"`
	// LeadFeedbackSubmitted: Output only. True if the advertiser submitted
	// feedback for the lead.
	LeadFeedbackSubmitted bool `json:"leadFeedbackSubmitted,omitempty"`
	// LeadStatus: Output only. Current status of lead.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - New lead which hasn't yet been seen by advertiser.
	//   "ACTIVE" - Lead that thas been interacted by advertiser.
	//   "BOOKED" - Lead has been booked.
	//   "DECLINED" - Lead was declined by advertiser.
	//   "EXPIRED" - Lead has expired due to inactivity.
	//   "DISABLED" - Disabled due to spam or dispute.
	//   "CONSUMER_DECLINED" - Consumer declined the lead.
	//   "WIPED_OUT" - Personally Identifiable Information of the lead is wiped
	// out.
	LeadStatus string `json:"leadStatus,omitempty"`
	// LeadType: Output only. Type of Local Services lead: phone, message, booking,
	// etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MESSAGE" - Message lead.
	//   "PHONE_CALL" - Lead created by phone call.
	//   "BOOKING" - Booking lead.
	LeadType string `json:"leadType,omitempty"`
	// Locale: Output only. Language used by the Local Services provider linked to
	// lead. See
	// https://developers.google.com/google-ads/api/data/codes-formats#locales
	Locale string `json:"locale,omitempty"`
	// Note: Output only. Note added by advertiser for the lead.
	Note *GoogleAdsSearchads360V23Resources__Note `json:"note,omitempty"`
	// ResourceName: Immutable. The resource name of the local services lead data.
	// Local Services Lead resource name have the form
	// `customers/{customer_id}/localServicesLead/{local_services_lead_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ServiceId: Output only. Service for the category. For example:
	// `buyer_agent`, `seller_agent` for the category of
	// `xcat:service_area_business_real_estate_agent`.
	ServiceId string `json:"serviceId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocalServicesLead) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocalServicesLead
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation: Data from
// Local Services Lead Conversation. Contains details of Lead Conversation
// which is generated when user calls, messages or books service from
// advertiser. These are appended to a Lead. More info:
// https://ads.google.com/local-services-ads
type GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation struct {
	// ConversationChannel: Output only. Type of GLS lead conversation, EMAIL,
	// MESSAGE, PHONE_CALL, SMS, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EMAIL" - Email lead conversation.
	//   "MESSAGE" - Message lead conversation.
	//   "PHONE_CALL" - Phone call lead conversation.
	//   "SMS" - SMS lead conversation.
	//   "BOOKING" - Booking lead conversation.
	//   "WHATSAPP" - WhatsApp lead conversation.
	//   "ADS_API" - Lead conversation created through Google Ads API.
	ConversationChannel string `json:"conversationChannel,omitempty"`
	// EventDateTime: Output only. The date time at which lead conversation was
	// created by Local Services Ads. The format is "YYYY-MM-DD HH:MM:SS" in the
	// Google Ads account's timezone. Examples: "2018-03-05 09:15:00" or
	// "2018-02-01 14:34:30"
	EventDateTime string `json:"eventDateTime,omitempty"`
	// Id: Output only. ID of this Lead Conversation.
	Id int64 `json:"id,omitempty,string"`
	// Lead: Output only. Resource name of Lead associated to the Lead
	// Conversation.
	Lead string `json:"lead,omitempty"`
	// MessageDetails: Output only. Details of message conversation in case of
	// EMAIL, MESSAGE or SMS.
	MessageDetails *GoogleAdsSearchads360V23Resources__MessageDetails `json:"messageDetails,omitempty"`
	// ParticipantType: Output only. Type of participant in the lead conversation,
	// ADVERTISER or CONSUMER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADVERTISER" - Local Services Ads Provider participant.
	//   "CONSUMER" - Local Services Ads Consumer participant.
	ParticipantType string `json:"participantType,omitempty"`
	// PhoneCallDetails: Output only. Details of phone call conversation in case of
	// PHONE_CALL.
	PhoneCallDetails *GoogleAdsSearchads360V23Resources__PhoneCallDetails `json:"phoneCallDetails,omitempty"`
	// ResourceName: Output only. The resource name of the local services lead
	// conversation data. Local Services Lead Conversation resource name have the
	// form
	// `customers/{customer_id}/localServicesLeadConversation/{local_services_lead_c
	// onversation_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversationChannel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversationChannel") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocalServicesSettings: Settings for Local
// Services customer.
type GoogleAdsSearchads360V23Resources__LocalServicesSettings struct {
	// GranularInsuranceStatuses: Output only. A read-only list of geo vertical
	// level insurance statuses.
	GranularInsuranceStatuses []*GoogleAdsSearchads360V23Resources__GranularInsuranceStatus `json:"granularInsuranceStatuses,omitempty"`
	// GranularLicenseStatuses: Output only. A read-only list of geo vertical level
	// license statuses.
	GranularLicenseStatuses []*GoogleAdsSearchads360V23Resources__GranularLicenseStatus `json:"granularLicenseStatuses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GranularInsuranceStatuses")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GranularInsuranceStatuses") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocalServicesSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocalServicesSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact: A
// local services verification resource.
type GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact struct {
	// ArtifactType: Output only. The type of the verification artifact.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "BACKGROUND_CHECK" - Background check verification artifact.
	//   "INSURANCE" - Insurance verification artifact.
	//   "LICENSE" - License verification artifact.
	//   "BUSINESS_REGISTRATION_CHECK" - Business registration check verification
	// artifact.
	ArtifactType string `json:"artifactType,omitempty"`
	// BackgroundCheckVerificationArtifact: Output only. A background check
	// verification artifact.
	BackgroundCheckVerificationArtifact *GoogleAdsSearchads360V23Resources__BackgroundCheckVerificationArtifact `json:"backgroundCheckVerificationArtifact,omitempty"`
	// BusinessRegistrationCheckVerificationArtifact: Output only. A business
	// registration check verification artifact.
	BusinessRegistrationCheckVerificationArtifact *GoogleAdsSearchads360V23Resources__BusinessRegistrationCheckVerificationArtifact `json:"businessRegistrationCheckVerificationArtifact,omitempty"`
	// CreationDateTime: Output only. The timestamp when this verification artifact
	// was created. The format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's
	// timezone. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	CreationDateTime string `json:"creationDateTime,omitempty"`
	// Id: Output only. The ID of the verification artifact.
	Id int64 `json:"id,omitempty,string"`
	// InsuranceVerificationArtifact: Output only. An insurance verification
	// artifact.
	InsuranceVerificationArtifact *GoogleAdsSearchads360V23Resources__InsuranceVerificationArtifact `json:"insuranceVerificationArtifact,omitempty"`
	// LicenseVerificationArtifact: Output only. A license verification artifact.
	LicenseVerificationArtifact *GoogleAdsSearchads360V23Resources__LicenseVerificationArtifact `json:"licenseVerificationArtifact,omitempty"`
	// ResourceName: Immutable. The resource name of the Local Services
	// Verification. Local Services Verification resource names have the form:
	// `customers/{customer_id}/localServicesVerificationArtifacts/{verification_art
	// ifact_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the verification artifact.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PASSED" - Artifact has passed verification.
	//   "FAILED" - Artifact has failed verification.
	//   "PENDING" - Artifact is in the process of verification.
	//   "NO_SUBMISSION" - Artifact needs user to upload information before it is
	// verified.
	//   "CANCELLED" - Artifact has been cancelled by the user.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ArtifactType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ArtifactType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocationInterestView: A location interest
// view summarizes the performance of adgroup location interest criteria.
type GoogleAdsSearchads360V23Resources__LocationInterestView struct {
	// ResourceName: Output only. The resource name of the location interest view.
	// Location interest view resource names have the form:
	// `customers/{customer_id}/locationInterestViews/{campaign_id}~{ad_group_id}~{c
	// riterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocationInterestView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocationInterestView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__LocationView: A location view summarizes
// the performance of campaigns by a Location criterion.
type GoogleAdsSearchads360V23Resources__LocationView struct {
	// ResourceName: Output only. The resource name of the location view. Location
	// view resource names have the form:
	// `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__LocationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__LocationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ManagedPlacementView: A managed placement
// view.
type GoogleAdsSearchads360V23Resources__ManagedPlacementView struct {
	// ResourceName: Output only. The resource name of the Managed Placement view.
	// Managed placement view resource names have the form:
	// `customers/{customer_id}/managedPlacementViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ManagedPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ManagedPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MatchedLocationInterestView: A view that
// reports metrics for locations where users showed interest, and which matched
// the advertiser's location interest targeting (defined as geo targets at the
// AdGroup level). The data is aggregated at the country level by default. This
// view is currently only available for AI Max campaigns.
type GoogleAdsSearchads360V23Resources__MatchedLocationInterestView struct {
	// ResourceName: Output only. The resource name of the matched location
	// interest view. Matched location interest view resource names have the form:
	// `customers/{customer_id}/matchedLocationInterestViews/{country_criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MatchedLocationInterestView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MatchedLocationInterestView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MediaAudio: Encapsulates an Audio.
type GoogleAdsSearchads360V23Resources__MediaAudio struct {
	// AdDurationMillis: Output only. The duration of the Audio in milliseconds.
	AdDurationMillis int64 `json:"adDurationMillis,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AdDurationMillis") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdDurationMillis") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MediaAudio) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MediaAudio
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MediaBundle: Represents a ZIP archive
// media the content of which contains HTML5 assets.
type GoogleAdsSearchads360V23Resources__MediaBundle struct {
	// Data: Immutable. Raw zipped data.
	Data string `json:"data,omitempty"`
	// Url: Output only. The url to access the uploaded zipped data. For example,
	// https://tpc.googlesyndication.com/simgad/123 This field is read-only.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MediaBundle) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MediaBundle
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MediaFile: A media file.
type GoogleAdsSearchads360V23Resources__MediaFile struct {
	// Audio: Output only. Encapsulates an Audio.
	Audio *GoogleAdsSearchads360V23Resources__MediaAudio `json:"audio,omitempty"`
	// FileSize: Output only. The size of the media file in bytes.
	FileSize int64 `json:"fileSize,omitempty,string"`
	// Id: Output only. The ID of the media file.
	Id int64 `json:"id,omitempty,string"`
	// Image: Immutable. Encapsulates an Image.
	Image *GoogleAdsSearchads360V23Resources__MediaImage `json:"image,omitempty"`
	// MediaBundle: Immutable. A ZIP archive media the content of which contains
	// HTML5 assets.
	MediaBundle *GoogleAdsSearchads360V23Resources__MediaBundle `json:"mediaBundle,omitempty"`
	// MimeType: Output only. The mime type of the media file.
	//
	// Possible values:
	//   "UNSPECIFIED" - The mime type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "IMAGE_JPEG" - MIME type of image/jpeg.
	//   "IMAGE_GIF" - MIME type of image/gif.
	//   "IMAGE_PNG" - MIME type of image/png.
	//   "FLASH" - MIME type of application/x-shockwave-flash.
	//   "TEXT_HTML" - MIME type of text/html.
	//   "PDF" - MIME type of application/pdf.
	//   "MSWORD" - MIME type of application/msword.
	//   "MSEXCEL" - MIME type of application/vnd.ms-excel.
	//   "RTF" - MIME type of application/rtf.
	//   "AUDIO_WAV" - MIME type of audio/wav.
	//   "AUDIO_MP3" - MIME type of audio/mp3.
	//   "HTML5_AD_ZIP" - MIME type of application/x-html5-ad-zip.
	MimeType string `json:"mimeType,omitempty"`
	// Name: Immutable. The name of the media file. The name can be used by clients
	// to help identify previously uploaded media.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the media file. Media file
	// resource names have the form:
	// `customers/{customer_id}/mediaFiles/{media_file_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SourceUrl: Immutable. The URL of where the original media file was
	// downloaded from (or a file name). Only used for media of type AUDIO and
	// IMAGE.
	SourceUrl string `json:"sourceUrl,omitempty"`
	// Type: Immutable. Type of the media file.
	//
	// Possible values:
	//   "UNSPECIFIED" - The media type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "IMAGE" - Static image, used for image ad.
	//   "ICON" - Small image, used for map ad.
	//   "MEDIA_BUNDLE" - ZIP file, used in fields of template ads.
	//   "AUDIO" - Audio file.
	//   "VIDEO" - Video file.
	//   "DYNAMIC_IMAGE" - Animated image, such as animated GIF.
	Type string `json:"type,omitempty"`
	// Video: Immutable. Encapsulates a Video.
	Video *GoogleAdsSearchads360V23Resources__MediaVideo `json:"video,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audio") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audio") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MediaFile) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MediaFile
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MediaImage: Encapsulates an Image.
type GoogleAdsSearchads360V23Resources__MediaImage struct {
	// Data: Immutable. Raw image data.
	Data string `json:"data,omitempty"`
	// FullSizeImageUrl: Output only. The url to the full size version of the
	// image.
	FullSizeImageUrl string `json:"fullSizeImageUrl,omitempty"`
	// PreviewSizeImageUrl: Output only. The url to the preview size version of the
	// image.
	PreviewSizeImageUrl string `json:"previewSizeImageUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MediaImage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MediaImage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MediaVideo: Encapsulates a Video.
type GoogleAdsSearchads360V23Resources__MediaVideo struct {
	// AdDurationMillis: Output only. The duration of the Video in milliseconds.
	AdDurationMillis int64 `json:"adDurationMillis,omitempty,string"`
	// AdvertisingIdCode: Output only. The Advertising Digital Identification code
	// for this video, as defined by the American Association of Advertising
	// Agencies, used mainly for television commercials.
	AdvertisingIdCode string `json:"advertisingIdCode,omitempty"`
	// IsciCode: Output only. The Industry Standard Commercial Identifier code for
	// this video, used mainly for television commercials.
	IsciCode string `json:"isciCode,omitempty"`
	// YoutubeVideoId: Immutable. The YouTube video ID (as seen in YouTube URLs).
	// Adding prefix "https://www.youtube.com/watch?v=" to this ID will get the
	// YouTube streaming URL for this video.
	YoutubeVideoId string `json:"youtubeVideoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdDurationMillis") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdDurationMillis") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MediaVideo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MediaVideo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier: The identifier
// for Google Merchant Center account
type GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier struct {
	// MerchantCenterId: Immutable. The customer ID of the Google Merchant Center
	// account. This field is required and should not be empty when creating a new
	// Merchant Center link. It is unable to be modified after the creation of the
	// link.
	MerchantCenterId int64 `json:"merchantCenterId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MerchantCenterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MerchantCenterId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier:
// The identifier for Merchant Center Account.
type GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier struct {
	// MerchantCenterId: Output only. The Merchant Center id of the Merchant
	// account. This field is read only
	MerchantCenterId int64 `json:"merchantCenterId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MerchantCenterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MerchantCenterId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MessageDetails: Represents details of
// text message in case of email, message or SMS.
type GoogleAdsSearchads360V23Resources__MessageDetails struct {
	// AttachmentUrls: Output only. URL to the SMS or email attachments. These URLs
	// can be used to download the contents of the attachment by using the
	// developer token.
	AttachmentUrls []string `json:"attachmentUrls,omitempty"`
	// Text: Output only. Textual content of the message.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttachmentUrls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttachmentUrls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MessageDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MessageDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant: A mobile
// application category constant.
type GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant struct {
	// Id: Output only. The ID of the mobile app category constant.
	Id int64 `json:"id,omitempty"`
	// Name: Output only. Mobile app category name.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the mobile app category
	// constant. Mobile app category constant resource names have the form:
	// `mobileAppCategoryConstants/{mobile_app_category_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__MobileDeviceConstant: A mobile device
// constant.
type GoogleAdsSearchads360V23Resources__MobileDeviceConstant struct {
	// Id: Output only. The ID of the mobile device constant.
	Id int64 `json:"id,omitempty,string"`
	// ManufacturerName: Output only. The manufacturer of the mobile device.
	ManufacturerName string `json:"manufacturerName,omitempty"`
	// Name: Output only. The name of the mobile device.
	Name string `json:"name,omitempty"`
	// OperatingSystemName: Output only. The operating system of the mobile device.
	OperatingSystemName string `json:"operatingSystemName,omitempty"`
	// ResourceName: Output only. The resource name of the mobile device constant.
	// Mobile device constant resource names have the form:
	// `mobileDeviceConstants/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Output only. The type of mobile device.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "MOBILE" - Mobile phones.
	//   "TABLET" - Tablets.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__MobileDeviceConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__MobileDeviceConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Note: Represents a note added to a lead
// by the advertiser. Advertisers can edit notes, which will reset edit time
// and change description.
type GoogleAdsSearchads360V23Resources__Note struct {
	// Description: Output only. Content of lead note.
	Description string `json:"description,omitempty"`
	// EditDateTime: Output only. The date time when lead note was edited. The
	// format is "YYYY-MM-DD HH:MM:SS" in the Google Ads account's timezone.
	// Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30"
	EditDateTime string `json:"editDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Note) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Note
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OfflineConversionAlert: Alert for offline
// conversion client summary.
type GoogleAdsSearchads360V23Resources__OfflineConversionAlert struct {
	// Error: Output only. Error for offline conversion client alert.
	Error *GoogleAdsSearchads360V23Resources__OfflineConversionError `json:"error,omitempty"`
	// ErrorPercentage: Output only. Percentage of the error, the range of this
	// field should be [0, 1.0].
	ErrorPercentage float64 `json:"errorPercentage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Error") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Error") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineConversionAlert) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionAlert
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__OfflineConversionAlert) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionAlert
	var s1 struct {
		ErrorPercentage gensupport.JSONFloat64 `json:"errorPercentage"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ErrorPercentage = float64(s1.ErrorPercentage)
	return nil
}

// GoogleAdsSearchads360V23Resources__OfflineConversionError: Possible errors
// for offline conversion client summary.
type GoogleAdsSearchads360V23Resources__OfflineConversionError struct {
	// CollectionSizeError: Output only. Collection size error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "TOO_FEW" - Too few.
	//   "TOO_MANY" - Too many.
	CollectionSizeError string `json:"collectionSizeError,omitempty"`
	// ConversionAdjustmentUploadError: Output only. Conversion adjustment upload
	// error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_ALREADY_RETRACTED" - The conversion was already retracted.
	// This adjustment was not processed.
	//   "CONVERSION_NOT_FOUND" - The conversion for this conversion action and
	// conversion identifier can't be found. Make sure your conversion identifiers
	// are associated with the correct conversion action and try again.
	//   "CONVERSION_EXPIRED" - Adjustment can't be made to a conversion that
	// occurred more than 54 days ago.
	//   "ADJUSTMENT_PRECEDES_CONVERSION" - Adjustment has an
	// `adjustment_date_time` that occurred before the associated conversion. Make
	// sure your `adjustment_date_time` is correct and try again.
	//   "MORE_RECENT_RESTATEMENT_FOUND" - More recent adjustment
	// `adjustment_date_time` has already been reported for the associated
	// conversion. Make sure your adjustment `adjustment_date_time` is correct and
	// try again.
	//   "TOO_RECENT_CONVERSION" - Adjustment can't be recorded because the
	// conversion occurred too recently. Try adjusting a conversion that occurred
	// at least 24 hours ago.
	//
	// "CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE"
	// - Can't make an adjustment to a conversion that is set up to use the default
	// value. Check your conversion action value setting and try again.
	//   "TOO_MANY_ADJUSTMENTS_IN_REQUEST" - Try uploading fewer than 2001
	// adjustments in a single API request.
	//   "TOO_MANY_ADJUSTMENTS" - The conversion has already been adjusted the
	// maximum number of times. Make sure you're only making necessary adjustment
	// to existing conversion.
	//   "RESTATEMENT_ALREADY_EXISTS" - The conversion has prior a restatement with
	// the same `adjustment_date_time`. Make sure your adjustment has the correct
	// and unique `adjustment_date_time` and try again.
	//   "DUPLICATE_ADJUSTMENT_IN_REQUEST" - Imported adjustment has a duplicate
	// conversion adjustment with same `adjustment_date_time`. Make sure your
	// adjustment has the correct `adjustment_date_time` and try again.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again.
	//   "CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT" - Can't use enhanced
	// conversions with the specified conversion action.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//   "UNSUPPORTED_USER_IDENTIFIER" - Use user provided data such as emails or
	// phone numbers hashed using SHA-256 and try again.
	//   "GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET" - Cannot set both
	// gclid_date_time_pair and order_id. Use only 1 type and try again.
	//   "CONVERSION_ALREADY_ENHANCED" - Conversion already has enhancements with
	// the same Order ID and conversion action. Make sure your data is correctly
	// configured and try again.
	//   "DUPLICATE_ENHANCEMENT_IN_REQUEST" - Multiple enhancements have the same
	// conversion action and Order ID. Make sure your data is correctly configured
	// and try again.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT" - Enhanced conversions can't
	// be used for this account because of Google customer data policies. Contact
	// your Google representative.
	//   "MISSING_ORDER_ID_FOR_WEBPAGE" - Adjustment for website conversion
	// requires Order ID (ie, transaction ID). Make sure your website tags capture
	// Order IDs and you send the same Order IDs with your adjustment.
	//   "ORDER_ID_CONTAINS_PII" - Can't use adjustment with Order IDs containing
	// personally-identifiable information (PII).
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// adjustment request cannot be found. Make sure it's available in this
	// account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The type of the conversion action
	// specified in the adjustment request isn't supported for uploading
	// adjustments. A conversion adjustment of type `RETRACTION` or `RESTATEMENT`
	// is only permitted for conversion actions of type `SALESFORCE`,
	// `UPLOAD_CLICK` or `WEBPAGE`. A conversion adjustment of type `ENHANCEMENT`
	// is only permitted for conversion actions of type `WEBPAGE`.
	ConversionAdjustmentUploadError string `json:"conversionAdjustmentUploadError,omitempty"`
	// ConversionUploadError: Output only. Conversion upload error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "TOO_MANY_CONVERSIONS_IN_REQUEST" - Upload fewer than 2001 events in a
	// single request.
	//   "UNPARSEABLE_GCLID" - The imported gclid could not be decoded.
	//   "CONVERSION_PRECEDES_EVENT" - The imported event has a
	// `conversion_date_time` that precedes the click. Make sure your
	// `conversion_date_time` is correct and try again.
	//   "EXPIRED_EVENT" - The imported event can't be recorded because its click
	// occurred before this conversion's click-through window. Make sure you import
	// the most recent data.
	//   "TOO_RECENT_EVENT" - The click associated with the given identifier or iOS
	// URL parameter occurred less than 6 hours ago. Retry after 6 hours have
	// passed.
	//   "EVENT_NOT_FOUND" - The imported event could not be attributed to a click.
	// This may be because the event did not come from a Google Ads campaign.
	//   "UNAUTHORIZED_CUSTOMER" - The click ID or call is associated with an Ads
	// account you don't have access to. Make sure you import conversions for
	// accounts managed by your manager account.
	//   "TOO_RECENT_CONVERSION_ACTION" - Can't import events to a conversion
	// action that was just created. Try importing again in 6 hours.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_IMPRESSION_TIME" - At the time of the
	// click, conversion tracking was not enabled in the effective conversion
	// account of the click's Google Ads account.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_SET_FOR_NON_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The imported event includes external attribution data, but the
	// conversion action isn't set up to use an external attribution model. Make
	// sure the conversion action is correctly configured and try again.
	//
	// "EXTERNAL_ATTRIBUTION_DATA_NOT_SET_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTIO
	// N" - The conversion action is set up to use an external attribution model,
	// but the imported event is missing data. Make sure imported events include
	// the external attribution credit and all necessary fields.
	//   "ORDER_ID_NOT_PERMITTED_FOR_EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION" -
	// Order IDs can't be used for a conversion measured with an external
	// attribution model. Make sure the conversion is correctly configured and
	// imported events include only necessary data and try again.
	//   "ORDER_ID_ALREADY_IN_USE" - The imported event includes an order ID that
	// was previously recorded, so the event was not processed.
	//   "DUPLICATE_ORDER_ID" - Imported events include multiple conversions with
	// the same order ID and were not processed. Make sure order IDs are unique and
	// try again.
	//   "TOO_RECENT_CALL" - Can't import calls that occurred less than 6 hours
	// ago. Try uploading again in 6 hours.
	//   "EXPIRED_CALL" - The call can't be recorded because it occurred before
	// this conversion action's lookback window. Make sure your import is
	// configured to get the most recent data.
	//   "CALL_NOT_FOUND" - The call or click leading to the imported event can't
	// be found. Make sure your data source is set up to include correct
	// identifiers.
	//   "CONVERSION_PRECEDES_CALL" - The call has a `conversion_date_time` that
	// precedes the associated click. Make sure your `conversion_date_time` is
	// correct.
	//   "CONVERSION_TRACKING_NOT_ENABLED_AT_CALL_TIME" - At the time of the
	// imported call, conversion tracking was not enabled in the effective
	// conversion account of the click's Google Ads account.
	//   "UNPARSEABLE_CALLERS_PHONE_NUMBER" - Make sure phone numbers are formatted
	// as E.164 (+16502531234), International (+64 3-331 6005), or US national
	// number (6502531234).
	//   "CLICK_CONVERSION_ALREADY_EXISTS" - The imported event has the same click
	// and `conversion_date_time` as an existing conversion. Use a unique
	// `conversion_date_time` or order ID for each unique event and try again.
	//   "CALL_CONVERSION_ALREADY_EXISTS" - The imported call has the same
	// `conversion_date_time` as an existing conversion. Make sure your
	// `conversion_date_time` correctly configured and try again.
	//   "DUPLICATE_CLICK_CONVERSION_IN_REQUEST" - Multiple events have the same
	// click and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "DUPLICATE_CALL_CONVERSION_IN_REQUEST" - Multiple events have the same
	// call and `conversion_date_time`. Make sure your `conversion_date_time` is
	// correctly configured and try again.
	//   "CUSTOM_VARIABLE_NOT_ENABLED" - Enable the custom variable in your
	// conversion settings and try again.
	//   "CUSTOM_VARIABLE_VALUE_CONTAINS_PII" - Can't import events with custom
	// variables containing personally-identifiable information (PII). Remove these
	// variables and try again.
	//   "INVALID_CUSTOMER_FOR_CLICK" - The click from the imported event is
	// associated with a different Google Ads account. Make sure you're importing
	// to the correct account.
	//   "INVALID_CUSTOMER_FOR_CALL" - The click from the call is associated with a
	// different Google Ads account. Make sure you're importing to the correct
	// account. Query conversion_tracking_setting.google_ads_conversion_customer on
	// Customer to identify the correct account.
	//   "CONVERSION_NOT_COMPLIANT_WITH_ATT_POLICY" - The connversion can't be
	// imported because the conversion source didn't comply with Apple App
	// Transparency Tracking (ATT) policies or because the customer didn't consent
	// to tracking.
	//   "CLICK_NOT_FOUND" - The email address or phone number for this event can't
	// be matched to a click. This may be because it didn't come from a Google Ads
	// campaign, and you can safely ignore this warning. If this includes more
	// imported events than is expected, you may need to check your setup.
	//   "INVALID_USER_IDENTIFIER" - Make sure you hash user provided data using
	// SHA-256 and ensure you are normalizing according to the guidelines.
	//
	// "EXTERNALLY_ATTRIBUTED_CONVERSION_ACTION_NOT_PERMITTED_WITH_USER_IDENTIFIER"
	// - User provided data can't be used with external attribution models. Use a
	// different attribution model or omit user identifiers and try again.
	//   "UNSUPPORTED_USER_IDENTIFIER" - The provided user identifiers are not
	// supported. Use only hashed email or phone number and try again.
	//   "GBRAID_WBRAID_BOTH_SET" - Can't use both gbraid and wbraid parameters.
	// Use only 1 and try again.
	//   "UNPARSEABLE_WBRAID" - Can't parse event import data. Check if your wbraid
	// parameter was not modified and try again.
	//   "UNPARSEABLE_GBRAID" - Can't parse event import data. Check if your gbraid
	// parameter was not modified and try again.
	//   "ONE_PER_CLICK_CONVERSION_ACTION_NOT_PERMITTED_WITH_BRAID" - Conversion
	// actions that use one-per-click counting can't be used with gbraid or wbraid
	// parameters.
	//   "CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCED_CONVERSIONS" - Enhanced
	// conversions can't be used for this account because of Google customer data
	// policies. Contact your Google representative.
	//   "CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS" - Make sure you agree to the
	// customer data processing terms in conversion settings and try again. You can
	// check your setting by querying
	// conversion_tracking_setting.accepted_customer_data_terms on Customer.
	//   "ORDER_ID_CONTAINS_PII" - Can't import events with order IDs containing
	// personally-identifiable information (PII).
	//   "CUSTOMER_NOT_ENABLED_ENHANCED_CONVERSIONS_FOR_LEADS" - Make sure you've
	// turned on enhanced conversions for leads in conversion settings and try
	// again. You can check your setting by querying
	// conversion_tracking_setting.enhanced_conversions_for_leads_enabled on
	// Customer.
	//   "INVALID_JOB_ID" - The provided job id in the request is not within the
	// allowed range. A job ID must be a positive integer in the range [1, 2^31).
	//   "NO_CONVERSION_ACTION_FOUND" - The conversion action specified in the
	// upload request cannot be found. Make sure it's available in this account.
	//   "INVALID_CONVERSION_ACTION_TYPE" - The conversion action specified in the
	// upload request isn't set up for uploading conversions.
	ConversionUploadError string `json:"conversionUploadError,omitempty"`
	// DateError: Output only. Date error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "INVALID_FIELD_VALUES_IN_DATE" - Given field values do not correspond to a
	// valid date.
	//   "INVALID_FIELD_VALUES_IN_DATE_TIME" - Given field values do not correspond
	// to a valid date time.
	//   "INVALID_STRING_DATE" - The string date's format should be yyyy-mm-dd.
	//   "INVALID_STRING_DATE_TIME_MICROS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.ssssss.
	//   "INVALID_STRING_DATE_TIME_SECONDS" - The string date time's format should
	// be yyyy-mm-dd hh:mm:ss.
	//   "INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET" - The string date time's
	// format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.
	//   "EARLIER_THAN_MINIMUM_DATE" - Date is before allowed minimum.
	//   "LATER_THAN_MAXIMUM_DATE" - Date is after allowed maximum.
	//   "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE" - Date range bounds are
	// not in order.
	//   "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" - Both dates in range are
	// null.
	//   "DATE_RANGE_ERROR_START_TIME_MUST_BE_THE_START_OF_A_DAY" - This campaign
	// type doesn't support a start date time that isn't the start of the day.
	//   "DATE_RANGE_ERROR_END_TIME_MUST_BE_THE_END_OF_A_DAY" - This campaign type
	// doesn't support an end date time that isn't the end of the day.
	DateError string `json:"dateError,omitempty"`
	// DistinctError: Output only. Distinct error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "DUPLICATE_ELEMENT" - Duplicate element.
	//   "DUPLICATE_TYPE" - Duplicate type.
	DistinctError string `json:"distinctError,omitempty"`
	// FieldError: Output only. Field error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "REQUIRED" - The required field was not present.
	//   "IMMUTABLE_FIELD" - The field attempted to be mutated is immutable.
	//   "INVALID_VALUE" - The field's value is invalid.
	//   "VALUE_MUST_BE_UNSET" - The field cannot be set.
	//   "REQUIRED_NONEMPTY_LIST" - The required repeated field was empty.
	//   "FIELD_CANNOT_BE_CLEARED" - The field cannot be cleared.
	//   "BLOCKED_VALUE" - The field's value is on a deny-list for this field.
	//   "FIELD_CAN_ONLY_BE_CLEARED" - The field's value cannot be modified, except
	// for clearing.
	FieldError string `json:"fieldError,omitempty"`
	// MutateError: Output only. Mutate error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "RESOURCE_NOT_FOUND" - Requested resource was not found.
	//   "ID_EXISTS_IN_MULTIPLE_MUTATES" - Cannot mutate the same resource twice in
	// one request.
	//   "INCONSISTENT_FIELD_VALUES" - The field's contents don't match another
	// field that represents the same data.
	//   "MUTATE_NOT_ALLOWED" - Mutates are not allowed for the requested resource.
	//   "RESOURCE_NOT_IN_GOOGLE_ADS" - The resource isn't in Google Ads. It
	// belongs to another ads system.
	//   "RESOURCE_ALREADY_EXISTS" - The resource being created already exists.
	//   "RESOURCE_DOES_NOT_SUPPORT_VALIDATE_ONLY" - This resource cannot be used
	// with "validate_only".
	//   "OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE" - This operation cannot be
	// used with "partial_failure".
	//   "RESOURCE_READ_ONLY" - Attempt to write to read-only fields.
	//   "EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED" - Mutates are generally
	// not allowed if the customer contains non-exempt campaigns without the EU
	// political advertising declaration.
	MutateError string `json:"mutateError,omitempty"`
	// NotAllowlistedError: Output only. Not allowlisted error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE" - Customer is not allowlisted
	// for accessing this feature.
	NotAllowlistedError string `json:"notAllowlistedError,omitempty"`
	// StringFormatError: Output only. String format error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "ILLEGAL_CHARS" - The input string value contains disallowed characters.
	//   "INVALID_FORMAT" - The input string value is invalid for the associated
	// field.
	StringFormatError string `json:"stringFormatError,omitempty"`
	// StringLengthError: Output only. String length error.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "EMPTY" - The specified field should have a least one non-whitespace
	// character in it.
	//   "TOO_SHORT" - Too short.
	//   "TOO_LONG" - Too long.
	StringLengthError string `json:"stringLengthError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CollectionSizeError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CollectionSizeError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineConversionError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OfflineConversionSummary: Historical
// upload summary, grouped by upload date or job.
type GoogleAdsSearchads360V23Resources__OfflineConversionSummary struct {
	// FailedCount: Output only. Total count of failed event.
	FailedCount int64 `json:"failedCount,omitempty,string"`
	// JobId: Output only. Dimension key for last N jobs.
	JobId int64 `json:"jobId,omitempty,string"`
	// PendingCount: Output only. Total count of pending uploaded event.
	PendingCount int64 `json:"pendingCount,omitempty,string"`
	// SuccessfulCount: Output only. Total count of successful event.
	SuccessfulCount int64 `json:"successfulCount,omitempty,string"`
	// UploadDate: Output only. Dimension key for last N days.
	UploadDate string `json:"uploadDate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailedCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailedCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineConversionSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary:
// Offline conversion upload summary at customer level.
type GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary struct {
	// Alerts: Output only. Details for each error code. Alerts are generated from
	// most recent calendar day with upload stats.
	Alerts []*GoogleAdsSearchads360V23Resources__OfflineConversionAlert `json:"alerts,omitempty"`
	// Client: Output only. Client type of the upload event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "GOOGLE_ADS_API" - Google Ads API.
	//   "GOOGLE_ADS_WEB_CLIENT" - Google Ads web client, which could include
	// multiple sources like Ads UI, SFTP, etc.
	//   "ADS_DATA_CONNECTOR" - Connection platform.
	Client string `json:"client,omitempty"`
	// DailySummaries: Output only. Summary of history stats by last N days.
	DailySummaries []*GoogleAdsSearchads360V23Resources__OfflineConversionSummary `json:"dailySummaries,omitempty"`
	// JobSummaries: Output only. Summary of history stats by last N jobs.
	JobSummaries []*GoogleAdsSearchads360V23Resources__OfflineConversionSummary `json:"jobSummaries,omitempty"`
	// LastUploadDateTime: Output only. Date for the latest upload batch. The
	// format is "yyyy-mm-dd hh:mm:ss", and it's in the time zone of the Google Ads
	// account.
	LastUploadDateTime string `json:"lastUploadDateTime,omitempty"`
	// PendingEventCount: Output only. Total count of pending uploaded events.
	PendingEventCount int64 `json:"pendingEventCount,omitempty,string"`
	// PendingRate: Output only. The ratio of total pending events to total events.
	PendingRate float64 `json:"pendingRate,omitempty"`
	// ResourceName: Output only. The resource name of the offline conversion
	// upload summary at customer level. Offline conversion upload client summary
	// resource names have the form:
	// `customers/{customer_id}/offlineConversionUploadClientSummaries/{client}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Overall status for offline conversion client summary.
	// Status is generated from most recent calendar day with upload stats.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXCELLENT" - Your offline data ingestion setup is active and optimal for
	// downstream processing.
	//   "GOOD" - Your offline ingestion setup is active, but there are further
	// improvements you could make. See alerts.
	//   "NEEDS_ATTENTION" - Your offline ingestion setup is active, but there are
	// errors that require your attention. See alerts.
	//   "NO_RECENT_UPLOAD" - Your offline ingestion setup has not received data in
	// the last 28 days, there may be something wrong.
	Status string `json:"status,omitempty"`
	// SuccessRate: Output only. Successful rate.
	SuccessRate float64 `json:"successRate,omitempty"`
	// SuccessfulEventCount: Output only. Total count of successful uploaded
	// events.
	SuccessfulEventCount int64 `json:"successfulEventCount,omitempty,string"`
	// TotalEventCount: Output only. Total count of uploaded events.
	TotalEventCount int64 `json:"totalEventCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Alerts") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Alerts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary
	var s1 struct {
		PendingRate gensupport.JSONFloat64 `json:"pendingRate"`
		SuccessRate gensupport.JSONFloat64 `json:"successRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.PendingRate = float64(s1.PendingRate)
	s.SuccessRate = float64(s1.SuccessRate)
	return nil
}

// GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSum
// mary: Offline conversion upload summary at conversion action level.
type GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary struct {
	// Alerts: Output only. Details for each error code. Alerts are generated from
	// most recent calendar day with upload stats.
	Alerts []*GoogleAdsSearchads360V23Resources__OfflineConversionAlert `json:"alerts,omitempty"`
	// Client: Output only. Client type of the upload event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "GOOGLE_ADS_API" - Google Ads API.
	//   "GOOGLE_ADS_WEB_CLIENT" - Google Ads web client, which could include
	// multiple sources like Ads UI, SFTP, etc.
	//   "ADS_DATA_CONNECTOR" - Connection platform.
	Client string `json:"client,omitempty"`
	// ConversionActionId: Output only. Conversion action id.
	ConversionActionId int64 `json:"conversionActionId,omitempty,string"`
	// ConversionActionName: Output only. The name of the conversion action.
	ConversionActionName string `json:"conversionActionName,omitempty"`
	// DailySummaries: Output only. Summary of history stats by last N days.
	DailySummaries []*GoogleAdsSearchads360V23Resources__OfflineConversionSummary `json:"dailySummaries,omitempty"`
	// JobSummaries: Output only. Summary of history stats by last N jobs.
	JobSummaries []*GoogleAdsSearchads360V23Resources__OfflineConversionSummary `json:"jobSummaries,omitempty"`
	// LastUploadDateTime: Output only. Date for the latest upload batch. The
	// format is "yyyy-mm-dd hh:mm:ss", and it's in the time zone of the Google Ads
	// account.
	LastUploadDateTime string `json:"lastUploadDateTime,omitempty"`
	// PendingEventCount: Output only. Total count of pending uploaded events.
	PendingEventCount int64 `json:"pendingEventCount,omitempty,string"`
	// ResourceName: Output only. The resource name of the offline conversion
	// upload summary at conversion action level. Offline conversion upload
	// conversion action summary resource names have the form:
	// `customers/{customer_id}/offlineConversionUploadConversionActionSummaries/{co
	// nversion_action_id}~{client}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Overall status for offline conversion upload conversion
	// action summary. Status is generated from most recent calendar day with
	// upload stats.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXCELLENT" - Your offline data ingestion setup is active and optimal for
	// downstream processing.
	//   "GOOD" - Your offline ingestion setup is active, but there are further
	// improvements you could make. See alerts.
	//   "NEEDS_ATTENTION" - Your offline ingestion setup is active, but there are
	// errors that require your attention. See alerts.
	//   "NO_RECENT_UPLOAD" - Your offline ingestion setup has not received data in
	// the last 28 days, there may be something wrong.
	Status string `json:"status,omitempty"`
	// SuccessfulEventCount: Output only. Total count of successful uploaded
	// events.
	SuccessfulEventCount int64 `json:"successfulEventCount,omitempty,string"`
	// TotalEventCount: Output only. Total count of uploaded events.
	TotalEventCount int64 `json:"totalEventCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Alerts") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Alerts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OfflineUserDataJob: A job containing
// offline user data of store visitors, or user list members that will be
// processed asynchronously. The uploaded data isn't readable and the
// processing results of the job can only be read using
type GoogleAdsSearchads360V23Resources__OfflineUserDataJob struct {
	// CustomerMatchUserListMetadata: Immutable. Metadata for data updates to a
	// CRM-based user list.
	CustomerMatchUserListMetadata *GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata `json:"customerMatchUserListMetadata,omitempty"`
	// ExternalId: Immutable. User specified job ID.
	ExternalId int64 `json:"externalId,omitempty,string"`
	// FailureReason: Output only. Reason for the processing failure, if status is
	// FAILED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INSUFFICIENT_MATCHED_TRANSACTIONS" - The matched transactions are
	// insufficient.
	//   "INSUFFICIENT_TRANSACTIONS" - The uploaded transactions are insufficient.
	//   "HIGH_AVERAGE_TRANSACTION_VALUE" - The average transaction value is
	// unusually high for your account. If this is intended, contact support to
	// request an exception. Learn more at
	// https://support.google.com/google-ads/answer/10018944#transaction_value
	//   "LOW_AVERAGE_TRANSACTION_VALUE" - The average transaction value is
	// unusually low for your account. If this is intended, contact support to
	// request an exception. Learn more at
	// https://support.google.com/google-ads/answer/10018944#transaction_value
	//   "NEWLY_OBSERVED_CURRENCY_CODE" - There's a currency code that you haven't
	// used before in your uploads. If this is intended, contact support to request
	// an exception. Learn more at
	// https://support.google.com/google-ads/answer/10018944#Unrecognized_currency
	FailureReason string `json:"failureReason,omitempty"`
	// Id: Output only. ID of this offline user data job.
	Id int64 `json:"id,omitempty,string"`
	// OperationMetadata: Output only. Metadata of offline user data job depicting
	// match rate range.
	OperationMetadata *GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata `json:"operationMetadata,omitempty"`
	// ResourceName: Immutable. The resource name of the offline user data job.
	// Offline user data job resource names have the form:
	// `customers/{customer_id}/offlineUserDataJobs/{offline_user_data_job_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. Status of the job.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PENDING" - The job has been successfully created and pending for
	// uploading.
	//   "RUNNING" - Upload(s) have been accepted and data is being processed.
	//   "SUCCESS" - Uploaded data has been successfully processed. The job might
	// have no operations, which can happen if the job was run without any
	// operations added, or if all operations failed validation individually when
	// attempting to add them to the job.
	//   "FAILED" - Uploaded data has failed to be processed. Some operations may
	// have been successfully processed.
	Status string `json:"status,omitempty"`
	// StoreSalesMetadata: Immutable. Metadata for store sales data update.
	StoreSalesMetadata *GoogleAdsSearchads360V23Common__StoreSalesMetadata `json:"storeSalesMetadata,omitempty"`
	// Type: Immutable. Type of the job.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "STORE_SALES_UPLOAD_FIRST_PARTY" - Store Sales Direct data for self
	// service.
	//   "STORE_SALES_UPLOAD_THIRD_PARTY" - Store Sales Direct data for third
	// party.
	//   "CUSTOMER_MATCH_USER_LIST" - Customer Match user list data.
	//   "CUSTOMER_MATCH_WITH_ATTRIBUTES" - Customer Match with attribute data.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CustomerMatchUserListMetadata") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerMatchUserListMetadata")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineUserDataJob) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineUserDataJob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata: Metadata of
// offline user data job.
type GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata struct {
	// MatchRateRange: Output only. Match rate of the Customer Match user list
	// upload. Describes the estimated match rate when the status of the job is
	// "RUNNING" and final match rate when the final match rate is available after
	// the status of the job is "SUCCESS/FAILED".
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Default value for match rate range.
	//   "MATCH_RANGE_LESS_THAN_20" - Match rate range for offline data upload
	// entity is between 0% and 19%.
	//   "MATCH_RANGE_20_TO_30" - Match rate range for offline data upload entity
	// is between 20% and 30%.
	//   "MATCH_RANGE_31_TO_40" - Match rate range for offline data upload entity
	// is between 31% and 40%.
	//   "MATCH_RANGE_41_TO_50" - Match rate range for offline data upload entity
	// is between 41% and 50%.
	//   "MATCH_RANGE_51_TO_60" - Match rate range for offline data upload entity
	// is between 51% and 60%.
	//   "MATCH_RANGE_61_TO_70" - Match rate range for offline data upload entity
	// is between 61% and 70%.
	//   "MATCH_RANGE_71_TO_80" - Match rate range for offline data upload entity
	// is between 71% and 80%.
	//   "MATCH_RANGE_81_TO_90" - Match rate range for offline data upload entity
	// is between 81% and 90%.
	//   "MATCH_RANGE_91_TO_100" - Match rate range for offline data upload entity
	// is more than or equal to 91%.
	MatchRateRange string `json:"matchRateRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchRateRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchRateRange") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OfflineUserDataJobMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant: A mobile
// operating system version or a range of versions, depending on
// `operator_type`. List of available mobile platforms at
// https://developers.google.com/google-ads/api/reference/data/codes-formats#mobile-platforms
type GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant struct {
	// Id: Output only. The ID of the operating system version.
	Id int64 `json:"id,omitempty,string"`
	// Name: Output only. Name of the operating system.
	Name string `json:"name,omitempty"`
	// OperatorType: Output only. Determines whether this constant represents a
	// single version or a range of versions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EQUALS_TO" - Equals to the specified version.
	//   "GREATER_THAN_EQUALS_TO" - Greater than or equals to the specified
	// version.
	OperatorType string `json:"operatorType,omitempty"`
	// OsMajorVersion: Output only. The OS Major Version number.
	OsMajorVersion int64 `json:"osMajorVersion,omitempty"`
	// OsMinorVersion: Output only. The OS Minor Version number.
	OsMinorVersion int64 `json:"osMinorVersion,omitempty"`
	// ResourceName: Output only. The resource name of the operating system version
	// constant. Operating system version constant resource names have the form:
	// `operatingSystemVersionConstants/{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView: A paid organic
// search term view providing a view of search stats across ads and organic
// listings aggregated by search term at the ad group level.
type GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView struct {
	// ResourceName: Output only. The resource name of the search term view. Search
	// term view resource names have the form:
	// `customers/{customer_id}/paidOrganicSearchTermViews/{campaign_id}~
	// {ad_group_id}~{URL-base64 search term}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. The search term.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ParentalStatusView: A parental status
// view.
type GoogleAdsSearchads360V23Resources__ParentalStatusView struct {
	// ResourceName: Output only. The resource name of the parental status view.
	// Parental Status view resource names have the form:
	// `customers/{customer_id}/parentalStatusViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ParentalStatusView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ParentalStatusView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__PaymentsAccount: A payments account,
// which can be used to set up billing for an Ads customer.
type GoogleAdsSearchads360V23Resources__PaymentsAccount struct {
	// CurrencyCode: Output only. The currency code of the payments account. A
	// subset of the currency codes derived from the ISO 4217 standard is
	// supported.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Name: Output only. The name of the payments account.
	Name string `json:"name,omitempty"`
	// PayingManagerCustomer: Output only. Paying manager of this payment account.
	PayingManagerCustomer string `json:"payingManagerCustomer,omitempty"`
	// PaymentsAccountId: Output only. A 16 digit ID used to identify a payments
	// account.
	PaymentsAccountId string `json:"paymentsAccountId,omitempty"`
	// PaymentsProfileId: Output only. A 12 digit ID used to identify the payments
	// profile associated with the payments account.
	PaymentsProfileId string `json:"paymentsProfileId,omitempty"`
	// ResourceName: Output only. The resource name of the payments account.
	// PaymentsAccount resource names have the form:
	// `customers/{customer_id}/paymentsAccounts/{payments_account_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SecondaryPaymentsProfileId: Output only. A secondary payments profile ID
	// present in uncommon situations, for example, when a sequential liability
	// agreement has been arranged.
	SecondaryPaymentsProfileId string `json:"secondaryPaymentsProfileId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__PaymentsAccount) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__PaymentsAccount
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__PerStoreView: A per store view. This view
// provides per store impression reach and local action conversion stats for
// advertisers.
type GoogleAdsSearchads360V23Resources__PerStoreView struct {
	// Address1: Output only. First line of the store's address.
	Address1 string `json:"address1,omitempty"`
	// Address2: Output only. Second line of the store's address.
	Address2 string `json:"address2,omitempty"`
	// BusinessName: Output only. The name of the business.
	BusinessName string `json:"businessName,omitempty"`
	// City: Output only. The city where the store is located.
	City string `json:"city,omitempty"`
	// CountryCode: Output only. The two-letter country code for the store's
	// location (e.g., "US").
	CountryCode string `json:"countryCode,omitempty"`
	// PhoneNumber: Output only. The phone number of the store.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	// PlaceId: Output only. The place ID of the per store view.
	PlaceId string `json:"placeId,omitempty"`
	// PostalCode: Output only. The postal code of the store's address.
	PostalCode string `json:"postalCode,omitempty"`
	// Province: Output only. The province or state of the store's address.
	Province string `json:"province,omitempty"`
	// ResourceName: Output only. The resource name of the per store view. Per
	// Store view resource names have the form:
	// `customers/{customer_id}/perStoreViews/{place_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Address1") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Address1") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__PerStoreView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__PerStoreView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView: A view with
// impression metrics for Performance Max campaign placements.
type GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView struct {
	// DisplayName: Output only. The name displayed to represent the placement,
	// such as the URL name for websites, YouTube video name for YouTube videos,
	// and translated mobile app name for mobile apps.
	DisplayName string `json:"displayName,omitempty"`
	// Placement: Output only. The default placement string, such as the website
	// URL, mobile application ID, or a YouTube video ID.
	Placement string `json:"placement,omitempty"`
	// PlacementType: Output only. Type of the placement. Possible values for
	// Performance Max placements are WEBSITE, MOBILE_APPLICATION, or
	// YOUTUBE_VIDEO.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEBSITE" - Websites(for example, 'www.flowers4sale.com').
	//   "MOBILE_APP_CATEGORY" - Mobile application categories(for example,
	// 'Games').
	//   "MOBILE_APPLICATION" - mobile applications(for example,
	// 'mobileapp::2-com.whatsthewordanswers').
	//   "YOUTUBE_VIDEO" - YouTube videos(for example,
	// 'youtube.com/video/wtLJPvx7-ys').
	//   "YOUTUBE_CHANNEL" - YouTube channels(for example,
	// 'youtube.com::L8ZULXASCc1I_oaOT0NaOQ').
	//   "GOOGLE_PRODUCTS" - Surfaces owned and operated by Google(for example,
	// 'tv.google.com').
	PlacementType string `json:"placementType,omitempty"`
	// ResourceName: Output only. The resource name of the Performance Max
	// placement view. Performance Max placement view resource names have the form:
	// `customers/{customer_id}/performanceMaxPlacementViews/{base_64_placement}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetUrl: Output only. URL of the placement, for example, website, link to
	// the mobile application in app store, or a YouTube video URL.
	TargetUrl string `json:"targetUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__PhoneCallDetails: Represents details of a
// phone call conversation.
type GoogleAdsSearchads360V23Resources__PhoneCallDetails struct {
	// CallDurationMillis: Output only. The duration (in milliseconds) of the phone
	// call (end to end).
	CallDurationMillis int64 `json:"callDurationMillis,omitempty,string"`
	// CallRecordingUrl: Output only. URL to the call recording audio file.
	CallRecordingUrl string `json:"callRecordingUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallDurationMillis") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallDurationMillis") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__PhoneCallDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__PhoneCallDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ProductCategoryConstant: A Product
// Category.
type GoogleAdsSearchads360V23Resources__ProductCategoryConstant struct {
	// CategoryId: Output only. The ID of the product category. This ID is
	// equivalent to the google_product_category ID as described in this article:
	// https://support.google.com/merchants/answer/6324436.
	CategoryId int64 `json:"categoryId,omitempty,string"`
	// Level: Output only. Level of the product category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEVEL1" - Level 1.
	//   "LEVEL2" - Level 2.
	//   "LEVEL3" - Level 3.
	//   "LEVEL4" - Level 4.
	//   "LEVEL5" - Level 5.
	Level string `json:"level,omitempty"`
	// Localizations: Output only. List of all available localizations of the
	// product category.
	Localizations []*GoogleAdsSearchads360V23ResourcesProductCategoryConstantProductCategoryLocalization `json:"localizations,omitempty"`
	// ProductCategoryConstantParent: Output only. Resource name of the parent
	// product category.
	ProductCategoryConstantParent string `json:"productCategoryConstantParent,omitempty"`
	// ResourceName: Output only. The resource name of the product category.
	// Product category resource names have the form:
	// `productCategoryConstants/{level}~{category_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// State: Output only. State of the product category.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The category is enabled.
	//   "OBSOLETE" - The category is obsolete. Used only for reporting purposes.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CategoryId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CategoryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ProductCategoryConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ProductCategoryConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ProductGroupView: A product group view.
type GoogleAdsSearchads360V23Resources__ProductGroupView struct {
	// ResourceName: Output only. The resource name of the product group view.
	// Product group view resource names have the form:
	// `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ProductGroupView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ProductGroupView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ProductLink: Represents the data sharing
// connection between
type GoogleAdsSearchads360V23Resources__ProductLink struct {
	// AdvertisingPartner: Output only. Advertising Partner link.
	AdvertisingPartner *GoogleAdsSearchads360V23Resources__AdvertisingPartnerIdentifier `json:"advertisingPartner,omitempty"`
	// DataPartner: Immutable. Data partner link.
	DataPartner *GoogleAdsSearchads360V23Resources__DataPartnerIdentifier `json:"dataPartner,omitempty"`
	// GoogleAds: Immutable. Google Ads link.
	GoogleAds *GoogleAdsSearchads360V23Resources__GoogleAdsIdentifier `json:"googleAds,omitempty"`
	// MerchantCenter: Immutable. Google Merchant Center link.
	MerchantCenter *GoogleAdsSearchads360V23Resources__MerchantCenterIdentifier `json:"merchantCenter,omitempty"`
	// ProductLinkId: Output only. The ID of the link. This field is read only.
	ProductLinkId int64 `json:"productLinkId,omitempty,string"`
	// ResourceName: Immutable. Resource name of the product link. ProductLink
	// resource names have the form: ` `
	ResourceName string `json:"resourceName,omitempty"`
	// Type: Output only. The type of the linked product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DATA_PARTNER" - A link to Data partner.
	//   "GOOGLE_ADS" - A link to Google Ads.
	//   "HOTEL_CENTER" - A link to Hotel Center.
	//   "MERCHANT_CENTER" - A link to Google Merchant Center.
	//   "ADVERTISING_PARTNER" - A link to the Google Ads account of the
	// advertising partner.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingPartner") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingPartner") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ProductLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ProductLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ProductLinkInvitation: Represents an
// invitation for data sharing connection between a Google Ads account and
// another account.
type GoogleAdsSearchads360V23Resources__ProductLinkInvitation struct {
	// AdvertisingPartner: Output only. Advertising Partner link invitation.
	AdvertisingPartner *GoogleAdsSearchads360V23Resources__AdvertisingPartnerLinkInvitationIdentifier `json:"advertisingPartner,omitempty"`
	// HotelCenter: Output only. Hotel link invitation.
	HotelCenter *GoogleAdsSearchads360V23Resources__HotelCenterLinkInvitationIdentifier `json:"hotelCenter,omitempty"`
	// MerchantCenter: Output only. Merchant Center link invitation.
	MerchantCenter *GoogleAdsSearchads360V23Resources__MerchantCenterLinkInvitationIdentifier `json:"merchantCenter,omitempty"`
	// ProductLinkInvitationId: Output only. The ID of the product link invitation.
	// This field is read only.
	ProductLinkInvitationId int64 `json:"productLinkInvitationId,omitempty,string"`
	// ResourceName: Immutable. The resource name of a product link invitation.
	// Product link invitation resource names have the form:
	// `customers/{customer_id}/productLinkInvitations/{product_link_invitation_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of the product link invitation. This field
	// is read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCEPTED" - The invitation is accepted.
	//   "REQUESTED" - An invitation has been sent to the other account. A user on
	// the other account may now accept the invitation by setting the status to
	// ACCEPTED.
	//   "PENDING_APPROVAL" - This invitation has been sent by a user on the other
	// account. It may be accepted by a user on this account by setting the status
	// to ACCEPTED.
	//   "REVOKED" - The invitation is revoked by the user who sent the invitation.
	//   "REJECTED" - The invitation has been rejected by the invitee.
	//   "EXPIRED" - The invitation has timed out before being accepted by the
	// invitee.
	Status string `json:"status,omitempty"`
	// Type: Output only. The type of the invited account. This field is read only
	// and can be used for filtering invitations with {@code
	// GoogleAdsService.SearchGoogleAdsRequest}.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DATA_PARTNER" - A link to Data partner.
	//   "GOOGLE_ADS" - A link to Google Ads.
	//   "HOTEL_CENTER" - A link to Hotel Center.
	//   "MERCHANT_CENTER" - A link to Google Merchant Center.
	//   "ADVERTISING_PARTNER" - A link to the Google Ads account of the
	// advertising partner.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvertisingPartner") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvertisingPartner") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ProductLinkInvitation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ProductLinkInvitation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__QualifyingQuestion: Qualifying Questions
// for Lead Form.
type GoogleAdsSearchads360V23Resources__QualifyingQuestion struct {
	// Locale: Output only. The locale of the qualifying question.
	Locale string `json:"locale,omitempty"`
	// QualifyingQuestionId: Output only. The id of the qualifying question.
	QualifyingQuestionId int64 `json:"qualifyingQuestionId,omitempty,string"`
	// ResourceName: Output only. The resource name of the qualifying question.
	// 'qualifyingQuestions/{qualifyingQuestionId}'
	ResourceName string `json:"resourceName,omitempty"`
	// Text: Output only. The qualifying question.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locale") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locale") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__QualifyingQuestion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__QualifyingQuestion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Recommendation: A recommendation.
type GoogleAdsSearchads360V23Resources__Recommendation struct {
	// AdGroup: Output only. The ad group targeted by this recommendation. This
	// will be set only when the recommendation affects a single ad group. This
	// field will be set for the following recommendation types: KEYWORD,
	// OPTIMIZE_AD_ROTATION, TEXT_AD
	AdGroup string `json:"adGroup,omitempty"`
	// CallAssetRecommendation: Output only. The call asset recommendation.
	CallAssetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCallAssetRecommendation `json:"callAssetRecommendation,omitempty"`
	// CalloutAssetRecommendation: Output only. The callout asset recommendation.
	CalloutAssetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCalloutAssetRecommendation `json:"calloutAssetRecommendation,omitempty"`
	// Campaign: Output only. The campaign targeted by this recommendation. This
	// field will be set for the following recommendation types: CALL_EXTENSION,
	// CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN, KEYWORD, KEYWORD_MATCH_TYPE,
	// MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION,
	// SEARCH_PARTNERS_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN,
	// TARGET_ROAS_OPT_IN, TEXT_AD,
	Campaign string `json:"campaign,omitempty"`
	// CampaignBudget: Output only. The budget targeted by this recommendation.
	// This will be set only when the recommendation affects a single campaign
	// budget. This field will be set for the following recommendation types:
	// CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MOVE_UNUSED_BUDGET
	CampaignBudget string `json:"campaignBudget,omitempty"`
	// CampaignBudgetRecommendation: Output only. The campaign budget
	// recommendation.
	CampaignBudgetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation `json:"campaignBudgetRecommendation,omitempty"`
	// Campaigns: Output only. The campaigns targeted by this recommendation. This
	// field will be set for the following recommendation types: CAMPAIGN_BUDGET,
	// FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET and
	// MOVE_UNUSED_BUDGET
	Campaigns []string `json:"campaigns,omitempty"`
	// CustomAudienceOptInRecommendation: Output only. The custom audience opt in
	// recommendation.
	CustomAudienceOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCustomAudienceOptInRecommendation `json:"customAudienceOptInRecommendation,omitempty"`
	// Dismissed: Output only. Whether the recommendation is dismissed or not.
	Dismissed bool `json:"dismissed,omitempty"`
	// DisplayExpansionOptInRecommendation: Output only. The Display Expansion
	// opt-in recommendation.
	DisplayExpansionOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationDisplayExpansionOptInRecommendation `json:"displayExpansionOptInRecommendation,omitempty"`
	// DynamicImageExtensionOptInRecommendation: Output only. Recommendation to
	// enable dynamic image extensions on the account, allowing Google to find the
	// best images from ad landing pages and complement text ads.
	DynamicImageExtensionOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationDynamicImageExtensionOptInRecommendation `json:"dynamicImageExtensionOptInRecommendation,omitempty"`
	// EnhancedCpcOptInRecommendation: Output only. The Enhanced Cost-Per-Click
	// Opt-In recommendation.
	EnhancedCpcOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationEnhancedCpcOptInRecommendation `json:"enhancedCpcOptInRecommendation,omitempty"`
	// ForecastingCampaignBudgetRecommendation: Output only. The forecasting
	// campaign budget recommendation.
	ForecastingCampaignBudgetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation `json:"forecastingCampaignBudgetRecommendation,omitempty"`
	// ForecastingSetTargetCpaRecommendation: Output only. The forecasting set
	// target CPA recommendation.
	ForecastingSetTargetCpaRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation `json:"forecastingSetTargetCpaRecommendation,omitempty"`
	// ForecastingSetTargetRoasRecommendation: Output only. The forecasting set
	// target ROAS recommendation.
	ForecastingSetTargetRoasRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation `json:"forecastingSetTargetRoasRecommendation,omitempty"`
	// Impact: Output only. The impact on account performance as a result of
	// applying the recommendation.
	Impact *GoogleAdsSearchads360V23ResourcesRecommendationRecommendationImpact `json:"impact,omitempty"`
	// ImproveDemandGenAdStrengthRecommendation: Output only. The improve Demand
	// Gen ad strength recommendation.
	ImproveDemandGenAdStrengthRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationImproveDemandGenAdStrengthRecommendation `json:"improveDemandGenAdStrengthRecommendation,omitempty"`
	// ImproveGoogleTagCoverageRecommendation: Output only. Recommendation to
	// deploy Google Tag on more pages.
	ImproveGoogleTagCoverageRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationImproveGoogleTagCoverageRecommendation `json:"improveGoogleTagCoverageRecommendation,omitempty"`
	// ImprovePerformanceMaxAdStrengthRecommendation: Output only. The improve
	// Performance Max ad strength recommendation.
	ImprovePerformanceMaxAdStrengthRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationImprovePerformanceMaxAdStrengthRecommendation `json:"improvePerformanceMaxAdStrengthRecommendation,omitempty"`
	// KeywordMatchTypeRecommendation: Output only. The keyword match type
	// recommendation.
	KeywordMatchTypeRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationKeywordMatchTypeRecommendation `json:"keywordMatchTypeRecommendation,omitempty"`
	// KeywordRecommendation: Output only. The keyword recommendation.
	KeywordRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationKeywordRecommendation `json:"keywordRecommendation,omitempty"`
	// LeadFormAssetRecommendation: Output only. The lead form asset
	// recommendation.
	LeadFormAssetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationLeadFormAssetRecommendation `json:"leadFormAssetRecommendation,omitempty"`
	// LowerTargetRoasRecommendation: Output only. Recommendation to lower Target
	// ROAS.
	LowerTargetRoasRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationLowerTargetRoasRecommendation `json:"lowerTargetRoasRecommendation,omitempty"`
	// MarginalRoiCampaignBudgetRecommendation: Output only. The marginal ROI
	// campaign budget recommendation.
	MarginalRoiCampaignBudgetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationCampaignBudgetRecommendation `json:"marginalRoiCampaignBudgetRecommendation,omitempty"`
	// MaximizeClicksOptInRecommendation: Output only. The MaximizeClicks Opt-In
	// recommendation.
	MaximizeClicksOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationMaximizeClicksOptInRecommendation `json:"maximizeClicksOptInRecommendation,omitempty"`
	// MaximizeConversionValueOptInRecommendation: Output only. The Maximize
	// Conversion Value opt-in recommendation.
	MaximizeConversionValueOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionValueOptInRecommendation `json:"maximizeConversionValueOptInRecommendation,omitempty"`
	// MaximizeConversionsOptInRecommendation: Output only. The MaximizeConversions
	// Opt-In recommendation.
	MaximizeConversionsOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationMaximizeConversionsOptInRecommendation `json:"maximizeConversionsOptInRecommendation,omitempty"`
	// MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation: Output only.
	// The Dynamic Search Ads to Performance Max migration recommendation.
	MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationMigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation `json:"migrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation,omitempty"`
	// MoveUnusedBudgetRecommendation: Output only. The move unused budget
	// recommendation.
	MoveUnusedBudgetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationMoveUnusedBudgetRecommendation `json:"moveUnusedBudgetRecommendation,omitempty"`
	// OptimizeAdRotationRecommendation: Output only. The Optimize Ad Rotation
	// recommendation.
	OptimizeAdRotationRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationOptimizeAdRotationRecommendation `json:"optimizeAdRotationRecommendation,omitempty"`
	// PerformanceMaxFinalUrlOptInRecommendation: Output only. Recommendation to
	// turn on Final URL expansion for your Performance Max campaigns.
	PerformanceMaxFinalUrlOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxFinalUrlOptInRecommendation `json:"performanceMaxFinalUrlOptInRecommendation,omitempty"`
	// PerformanceMaxOptInRecommendation: Output only. The Performance Max Opt In
	// recommendation.
	PerformanceMaxOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationPerformanceMaxOptInRecommendation `json:"performanceMaxOptInRecommendation,omitempty"`
	// RaiseTargetCpaBidTooLowRecommendation: Output only. The raise target CPA bid
	// too low recommendation.
	RaiseTargetCpaBidTooLowRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaBidTooLowRecommendation `json:"raiseTargetCpaBidTooLowRecommendation,omitempty"`
	// RaiseTargetCpaRecommendation: Output only. Recommendation to raise Target
	// CPA.
	RaiseTargetCpaRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationRaiseTargetCpaRecommendation `json:"raiseTargetCpaRecommendation,omitempty"`
	// RefreshCustomerMatchListRecommendation: Output only. The refresh customer
	// list recommendation.
	RefreshCustomerMatchListRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationRefreshCustomerMatchListRecommendation `json:"refreshCustomerMatchListRecommendation,omitempty"`
	// ResourceName: Immutable. The resource name of the recommendation.
	// `customers/{customer_id}/recommendations/{recommendation_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ResponsiveSearchAdAssetRecommendation: Output only. The responsive search ad
	// asset recommendation.
	ResponsiveSearchAdAssetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdAssetRecommendation `json:"responsiveSearchAdAssetRecommendation,omitempty"`
	// ResponsiveSearchAdImproveAdStrengthRecommendation: Output only. The
	// responsive search ad improve ad strength recommendation.
	ResponsiveSearchAdImproveAdStrengthRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdImproveAdStrengthRecommendation `json:"responsiveSearchAdImproveAdStrengthRecommendation,omitempty"`
	// ResponsiveSearchAdRecommendation: Output only. The add responsive search ad
	// recommendation.
	ResponsiveSearchAdRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationResponsiveSearchAdRecommendation `json:"responsiveSearchAdRecommendation,omitempty"`
	// SearchPartnersOptInRecommendation: Output only. The Search Partners Opt-In
	// recommendation.
	SearchPartnersOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationSearchPartnersOptInRecommendation `json:"searchPartnersOptInRecommendation,omitempty"`
	// SetTargetCpaRecommendation: Output only. The set target CPA recommendation.
	SetTargetCpaRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetCpaRecommendation `json:"setTargetCpaRecommendation,omitempty"`
	// SetTargetRoasRecommendation: Output only. The set target ROAS
	// recommendation.
	SetTargetRoasRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationForecastingSetTargetRoasRecommendation `json:"setTargetRoasRecommendation,omitempty"`
	// ShoppingAddAgeGroupRecommendation: Output only. The shopping add age group
	// recommendation.
	ShoppingAddAgeGroupRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddAgeGroupRecommendation,omitempty"`
	// ShoppingAddColorRecommendation: Output only. The shopping add color
	// recommendation.
	ShoppingAddColorRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddColorRecommendation,omitempty"`
	// ShoppingAddGenderRecommendation: Output only. The shopping add gender
	// recommendation.
	ShoppingAddGenderRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddGenderRecommendation,omitempty"`
	// ShoppingAddGtinRecommendation: Output only. The shopping add GTIN
	// recommendation.
	ShoppingAddGtinRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddGtinRecommendation,omitempty"`
	// ShoppingAddMoreIdentifiersRecommendation: Output only. The shopping add more
	// identifiers recommendation.
	ShoppingAddMoreIdentifiersRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddMoreIdentifiersRecommendation,omitempty"`
	// ShoppingAddProductsToCampaignRecommendation: Output only. The shopping add
	// products to campaign recommendation.
	ShoppingAddProductsToCampaignRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingAddProductsToCampaignRecommendation `json:"shoppingAddProductsToCampaignRecommendation,omitempty"`
	// ShoppingAddSizeRecommendation: Output only. The shopping add size
	// recommendation.
	ShoppingAddSizeRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingOfferAttributeRecommendation `json:"shoppingAddSizeRecommendation,omitempty"`
	// ShoppingFixDisapprovedProductsRecommendation: Output only. The shopping fix
	// disapproved products recommendation.
	ShoppingFixDisapprovedProductsRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingFixDisapprovedProductsRecommendation `json:"shoppingFixDisapprovedProductsRecommendation,omitempty"`
	// ShoppingFixMerchantCenterAccountSuspensionWarningRecommendation: Output
	// only. The shopping fix Merchant Center account suspension warning
	// recommendation.
	ShoppingFixMerchantCenterAccountSuspensionWarningRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation `json:"shoppingFixMerchantCenterAccountSuspensionWarningRecommendation,omitempty"`
	// ShoppingFixSuspendedMerchantCenterAccountRecommendation: Output only. The
	// shopping fix suspended Merchant Center account recommendation.
	ShoppingFixSuspendedMerchantCenterAccountRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingMerchantCenterAccountSuspensionRecommendation `json:"shoppingFixSuspendedMerchantCenterAccountRecommendation,omitempty"`
	// ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation:
	// Output only. The shopping migrate Regular Shopping Campaign offers to
	// Performance Max recommendation.
	ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation `json:"shoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation,omitempty"`
	// ShoppingTargetAllOffersRecommendation: Output only. The shopping target all
	// offers recommendation.
	ShoppingTargetAllOffersRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationShoppingTargetAllOffersRecommendation `json:"shoppingTargetAllOffersRecommendation,omitempty"`
	// SitelinkAssetRecommendation: Output only. The sitelink asset recommendation.
	SitelinkAssetRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationSitelinkAssetRecommendation `json:"sitelinkAssetRecommendation,omitempty"`
	// TargetCpaOptInRecommendation: Output only. The TargetCPA opt-in
	// recommendation.
	TargetCpaOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationTargetCpaOptInRecommendation `json:"targetCpaOptInRecommendation,omitempty"`
	// TargetRoasOptInRecommendation: Output only. The Target ROAS opt-in
	// recommendation.
	TargetRoasOptInRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationTargetRoasOptInRecommendation `json:"targetRoasOptInRecommendation,omitempty"`
	// TextAdRecommendation: Output only. Add expanded text ad recommendation.
	TextAdRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationTextAdRecommendation `json:"textAdRecommendation,omitempty"`
	// Type: Output only. The type of recommendation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BUDGET" - Provides optimized budget recommendations for
	// campaigns.
	//   "KEYWORD" - Keyword recommendation.
	//   "TEXT_AD" - Recommendation to add a new text ad.
	//   "TARGET_CPA_OPT_IN" - Recommendation to update a campaign to use a Target
	// CPA bidding strategy.
	//   "MAXIMIZE_CONVERSIONS_OPT_IN" - Recommendation to update a campaign to use
	// the Maximize Conversions bidding strategy.
	//   "ENHANCED_CPC_OPT_IN" - Recommendation to enable Enhanced Cost Per Click
	// for a campaign.
	//   "SEARCH_PARTNERS_OPT_IN" - Recommendation to start showing your campaign's
	// ads on Google Search Partners Websites.
	//   "MAXIMIZE_CLICKS_OPT_IN" - Recommendation to update a campaign to use a
	// Maximize Clicks bidding strategy.
	//   "OPTIMIZE_AD_ROTATION" - Recommendation to start using the "Optimize" ad
	// rotation setting for the given ad group.
	//   "KEYWORD_MATCH_TYPE" - Recommendation to change an existing keyword from
	// one match type to a broader match type.
	//   "MOVE_UNUSED_BUDGET" - Recommendation to move unused budget from one
	// budget to a constrained budget.
	//   "FORECASTING_CAMPAIGN_BUDGET" - Budget recommendation for campaigns that
	// are expected to become budget-constrained in the future (as opposed to the
	// CAMPAIGN_BUDGET recommendation, which applies to campaigns that are
	// currently budget-constrained).
	//   "TARGET_ROAS_OPT_IN" - Recommendation to update a campaign to use a Target
	// ROAS bidding strategy.
	//   "RESPONSIVE_SEARCH_AD" - Recommendation to add a new responsive search ad.
	//   "MARGINAL_ROI_CAMPAIGN_BUDGET" - Budget recommendation for campaigns whose
	// ROI is predicted to increase with a budget adjustment.
	//   "USE_BROAD_MATCH_KEYWORD" - Recommendation to add broad match versions of
	// keywords for fully automated conversion-based bidding campaigns.
	//   "RESPONSIVE_SEARCH_AD_ASSET" - Recommendation to add new responsive search
	// ad assets.
	//   "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to
	// upgrade a Smart Shopping campaign to a Performance Max campaign.
	//   "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH" - Recommendation to improve
	// strength of responsive search ad.
	//   "DISPLAY_EXPANSION_OPT_IN" - Recommendation to update a campaign to use
	// Display Expansion.
	//   "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to upgrade a
	// Local campaign to a Performance Max campaign.
	//   "RAISE_TARGET_CPA_BID_TOO_LOW" - Recommendation to raise target CPA when
	// it is too low and there are very few or no conversions. It is applied
	// asynchronously and can take minutes depending on the number of ad groups
	// there are in the related campaign.
	//   "FORECASTING_SET_TARGET_ROAS" - Recommendation to raise the budget in
	// advance of a seasonal event that is forecasted to increase traffic, and
	// change bidding strategy from maximize conversion value to target ROAS.
	//   "CALLOUT_ASSET" - Recommendation to add callout assets to campaign or
	// customer level.
	//   "SITELINK_ASSET" - Recommendation to add sitelink assets to campaign or
	// customer level.
	//   "CALL_ASSET" - Recommendation to add call assets to campaign or customer
	// level.
	//   "SHOPPING_ADD_AGE_GROUP" - Recommendation to add the age group attribute
	// to offers that are demoted because of a missing age group.
	//   "SHOPPING_ADD_COLOR" - Recommendation to add a color to offers that are
	// demoted because of a missing color.
	//   "SHOPPING_ADD_GENDER" - Recommendation to add a gender to offers that are
	// demoted because of a missing gender.
	//   "SHOPPING_ADD_GTIN" - Recommendation to add a GTIN (Global Trade Item
	// Number) to offers that are demoted because of a missing GTIN.
	//   "SHOPPING_ADD_MORE_IDENTIFIERS" - Recommendation to add more identifiers
	// to offers that are demoted because of missing identifiers.
	//   "SHOPPING_ADD_SIZE" - Recommendation to add the size to offers that are
	// demoted because of a missing size.
	//   "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN" - Recommendation informing a customer
	// about a campaign that cannot serve because no products are being targeted.
	//   "SHOPPING_FIX_DISAPPROVED_PRODUCTS" - The shopping recommendation
	// informing a customer about campaign with a high percentage of disapproved
	// products.
	//   "SHOPPING_TARGET_ALL_OFFERS" - Recommendation to create a catch-all
	// campaign that targets all offers.
	//   "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT" - Recommendation to fix
	// Merchant Center account suspension issues.
	//   "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING" - Recommendation
	// to fix Merchant Center account suspension warning issues.
	//   "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX" -
	// Recommendation to migrate offers targeted by Regular Shopping Campaigns to
	// existing Performance Max campaigns.
	//   "DYNAMIC_IMAGE_EXTENSION_OPT_IN" - Recommendation to enable dynamic image
	// extensions on the account, allowing Google to find the best images from ad
	// landing pages and complement text ads.
	//   "RAISE_TARGET_CPA" - Recommendation to raise Target CPA based on Google
	// predictions modeled from past conversions. It is applied asynchronously and
	// can take minutes depending on the number of ad groups there are in the
	// related campaign.
	//   "LOWER_TARGET_ROAS" - Recommendation to lower Target ROAS.
	//   "PERFORMANCE_MAX_OPT_IN" - Recommendation to opt into Performance Max
	// campaigns.
	//   "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH" - Recommendation to improve the
	// asset group strength of a Performance Max campaign to an "Excellent" rating.
	//   "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation
	// to migrate Dynamic Search Ads to Performance Max campaigns.
	//   "FORECASTING_SET_TARGET_CPA" - Recommendation to set a target CPA for
	// campaigns that do not have one specified, in advance of a seasonal event
	// that is forecasted to increase traffic.
	//   "SET_TARGET_CPA" - Recommendation to set a target CPA for campaigns that
	// do not have one specified.
	//   "SET_TARGET_ROAS" - Recommendation to set a target ROAS for campaigns that
	// do not have one specified.
	//   "MAXIMIZE_CONVERSION_VALUE_OPT_IN" - Recommendation to update a campaign
	// to use the Maximize Conversion Value bidding strategy.
	//   "IMPROVE_GOOGLE_TAG_COVERAGE" - Recommendation to deploy Google Tag on
	// more pages.
	//   "PERFORMANCE_MAX_FINAL_URL_OPT_IN" - Recommendation to turn on Final URL
	// expansion for your Performance Max campaigns.
	//   "REFRESH_CUSTOMER_MATCH_LIST" - Recommendation to update a customer list
	// that hasn't been updated in the last 90 days.
	//   "CUSTOM_AUDIENCE_OPT_IN" - Recommendation to create a custom audience.
	//   "LEAD_FORM_ASSET" - Recommendation to add lead form assets to campaign or
	// customer level.
	//   "IMPROVE_DEMAND_GEN_AD_STRENGTH" - Recommendation to improve the strength
	// of ads in Demand Gen campaigns.
	Type string `json:"type,omitempty"`
	// UpgradeLocalCampaignToPerformanceMaxRecommendation: Output only. The upgrade
	// a Local campaign to a Performance Max campaign recommendation.
	UpgradeLocalCampaignToPerformanceMaxRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationUpgradeLocalCampaignToPerformanceMaxRecommendation `json:"upgradeLocalCampaignToPerformanceMaxRecommendation,omitempty"`
	// UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation: Output only. The
	// upgrade a Smart Shopping campaign to a Performance Max campaign
	// recommendation.
	UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationUpgradeSmartShoppingCampaignToPerformanceMaxRecommendation `json:"upgradeSmartShoppingCampaignToPerformanceMaxRecommendation,omitempty"`
	// UseBroadMatchKeywordRecommendation: Output only. The use broad match keyword
	// recommendation.
	UseBroadMatchKeywordRecommendation *GoogleAdsSearchads360V23ResourcesRecommendationUseBroadMatchKeywordRecommendation `json:"useBroadMatchKeywordRecommendation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Recommendation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Recommendation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__RecommendationSubscription:
// Recommendation Subscription resource
type GoogleAdsSearchads360V23Resources__RecommendationSubscription struct {
	// CreateDateTime: Output only. Time in seconds when the subscription was first
	// created. The datetime is in the customer's time zone and in "yyyy-MM-dd
	// HH:mm:ss" format.
	CreateDateTime string `json:"createDateTime,omitempty"`
	// ModifyDateTime: Output only. Contains the time in microseconds, when the
	// Recommendation Subscription was last updated. The datetime is in the
	// customer's time zone and in "yyyy-MM-dd HH:mm:ss.ssssss" format.
	ModifyDateTime string `json:"modifyDateTime,omitempty"`
	// ResourceName: Immutable. The resource name of the recommendation
	// subscription.
	// `customers/{customer_id}/recommendationSubscriptions/{recommendation_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Required. Status of the subscription, either enabled or paused.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Output-only. Represents a format not yet defined in this enum.
	//   "ENABLED" - A subscription in the enabled state will automatically apply
	// any recommendations of that type.
	//   "PAUSED" - Recommendations of the relevant type will not be automatically
	// applied. Subscriptions cannot be deleted. Once created, they can only move
	// between enabled and paused states.
	Status string `json:"status,omitempty"`
	// Type: Required. Immutable. The type of recommendation subscribed to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BUDGET" - Provides optimized budget recommendations for
	// campaigns.
	//   "KEYWORD" - Keyword recommendation.
	//   "TEXT_AD" - Recommendation to add a new text ad.
	//   "TARGET_CPA_OPT_IN" - Recommendation to update a campaign to use a Target
	// CPA bidding strategy.
	//   "MAXIMIZE_CONVERSIONS_OPT_IN" - Recommendation to update a campaign to use
	// the Maximize Conversions bidding strategy.
	//   "ENHANCED_CPC_OPT_IN" - Recommendation to enable Enhanced Cost Per Click
	// for a campaign.
	//   "SEARCH_PARTNERS_OPT_IN" - Recommendation to start showing your campaign's
	// ads on Google Search Partners Websites.
	//   "MAXIMIZE_CLICKS_OPT_IN" - Recommendation to update a campaign to use a
	// Maximize Clicks bidding strategy.
	//   "OPTIMIZE_AD_ROTATION" - Recommendation to start using the "Optimize" ad
	// rotation setting for the given ad group.
	//   "KEYWORD_MATCH_TYPE" - Recommendation to change an existing keyword from
	// one match type to a broader match type.
	//   "MOVE_UNUSED_BUDGET" - Recommendation to move unused budget from one
	// budget to a constrained budget.
	//   "FORECASTING_CAMPAIGN_BUDGET" - Budget recommendation for campaigns that
	// are expected to become budget-constrained in the future (as opposed to the
	// CAMPAIGN_BUDGET recommendation, which applies to campaigns that are
	// currently budget-constrained).
	//   "TARGET_ROAS_OPT_IN" - Recommendation to update a campaign to use a Target
	// ROAS bidding strategy.
	//   "RESPONSIVE_SEARCH_AD" - Recommendation to add a new responsive search ad.
	//   "MARGINAL_ROI_CAMPAIGN_BUDGET" - Budget recommendation for campaigns whose
	// ROI is predicted to increase with a budget adjustment.
	//   "USE_BROAD_MATCH_KEYWORD" - Recommendation to add broad match versions of
	// keywords for fully automated conversion-based bidding campaigns.
	//   "RESPONSIVE_SEARCH_AD_ASSET" - Recommendation to add new responsive search
	// ad assets.
	//   "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to
	// upgrade a Smart Shopping campaign to a Performance Max campaign.
	//   "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH" - Recommendation to improve
	// strength of responsive search ad.
	//   "DISPLAY_EXPANSION_OPT_IN" - Recommendation to update a campaign to use
	// Display Expansion.
	//   "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to upgrade a
	// Local campaign to a Performance Max campaign.
	//   "RAISE_TARGET_CPA_BID_TOO_LOW" - Recommendation to raise target CPA when
	// it is too low and there are very few or no conversions. It is applied
	// asynchronously and can take minutes depending on the number of ad groups
	// there are in the related campaign.
	//   "FORECASTING_SET_TARGET_ROAS" - Recommendation to raise the budget in
	// advance of a seasonal event that is forecasted to increase traffic, and
	// change bidding strategy from maximize conversion value to target ROAS.
	//   "CALLOUT_ASSET" - Recommendation to add callout assets to campaign or
	// customer level.
	//   "SITELINK_ASSET" - Recommendation to add sitelink assets to campaign or
	// customer level.
	//   "CALL_ASSET" - Recommendation to add call assets to campaign or customer
	// level.
	//   "SHOPPING_ADD_AGE_GROUP" - Recommendation to add the age group attribute
	// to offers that are demoted because of a missing age group.
	//   "SHOPPING_ADD_COLOR" - Recommendation to add a color to offers that are
	// demoted because of a missing color.
	//   "SHOPPING_ADD_GENDER" - Recommendation to add a gender to offers that are
	// demoted because of a missing gender.
	//   "SHOPPING_ADD_GTIN" - Recommendation to add a GTIN (Global Trade Item
	// Number) to offers that are demoted because of a missing GTIN.
	//   "SHOPPING_ADD_MORE_IDENTIFIERS" - Recommendation to add more identifiers
	// to offers that are demoted because of missing identifiers.
	//   "SHOPPING_ADD_SIZE" - Recommendation to add the size to offers that are
	// demoted because of a missing size.
	//   "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN" - Recommendation informing a customer
	// about a campaign that cannot serve because no products are being targeted.
	//   "SHOPPING_FIX_DISAPPROVED_PRODUCTS" - The shopping recommendation
	// informing a customer about campaign with a high percentage of disapproved
	// products.
	//   "SHOPPING_TARGET_ALL_OFFERS" - Recommendation to create a catch-all
	// campaign that targets all offers.
	//   "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT" - Recommendation to fix
	// Merchant Center account suspension issues.
	//   "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING" - Recommendation
	// to fix Merchant Center account suspension warning issues.
	//   "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX" -
	// Recommendation to migrate offers targeted by Regular Shopping Campaigns to
	// existing Performance Max campaigns.
	//   "DYNAMIC_IMAGE_EXTENSION_OPT_IN" - Recommendation to enable dynamic image
	// extensions on the account, allowing Google to find the best images from ad
	// landing pages and complement text ads.
	//   "RAISE_TARGET_CPA" - Recommendation to raise Target CPA based on Google
	// predictions modeled from past conversions. It is applied asynchronously and
	// can take minutes depending on the number of ad groups there are in the
	// related campaign.
	//   "LOWER_TARGET_ROAS" - Recommendation to lower Target ROAS.
	//   "PERFORMANCE_MAX_OPT_IN" - Recommendation to opt into Performance Max
	// campaigns.
	//   "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH" - Recommendation to improve the
	// asset group strength of a Performance Max campaign to an "Excellent" rating.
	//   "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation
	// to migrate Dynamic Search Ads to Performance Max campaigns.
	//   "FORECASTING_SET_TARGET_CPA" - Recommendation to set a target CPA for
	// campaigns that do not have one specified, in advance of a seasonal event
	// that is forecasted to increase traffic.
	//   "SET_TARGET_CPA" - Recommendation to set a target CPA for campaigns that
	// do not have one specified.
	//   "SET_TARGET_ROAS" - Recommendation to set a target ROAS for campaigns that
	// do not have one specified.
	//   "MAXIMIZE_CONVERSION_VALUE_OPT_IN" - Recommendation to update a campaign
	// to use the Maximize Conversion Value bidding strategy.
	//   "IMPROVE_GOOGLE_TAG_COVERAGE" - Recommendation to deploy Google Tag on
	// more pages.
	//   "PERFORMANCE_MAX_FINAL_URL_OPT_IN" - Recommendation to turn on Final URL
	// expansion for your Performance Max campaigns.
	//   "REFRESH_CUSTOMER_MATCH_LIST" - Recommendation to update a customer list
	// that hasn't been updated in the last 90 days.
	//   "CUSTOM_AUDIENCE_OPT_IN" - Recommendation to create a custom audience.
	//   "LEAD_FORM_ASSET" - Recommendation to add lead form assets to campaign or
	// customer level.
	//   "IMPROVE_DEMAND_GEN_AD_STRENGTH" - Recommendation to improve the strength
	// of ads in Demand Gen campaigns.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateDateTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__RecommendationSubscription) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__RecommendationSubscription
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__RemarketingAction: A remarketing action.
// A snippet of JavaScript code that will collect the product id and the type
// of page people visited (product page, shopping cart page, purchase page,
// general site visit) on an advertiser's website.
type GoogleAdsSearchads360V23Resources__RemarketingAction struct {
	// Id: Output only. Id of the remarketing action.
	Id int64 `json:"id,omitempty,string"`
	// Name: The name of the remarketing action. This field is required and should
	// not be empty when creating new remarketing actions.
	Name string `json:"name,omitempty"`
	// ResourceName: Immutable. The resource name of the remarketing action.
	// Remarketing action resource names have the form:
	// `customers/{customer_id}/remarketingActions/{remarketing_action_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TagSnippets: Output only. The snippets used for tracking remarketing
	// actions.
	TagSnippets []*GoogleAdsSearchads360V23Common__TagSnippet `json:"tagSnippets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__RemarketingAction) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__RemarketingAction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__RemarketingSetting: Remarketing setting
// for a customer.
type GoogleAdsSearchads360V23Resources__RemarketingSetting struct {
	// GoogleGlobalSiteTag: Output only. The Google tag.
	GoogleGlobalSiteTag string `json:"googleGlobalSiteTag,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoogleGlobalSiteTag") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoogleGlobalSiteTag") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__RemarketingSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__RemarketingSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Residency: Details about the employee's
// medical residency. Residency is a stage of graduate medical education in
// which a qualified medical professional practices under the supervision of a
// senior clinician.
type GoogleAdsSearchads360V23Resources__Residency struct {
	// CompletionYear: Output only. Year of completion.
	CompletionYear int64 `json:"completionYear,omitempty"`
	// InstitutionName: Output only. Name of the institution at which the residency
	// was completed.
	InstitutionName string `json:"institutionName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletionYear") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletionYear") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Residency) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Residency
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SearchAds360Campaign: A Search Ads 360
// campaign.
type GoogleAdsSearchads360V23Resources__SearchAds360Campaign struct {
	// ProductAttributionFilterType: The type of product attribution filtering to
	// apply to this campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "INHERIT" - Inherit the filter type from a parent or default
	// configuration.
	//   "MANUAL" - Manually configure/manage the filter. This requires additional
	// configuration at the campaign level.
	//   "AUTO_BRAND" - Automatically determine and manage the Brand filter through
	// the external API.
	ProductAttributionFilterType string `json:"productAttributionFilterType,omitempty"`
	// ResourceName: Immutable. The resource name of the Search Ads 360 campaign.
	// Search Ads 360 campaign resource names have the form:
	// `customers/{customer_id}/searchAds360Campaigns/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ProductAttributionFilterType") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductAttributionFilterType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SearchAds360Campaign) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SearchAds360Campaign
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SearchAds360Field: A field or resource
// (artifact) used by SearchAds360Service.
type GoogleAdsSearchads360V23Resources__SearchAds360Field struct {
	// AttributeResources: Output only. The names of all resources that are
	// selectable with the described artifact. Fields from these resources do not
	// segment metrics when included in search queries. This field is only set for
	// artifacts whose category is RESOURCE.
	AttributeResources []string `json:"attributeResources,omitempty"`
	// Category: Output only. The category of the artifact.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified
	//   "UNKNOWN" - Unknown
	//   "RESOURCE" - The described artifact is a resource.
	//   "ATTRIBUTE" - The described artifact is a field and is an attribute of a
	// resource. Including a resource attribute field in a query may segment the
	// query if the resource to which it is attributed segments the resource found
	// in the FROM clause.
	//   "SEGMENT" - The described artifact is a field and always segments search
	// queries.
	//   "METRIC" - The described artifact is a field and is a metric. It never
	// segments search queries.
	Category string `json:"category,omitempty"`
	// DataType: Output only. This field determines the operators that can be used
	// with the artifact in WHERE clauses.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unspecified
	//   "UNKNOWN" - Unknown
	//   "BOOLEAN" - Maps to google.protobuf.BoolValue Applicable operators: =, !=
	//   "DATE" - Maps to google.protobuf.StringValue. It can be compared using the
	// set of operators specific to dates however. Applicable operators: =, <, >,
	// <=, >=, BETWEEN, DURING, and IN
	//   "DOUBLE" - Maps to google.protobuf.DoubleValue Applicable operators: =,
	// !=, <, >, IN, NOT IN
	//   "ENUM" - Maps to an enum. It's specific definition can be found at
	// type_url. Applicable operators: =, !=, IN, NOT IN
	//   "FLOAT" - Maps to google.protobuf.FloatValue Applicable operators: =, !=,
	// <, >, IN, NOT IN
	//   "INT32" - Maps to google.protobuf.Int32Value Applicable operators: =, !=,
	// <, >, <=, >=, BETWEEN, IN, NOT IN
	//   "INT64" - Maps to google.protobuf.Int64Value Applicable operators: =, !=,
	// <, >, <=, >=, BETWEEN, IN, NOT IN
	//   "MESSAGE" - Maps to a protocol buffer message type. The data type's
	// details can be found in type_url. No operators work with MESSAGE fields.
	//   "RESOURCE_NAME" - Maps to google.protobuf.StringValue. Represents the
	// resource name (unique id) of a resource or one of its foreign keys. No
	// operators work with RESOURCE_NAME fields.
	//   "STRING" - Maps to google.protobuf.StringValue. Applicable operators: =,
	// !=, LIKE, NOT LIKE, IN, NOT IN
	//   "UINT64" - Maps to google.protobuf.UInt64Value Applicable operators: =,
	// !=, <, >, <=, >=, BETWEEN, IN, NOT IN
	DataType string `json:"dataType,omitempty"`
	// EnumValues: Output only. Values the artifact can assume if it is a field of
	// type ENUM. This field is only set for artifacts of category SEGMENT or
	// ATTRIBUTE.
	EnumValues []string `json:"enumValues,omitempty"`
	// Filterable: Output only. Whether the artifact can be used in a WHERE clause
	// in search queries.
	Filterable bool `json:"filterable,omitempty"`
	// IsRepeated: Output only. Whether the field artifact is repeated.
	IsRepeated bool `json:"isRepeated,omitempty"`
	// Metrics: Output only. This field lists the names of all metrics that are
	// selectable with the described artifact when it is used in the FROM clause.
	// It is only set for artifacts whose category is RESOURCE.
	Metrics []string `json:"metrics,omitempty"`
	// Name: Output only. The name of the artifact.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the artifact. Artifact
	// resource names have the form: `SearchAds360Fields/{name}`
	ResourceName string `json:"resourceName,omitempty"`
	// Segments: Output only. This field lists the names of all artifacts, whether
	// a segment or another resource, that segment metrics when included in search
	// queries and when the described artifact is used in the FROM clause. It is
	// only set for artifacts whose category is RESOURCE.
	Segments []string `json:"segments,omitempty"`
	// Selectable: Output only. Whether the artifact can be used in a SELECT clause
	// in search queries.
	Selectable bool `json:"selectable,omitempty"`
	// SelectableWith: Output only. The names of all resources, segments, and
	// metrics that are selectable with the described artifact.
	SelectableWith []string `json:"selectableWith,omitempty"`
	// Sortable: Output only. Whether the artifact can be used in a ORDER BY clause
	// in search queries.
	Sortable bool `json:"sortable,omitempty"`
	// TypeUrl: Output only. The URL of proto describing the artifact's data type.
	TypeUrl string `json:"typeUrl,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AttributeResources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeResources") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SearchAds360Field) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SearchAds360Field
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SearchTermView: A search term view with
// metrics aggregated by search term at the ad group level. This view does not
// include Performance Max data. If you are looking for Performance Max search
// term data, use the CampaignSearchTermView instead.
type GoogleAdsSearchads360V23Resources__SearchTermView struct {
	// AdGroup: Output only. The ad group the search term served in.
	AdGroup string `json:"adGroup,omitempty"`
	// ResourceName: Output only. The resource name of the search term view. Search
	// term view resource names have the form:
	// `customers/{customer_id}/searchTermViews/{campaign_id}~{ad_group_id}~{URL-bas
	// e64_search_term}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. The search term.
	SearchTerm string `json:"searchTerm,omitempty"`
	// Status: Output only. Indicates whether the search term is currently one of
	// your targeted or excluded keywords.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADDED" - Search term is added to targeted keywords.
	//   "EXCLUDED" - Search term matches a negative keyword.
	//   "ADDED_EXCLUDED" - Search term has been both added and excluded.
	//   "NONE" - Search term is neither targeted nor excluded.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SharedCriterion: A criterion belonging to
// a shared set.
type GoogleAdsSearchads360V23Resources__SharedCriterion struct {
	// Brand: Immutable. Brand.
	Brand *GoogleAdsSearchads360V23Common__BrandInfo `json:"brand,omitempty"`
	// CriterionId: Output only. The ID of the criterion. This field is ignored for
	// mutates.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Keyword: Immutable. Keyword.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// MobileAppCategory: Immutable. Mobile App Category.
	MobileAppCategory *GoogleAdsSearchads360V23Common__MobileAppCategoryInfo `json:"mobileAppCategory,omitempty"`
	// MobileApplication: Immutable. Mobile application.
	MobileApplication *GoogleAdsSearchads360V23Common__MobileApplicationInfo `json:"mobileApplication,omitempty"`
	// Negative: Immutable. If true, the criterion is excluded. If false, the
	// criterion is targeted.
	Negative bool `json:"negative,omitempty"`
	// Placement: Immutable. Placement.
	Placement *GoogleAdsSearchads360V23Common__PlacementInfo `json:"placement,omitempty"`
	// ResourceName: Immutable. The resource name of the shared criterion. Shared
	// set resource names have the form:
	// `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// SharedSet: Immutable. The shared set to which the shared criterion belongs.
	SharedSet string `json:"sharedSet,omitempty"`
	// Type: Output only. The type of the criterion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "KEYWORD" - Keyword, for example, 'mars cruise'.
	//   "PLACEMENT" - Placement, also known as Website, for example,
	// 'www.flowers4sale.com'
	//   "MOBILE_APP_CATEGORY" - Mobile application categories to target.
	//   "MOBILE_APPLICATION" - Mobile applications to target.
	//   "DEVICE" - Devices to target.
	//   "LOCATION" - Locations to target.
	//   "LISTING_GROUP" - Listing groups to target.
	//   "AD_SCHEDULE" - Ad Schedule.
	//   "AGE_RANGE" - Age range.
	//   "GENDER" - Gender.
	//   "INCOME_RANGE" - Income Range.
	//   "PARENTAL_STATUS" - Parental status.
	//   "YOUTUBE_VIDEO" - YouTube Video.
	//   "YOUTUBE_CHANNEL" - YouTube Channel.
	//   "USER_LIST" - User list.
	//   "PROXIMITY" - Proximity.
	//   "TOPIC" - A topic target on the display network (for example, "Pets &
	// Animals").
	//   "LISTING_SCOPE" - Listing scope to target.
	//   "LANGUAGE" - Language.
	//   "IP_BLOCK" - IpBlock.
	//   "CONTENT_LABEL" - Content Label for category exclusion.
	//   "CARRIER" - Carrier.
	//   "USER_INTEREST" - A category the user is interested in.
	//   "WEBPAGE" - Webpage criterion for dynamic search ads.
	//   "OPERATING_SYSTEM_VERSION" - Operating system version.
	//   "APP_PAYMENT_MODEL" - App payment model.
	//   "MOBILE_DEVICE" - Mobile device.
	//   "CUSTOM_AFFINITY" - Custom affinity.
	//   "CUSTOM_INTENT" - Custom intent.
	//   "LOCATION_GROUP" - Location group.
	//   "CUSTOM_AUDIENCE" - Custom audience
	//   "COMBINED_AUDIENCE" - Combined audience
	//   "KEYWORD_THEME" - Smart Campaign keyword theme
	//   "AUDIENCE" - Audience
	//   "NEGATIVE_KEYWORD_LIST" - Negative Keyword List
	//   "LOCAL_SERVICE_ID" - Local Services Ads Service ID.
	//   "SEARCH_THEME" - Search Theme.
	//   "BRAND" - Brand
	//   "BRAND_LIST" - Brand List
	//   "LIFE_EVENT" - Life Event
	//   "WEBPAGE_LIST" - Webpage List
	//   "VIDEO_LINEUP" - Video lineup
	//   "PLACEMENT_LIST" - Placement List
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST" - A list of rules for item groups in
	// Vertical Ads.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE" - A rule for an item group in Vertical Ads.
	Type string `json:"type,omitempty"`
	// VerticalAdsItemGroupRule: Immutable. Vertical ads item group rule.
	VerticalAdsItemGroupRule *GoogleAdsSearchads360V23Common__VerticalAdsItemGroupRuleInfo `json:"verticalAdsItemGroupRule,omitempty"`
	// Webpage: Immutable. Webpage.
	Webpage *GoogleAdsSearchads360V23Common__WebpageInfo `json:"webpage,omitempty"`
	// YoutubeChannel: Immutable. YouTube Channel.
	YoutubeChannel *GoogleAdsSearchads360V23Common__YouTubeChannelInfo `json:"youtubeChannel,omitempty"`
	// YoutubeVideo: Immutable. YouTube Video.
	YoutubeVideo *GoogleAdsSearchads360V23Common__YouTubeVideoInfo `json:"youtubeVideo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Brand") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Brand") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SharedCriterion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SharedCriterion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SharedSet: SharedSets are used for
// sharing criterion exclusions across multiple campaigns.
type GoogleAdsSearchads360V23Resources__SharedSet struct {
	// Id: Output only. The ID of this shared set. Read only.
	Id int64 `json:"id,omitempty,string"`
	// MemberCount: Output only. The number of shared criteria within this shared
	// set. Read only.
	MemberCount int64 `json:"memberCount,omitempty,string"`
	// Name: The name of this shared set. Required. Shared Sets must have names
	// that are unique among active shared sets of the same type. The length of
	// this string should be between 1 and 255 UTF-8 bytes, inclusive.
	Name string `json:"name,omitempty"`
	// ReferenceCount: Output only. The number of campaigns associated with this
	// shared set. Read only.
	ReferenceCount int64 `json:"referenceCount,omitempty,string"`
	// ResourceName: Immutable. The resource name of the shared set. Shared set
	// resource names have the form:
	// `customers/{customer_id}/sharedSets/{shared_set_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status of this shared set. Read only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The shared set is enabled.
	//   "REMOVED" - The shared set is removed and can no longer be used.
	Status string `json:"status,omitempty"`
	// Type: Immutable. The type of this shared set: each shared set holds only a
	// single kind of resource. Required. Immutable.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEGATIVE_KEYWORDS" - A set of keywords that can be excluded from
	// targeting.
	//   "NEGATIVE_PLACEMENTS" - A set of placements that can be excluded from
	// targeting.
	//   "ACCOUNT_LEVEL_NEGATIVE_KEYWORDS" - An account-level set of keywords that
	// can be excluded from targeting.
	//   "BRANDS" - A set of brands can be included or excluded from targeting.
	//   "WEBPAGES" - A set of webpages that can be excluded from targeting. This
	// shared set type is not publicly available.
	//   "VERTICAL_ADS_ITEM_GROUP_RULE_LIST" - A set of vertical ads item group
	// rules that can be included or excluded from targeting in Vertical Ads (e.g.,
	// for hotel ads).
	Type string `json:"type,omitempty"`
	// VerticalAdsItemVerticalType: Immutable. Shared sets of type
	// VERTICAL_ADS_ITEM_GROUP_RULE_LIST are associated with a particular vertical
	// (e.g. hotels, things to do, flights, etc.). This field is required for
	// shared sets of type VERTICAL_ADS_ITEM_GROUP_RULE_LIST.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HOTELS" - Hotels travel vertical.
	//   "VACATION_RENTALS" - Vacation rentals travel vertical.
	//   "RENTAL_CARS" - Rental cars travel vertical.
	//   "EVENTS" - Events travel vertical.
	//   "THINGS_TO_DO" - Things to do travel vertical.
	//   "FLIGHTS" - Flights travel vertical.
	VerticalAdsItemVerticalType string `json:"verticalAdsItemVerticalType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SharedSet) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SharedSet
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ShoppingPerformanceView: Shopping
// performance view. Provides Shopping campaign and Performance Max campaign
// statistics aggregated at several product dimension levels. Product dimension
// values from Merchant Center such as brand, category, custom attributes,
// product condition, and product type will reflect the state of each dimension
// as of the date and time when the corresponding event was recorded. The
// number of impressions and clicks that `shopping_performance_view` returns
// stats for may be different from campaign reports.
// `shopping_performance_view` shows impressions and clicks on products
// appearing in ads, while campaign reports show impressions and clicks on the
// ads themselves. Depending on the format, an ad can show from zero to several
// products, so the numbers may not match. In Search Ads 360 UI, you can query
// impressions and clicks of products appearing in ads by selecting a column
// from "Product attributes" in the report editor. For example, selecting the
// "Brand" column is equivalent to selecting `segments.product_brand`.
type GoogleAdsSearchads360V23Resources__ShoppingPerformanceView struct {
	// ResourceName: Output only. The resource name of the Shopping performance
	// view. Shopping performance view resource names have the form:
	// `customers/{customer_id}/shoppingPerformanceView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ShoppingPerformanceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ShoppingPerformanceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ShoppingProduct: A shopping product from
// Google Merchant Center that can be advertised by campaigns. The resource
// returns currently existing products from Google Merchant Center accounts
// linked with the customer. A campaign includes a product by specifying its
// merchant id (or, if available, the Multi Client Account id of the merchant)
// in the `ShoppingSetting`, and can limit the inclusion to products having a
// specified feed label. Standard Shopping campaigns can also limit the
// inclusion through a `campaign_criterion.listing_scope`. Queries to this
// resource specify a scope: * Account: - Filters on campaigns or ad groups are
// not specified. - All products from the linked Google Merchant Center
// accounts are returned. - Metrics and some fields (see the per-field
// documentation) are aggregated across all Shopping and Performance Max
// campaigns that include a product. * Campaign: - An equality filter on
// `campaign` is specified. Supported campaign types are Shopping, Performance
// Max, Demand Gen, Video, App. - Only products that are included by the
// specified campaign are returned. - Metrics and some fields (see the
// per-field documentation) are restricted to the specified campaign. - Only
// the following metrics are supported for Demand Gen, Video, App campaigns:
// impressions, clicks, ctr. * Ad group: - An equality filter on `ad_group` and
// `campaign` is specified. Supported campaign types are Shopping, Demand Gen,
// Video, App. - Only products that are included by the specified campaign are
// returned. - Metrics and some fields (see the per-field documentation) are
// restricted to the specified ad group. - Only the following metrics are
// supported for Demand Gen, Video, App campaigns: impressions, clicks, ctr.
// Note that segmentation by date segments is not permitted and will return
// UNSUPPORTED_DATE_SEGMENTATION error. On the other hand, filtering on date
// segments is allowed.
type GoogleAdsSearchads360V23Resources__ShoppingProduct struct {
	// AdGroup: Output only. An ad group of a campaign that includes the product.
	// This field is selectable only in the ad group scope, which requires an
	// equality filter on `campaign` and `ad_group`.
	AdGroup string `json:"adGroup,omitempty"`
	// Availability: Output only. The availability of the product as provided by
	// the merchant.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - Used for return value only. Represents values unknown in this
	// version.
	//   "IN_STOCK" - The product is in stock.
	//   "OUT_OF_STOCK" - The product is out of stock.
	//   "PREORDER" - The product can be preordered.
	Availability string `json:"availability,omitempty"`
	// Brand: Output only. The brand of the product as provided by the merchant.
	Brand string `json:"brand,omitempty"`
	// Campaign: Output only. A campaign that includes the product. This field is
	// selectable only in the campaign scope, which requires an equality filter on
	// `campaign`.
	Campaign string `json:"campaign,omitempty"`
	// CategoryLevel1: Output only. The category level 1 of the product.
	CategoryLevel1 string `json:"categoryLevel1,omitempty"`
	// CategoryLevel2: Output only. The category level 2 of the product.
	CategoryLevel2 string `json:"categoryLevel2,omitempty"`
	// CategoryLevel3: Output only. The category level 3 of the product.
	CategoryLevel3 string `json:"categoryLevel3,omitempty"`
	// CategoryLevel4: Output only. The category level 4 of the product.
	CategoryLevel4 string `json:"categoryLevel4,omitempty"`
	// CategoryLevel5: Output only. The category level 5 of the product.
	CategoryLevel5 string `json:"categoryLevel5,omitempty"`
	// Channel: Output only. The product channel describing the locality of the
	// product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	Channel string `json:"channel,omitempty"`
	// ChannelExclusivity: Output only. The channel exclusivity of the product as
	// provided by the merchant.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SINGLE_CHANNEL" - The item is sold through one channel only, either local
	// stores or online as indicated by its ProductChannel.
	//   "MULTI_CHANNEL" - The item is matched to its online or local stores
	// counterpart, indicating it is available for purchase in both
	// ShoppingProductChannels.
	ChannelExclusivity string `json:"channelExclusivity,omitempty"`
	// Condition: Output only. The condition of the product as provided by the
	// merchant.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NEW" - The product condition is new.
	//   "REFURBISHED" - The product condition is refurbished.
	//   "USED" - The product condition is used.
	Condition string `json:"condition,omitempty"`
	// CurrencyCode: Output only. The currency code as provided by the merchant, in
	// ISO 4217 format.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// CustomAttribute0: Output only. The custom attribute 0 of the product as
	// provided by the merchant.
	CustomAttribute0 string `json:"customAttribute0,omitempty"`
	// CustomAttribute1: Output only. The custom attribute 1 of the product as
	// provided by the merchant.
	CustomAttribute1 string `json:"customAttribute1,omitempty"`
	// CustomAttribute2: Output only. The custom attribute 2 of the product as
	// provided by the merchant.
	CustomAttribute2 string `json:"customAttribute2,omitempty"`
	// CustomAttribute3: Output only. The custom attribute 3 of the product as
	// provided by the merchant.
	CustomAttribute3 string `json:"customAttribute3,omitempty"`
	// CustomAttribute4: Output only. The custom attribute 4 of the product as
	// provided by the merchant.
	CustomAttribute4 string `json:"customAttribute4,omitempty"`
	// EffectiveMaxCpcMicros: Output only. The effective maximum cost-per-click
	// (effective max. CPC) of the product. This field is available only if the
	// query specifies the campaign or ad group scope, and if the campaign uses
	// manual bidding. The value is the highest bid set for the product in product
	// groups across all enabled ad groups. It represents the most you're willing
	// to pay for a click on the product. This field can take up to 24 hours to
	// update.
	EffectiveMaxCpcMicros int64 `json:"effectiveMaxCpcMicros,omitempty,string"`
	// FeedLabel: Output only. The product feed label as provided by the merchant.
	FeedLabel string `json:"feedLabel,omitempty"`
	// Issues: Output only. The list of issues affecting whether the product can
	// show in ads. The value of this field is restricted to the scope specified in
	// the query, see the documentation of the resource. This field can take up to
	// 24 hours to update. This field is not supported for App campaigns.
	Issues []*GoogleAdsSearchads360V23ResourcesShoppingProductProductIssue `json:"issues,omitempty"`
	// ItemId: Output only. The item id of the product as provided by the merchant.
	ItemId string `json:"itemId,omitempty"`
	// LanguageCode: Output only. The language code as provided by the merchant, in
	// BCP 47 format.
	LanguageCode string `json:"languageCode,omitempty"`
	// MerchantCenterId: Output only. The id of the merchant that owns the product.
	MerchantCenterId int64 `json:"merchantCenterId,omitempty,string"`
	// MultiClientAccountId: Output only. The id of the Multi Client Account of the
	// merchant, if present.
	MultiClientAccountId int64 `json:"multiClientAccountId,omitempty,string"`
	// PriceMicros: Output only. The price of the product in micros as provided by
	// the merchant, in the currency specified in `currency_code` (e.g. $2.97 is
	// reported as 2970000).
	PriceMicros int64 `json:"priceMicros,omitempty,string"`
	// ProductImageUri: Output only. The URI of the product image as provided by
	// the merchant.
	ProductImageUri string `json:"productImageUri,omitempty"`
	// ProductTypeLevel1: Output only. The product type level 1 as provided by the
	// merchant.
	ProductTypeLevel1 string `json:"productTypeLevel1,omitempty"`
	// ProductTypeLevel2: Output only. The product type level 2 as provided by the
	// merchant.
	ProductTypeLevel2 string `json:"productTypeLevel2,omitempty"`
	// ProductTypeLevel3: Output only. The product type level 3 as provided by the
	// merchant.
	ProductTypeLevel3 string `json:"productTypeLevel3,omitempty"`
	// ProductTypeLevel4: Output only. The product type level 4 as provided by the
	// merchant.
	ProductTypeLevel4 string `json:"productTypeLevel4,omitempty"`
	// ProductTypeLevel5: Output only. The product type level 5 as provided by the
	// merchant.
	ProductTypeLevel5 string `json:"productTypeLevel5,omitempty"`
	// ResourceName: Output only. The resource name of the shopping product.
	// Shopping product resource names have the form:
	// `customers/{customer_id}/shoppingProducts/{merchant_center_id}~{channel}~{lan
	// guage_code}~{feed_label}~{item_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Status: Output only. The status that indicates whether the product can show
	// in ads. The value of this field is restricted to the scope specified in the
	// query, see the documentation of the resource. This field can take up to 24
	// hours to update. This field is not supported for App campaigns.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents values unknown in this
	// version.
	//   "NOT_ELIGIBLE" - The product cannot show in ads.
	//   "ELIGIBLE_LIMITED" - The product can show in ads but may be limited in
	// where and when it can show due to identified issues.
	//   "ELIGIBLE" - The product can show in ads.
	Status string `json:"status,omitempty"`
	// TargetCountries: Output only. Upper-case two-letter ISO 3166-1 code of the
	// regions where the product is intended to be shown in ads.
	TargetCountries []string `json:"targetCountries,omitempty"`
	// Title: Output only. The title of the product as provided by the merchant.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ShoppingProduct) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ShoppingProduct
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView: A Smart
// campaign search term view.
type GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView struct {
	// Campaign: Output only. The Smart campaign the search term served in.
	Campaign string `json:"campaign,omitempty"`
	// ResourceName: Output only. The resource name of the Smart campaign search
	// term view. Smart campaign search term view resource names have the form:
	// `customers/{customer_id}/smartCampaignSearchTermViews/{campaign_id}~{URL-base
	// 64_search_term}`
	ResourceName string `json:"resourceName,omitempty"`
	// SearchTerm: Output only. The search term.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__SmartCampaignSetting: Settings for
// configuring Smart campaigns.
type GoogleAdsSearchads360V23Resources__SmartCampaignSetting struct {
	// AdOptimizedBusinessProfileSetting: Settings for configuring a business
	// profile optimized for ads as this campaign's landing page. This campaign
	// must be linked to a business profile to use this option. For more
	// information on this feature, consult
	// https://support.google.com/google-ads/answer/9827068.
	AdOptimizedBusinessProfileSetting *GoogleAdsSearchads360V23ResourcesSmartCampaignSettingAdOptimizedBusinessProfileSetting `json:"adOptimizedBusinessProfileSetting,omitempty"`
	// AdvertisingLanguageCode: The language code to advertise in from the set of
	// [supported language codes]
	// (https://developers.google.com/google-ads/api/reference/data/codes-formats#languages).
	AdvertisingLanguageCode string `json:"advertisingLanguageCode,omitempty"`
	// BusinessName: The name of the business.
	BusinessName string `json:"businessName,omitempty"`
	// BusinessProfileLocation: The resource name of a Business Profile location.
	// Business Profile location resource names can be fetched through the Business
	// Profile API and adhere to the following format: `locations/{locationId}`.
	// See the [Business Profile API]
	// (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
	// for additional details.
	BusinessProfileLocation string `json:"businessProfileLocation,omitempty"`
	// Campaign: Output only. The campaign to which these settings apply.
	Campaign string `json:"campaign,omitempty"`
	// FinalUrl: The user-provided landing page URL for this Campaign.
	FinalUrl string `json:"finalUrl,omitempty"`
	// PhoneNumber: Phone number and country code.
	PhoneNumber *GoogleAdsSearchads360V23ResourcesSmartCampaignSettingPhoneNumber `json:"phoneNumber,omitempty"`
	// ResourceName: Immutable. The resource name of the Smart campaign setting.
	// Smart campaign setting resource names have the form:
	// `customers/{customer_id}/smartCampaignSettings/{campaign_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdOptimizedBusinessProfileSetting") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "AdOptimizedBusinessProfileSetting") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__SmartCampaignSetting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__SmartCampaignSetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__TargetingExpansionView: A targeting
// expansion view with metrics. Returns metrics for automated expansion over
// manual targeting.
type GoogleAdsSearchads360V23Resources__TargetingExpansionView struct {
	// ResourceName: Output only. The resource name of the targeting expansion
	// view. Targeting expansion view resource names have the form:
	// `customers/{customer_id}/targetingExpansionViews/{campaign_id}~{targeting_exp
	// ansion_type}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__TargetingExpansionView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__TargetingExpansionView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink: A data
// sharing connection, allowing the import of third party app analytics into a
// Google Ads Customer.
type GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink struct {
	// ResourceName: Immutable. The resource name of the third party app analytics
	// link. Third party app analytics link resource names have the form:
	// `customers/{customer_id}/thirdPartyAppAnalyticsLinks/{account_link_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ShareableLinkId: Output only. The shareable link ID that should be provided
	// to the third party when setting up app analytics. This is able to be
	// regenerated using regenerate method in the
	// ThirdPartyAppAnalyticsLinkService.
	ShareableLinkId string `json:"shareableLinkId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier: The
// identifiers of a Third Party App Analytics Link.
type GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier struct {
	// AppAnalyticsProviderId: Immutable. The ID of the app analytics provider.
	// This field should not be empty when creating a new third party app analytics
	// link. It is unable to be modified after the creation of the link.
	AppAnalyticsProviderId int64 `json:"appAnalyticsProviderId,omitempty,string"`
	// AppId: Immutable. A string that uniquely identifies a mobile application
	// from which the data was collected to the Google Ads API. For iOS, the ID
	// string is the 9 digit string that appears at the end of an App Store URL
	// (for example, "422689480" for "Gmail" whose App Store link is
	// https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For
	// Android, the ID string is the application's package name (for example,
	// "com.google.android.gm" for "Gmail" given Google Play link
	// https://play.google.com/store/apps/details?id=com.google.android.gm) This
	// field should not be empty when creating a new third party app analytics
	// link. It is unable to be modified after the creation of the link.
	AppId string `json:"appId,omitempty"`
	// AppVendor: Immutable. The vendor of the app. This field should not be empty
	// when creating a new third party app analytics link. It is unable to be
	// modified after the creation of the link.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "APPLE_APP_STORE" - Mobile app vendor for Apple app store.
	//   "GOOGLE_APP_STORE" - Mobile app vendor for Google app store.
	AppVendor string `json:"appVendor,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppAnalyticsProviderId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppAnalyticsProviderId") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLinkIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__TopicConstant: Use topics to target or
// exclude placements in the Google Display Network based on the category into
// which the placement falls (for example, "Pets & Animals/Pets/Dogs").
type GoogleAdsSearchads360V23Resources__TopicConstant struct {
	// Id: Output only. The ID of the topic.
	Id int64 `json:"id,omitempty,string"`
	// Path: Output only. The category to target or exclude. Each subsequent
	// element in the array describes a more specific sub-category. For example,
	// {"Pets & Animals", "Pets", "Dogs"} represents the "Pets & Animals/Pets/Dogs"
	// category. List of available topic categories at
	// https://developers.google.com/google-ads/api/reference/data/verticals
	Path []string `json:"path,omitempty"`
	// ResourceName: Output only. The resource name of the topic constant. topic
	// constant resource names have the form: `topicConstants/{topic_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TopicConstantParent: Output only. Resource name of parent of the topic
	// constant.
	TopicConstantParent string `json:"topicConstantParent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__TopicConstant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__TopicConstant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__TopicView: A topic view.
type GoogleAdsSearchads360V23Resources__TopicView struct {
	// ResourceName: Output only. The resource name of the topic view. Topic view
	// resource names have the form:
	// `customers/{customer_id}/topicViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__TopicView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__TopicView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__TravelActivityGroupView: A travel
// activity group view.
type GoogleAdsSearchads360V23Resources__TravelActivityGroupView struct {
	// ResourceName: Output only. The resource name of the travel activity group
	// view. Travel Activity Group view resource names have the form:
	// `customers/{customer_id}/travelActivityGroupViews/{ad_group_id}~{criterion_id
	// }`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__TravelActivityGroupView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__TravelActivityGroupView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView: A travel
// activity performance view.
type GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView struct {
	// ResourceName: Output only. The resource name of the travel activity
	// performance view. Travel Activity performance view resource names have the
	// form: `customers/{customer_id}/travelActivityPerformanceView`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__UniversityDegree: A list of degrees this
// employee has obtained, and wants to feature.
type GoogleAdsSearchads360V23Resources__UniversityDegree struct {
	// Degree: Output only. Name of the degree obtained.
	Degree string `json:"degree,omitempty"`
	// GraduationYear: Output only. Year of graduation.
	GraduationYear int64 `json:"graduationYear,omitempty"`
	// InstitutionName: Output only. Name of the university at which the degree was
	// obtained.
	InstitutionName string `json:"institutionName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Degree") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Degree") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__UniversityDegree) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__UniversityDegree
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__UserInterest: A user interest: a
// particular interest-based vertical to be targeted.
type GoogleAdsSearchads360V23Resources__UserInterest struct {
	// Availabilities: Output only. Availability information of the user interest.
	Availabilities []*GoogleAdsSearchads360V23Common__CriterionCategoryAvailability `json:"availabilities,omitempty"`
	// LaunchedToAll: Output only. True if the user interest is launched to all
	// channels and locales.
	LaunchedToAll bool `json:"launchedToAll,omitempty"`
	// Name: Output only. The name of the user interest.
	Name string `json:"name,omitempty"`
	// ResourceName: Output only. The resource name of the user interest. User
	// interest resource names have the form:
	// `customers/{customer_id}/userInterests/{user_interest_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// TaxonomyType: Output only. Taxonomy type of the user interest.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AFFINITY" - The affinity for this user interest.
	//   "IN_MARKET" - The market for this user interest.
	//   "MOBILE_APP_INSTALL_USER" - Users known to have installed applications in
	// the specified categories.
	//   "VERTICAL_GEO" - The geographical location of the interest-based vertical.
	//   "NEW_SMART_PHONE_USER" - User interest criteria for new smart phone users.
	TaxonomyType string `json:"taxonomyType,omitempty"`
	// UserInterestId: Output only. The ID of the user interest.
	UserInterestId int64 `json:"userInterestId,omitempty,string"`
	// UserInterestParent: Output only. The parent of the user interest.
	UserInterestParent string `json:"userInterestParent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Availabilities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Availabilities") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__UserInterest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__UserInterest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__UserList: A user list. This is a list of
// users a customer may target. The unique key of a user list consists of the
// following fields: `id`. Note that the `name` must also be unique for user
// lists owned by a given customer, except in some cases where `access_reason`
// is set to `SHARED`. Violating the unique name constraint produces error:
// `UserListError.INVALID_NAME`.
type GoogleAdsSearchads360V23Resources__UserList struct {
	// AccessReason: Output only. Indicates the reason this account has been
	// granted access to the list. The reason can be SHARED, OWNED, LICENSED or
	// SUBSCRIBED. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OWNED" - The resource is owned by the user.
	//   "SHARED" - The resource is shared to the user.
	//   "LICENSED" - The resource is licensed to the user.
	//   "SUBSCRIBED" - The user subscribed to the resource.
	//   "AFFILIATED" - The resource is accessible to the user.
	AccessReason string `json:"accessReason,omitempty"`
	// AccountUserListStatus: Indicates if this share is still enabled. When a
	// UserList is shared with the user this field is set to ENABLED. Later the
	// userList owner can decide to revoke the share and make it DISABLED. The
	// default value of this field is set to ENABLED.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ENABLED" - The access is enabled.
	//   "DISABLED" - The access is disabled.
	AccountUserListStatus string `json:"accountUserListStatus,omitempty"`
	// BasicUserList: User list targeting as a collection of conversion or
	// remarketing actions.
	BasicUserList *GoogleAdsSearchads360V23Common__BasicUserListInfo `json:"basicUserList,omitempty"`
	// ClosingReason: Indicating the reason why this user list membership status is
	// closed. It is only populated on lists that were automatically closed due to
	// inactivity, and will be cleared once the list membership status becomes
	// open.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "UNUSED" - The userlist was closed because of not being used for over one
	// year.
	ClosingReason string `json:"closingReason,omitempty"`
	// CrmBasedUserList: User list of CRM users provided by the advertiser.
	CrmBasedUserList *GoogleAdsSearchads360V23Common__CrmBasedUserListInfo `json:"crmBasedUserList,omitempty"`
	// Description: Description of this user list.
	Description string `json:"description,omitempty"`
	// EligibleForDisplay: Output only. Indicates this user list is eligible for
	// Google Display Network. This field is read-only.
	EligibleForDisplay bool `json:"eligibleForDisplay,omitempty"`
	// EligibleForSearch: Indicates if this user list is eligible for Google Search
	// Network.
	EligibleForSearch bool `json:"eligibleForSearch,omitempty"`
	// Id: Output only. Id of the user list.
	Id int64 `json:"id,omitempty,string"`
	// IntegrationCode: An ID from external system. It is used by user list sellers
	// to correlate IDs on their systems.
	IntegrationCode string `json:"integrationCode,omitempty"`
	// LogicalUserList: User list that is a custom combination of user lists.
	LogicalUserList *GoogleAdsSearchads360V23Common__LogicalUserListInfo `json:"logicalUserList,omitempty"`
	// LookalikeUserList: Immutable. Lookalike User List.
	LookalikeUserList *GoogleAdsSearchads360V23Common__LookalikeUserListInfo `json:"lookalikeUserList,omitempty"`
	// MatchRatePercentage: Output only. Indicates match rate for Customer Match
	// lists. The range of this field is [0-100]. This will be null for other list
	// types or when it's not possible to calculate the match rate. This field is
	// read-only.
	MatchRatePercentage int64 `json:"matchRatePercentage,omitempty"`
	// MembershipLifeSpan: Number of days a user's cookie stays on your list since
	// its most recent addition to the list. This field must be between 0 and 540
	// inclusive. However, for CRM based userlists, this field can be set to 10000
	// which means no expiration. Beginning on April 7, 2025, using a value of
	// 10000 to indicate no expiration will no longer be supported. This field is
	// ignored for logical_user_list and rule_based_user_list types. Membership to
	// lists of these types depends on the rules defined by the lists.
	MembershipLifeSpan int64 `json:"membershipLifeSpan,omitempty,string"`
	// MembershipStatus: Membership status of this user list. Indicates whether a
	// user list is open or active. Only open user lists can accumulate more users
	// and can be targeted to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OPEN" - Open status - List is accruing members and can be targeted to.
	//   "CLOSED" - Closed status - No new members being added. Cannot be used for
	// targeting.
	MembershipStatus string `json:"membershipStatus,omitempty"`
	// Name: Name of this user list. Unique per user list, except in some cases
	// where a user list of the same name has `access_reason` set to `SHARED`.
	Name string `json:"name,omitempty"`
	// ReadOnly: Output only. An option that indicates if a user may edit a list.
	// Depends on the list ownership and list type. For example, external
	// remarketing user lists are not editable. This field is -only.
	ReadOnly bool `json:"readOnly,omitempty"`
	// ResourceName: Immutable. The resource name of the user list. User list
	// resource names have the form:
	// `customers/{customer_id}/userLists/{user_list_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// RuleBasedUserList: User list generated by a rule.
	RuleBasedUserList *GoogleAdsSearchads360V23Common__RuleBasedUserListInfo `json:"ruleBasedUserList,omitempty"`
	// SimilarUserList: Output only. User list which are similar to users from
	// another UserList. These lists are readonly and automatically created by
	// google.
	SimilarUserList *GoogleAdsSearchads360V23Common__SimilarUserListInfo `json:"similarUserList,omitempty"`
	// SizeForDisplay: Output only. Estimated number of users in this user list, on
	// the Google Display Network. This value is if the number of users has not yet
	// been determined. This field is -only.
	SizeForDisplay int64 `json:"sizeForDisplay,omitempty,string"`
	// SizeForSearch: Output only. Estimated number of users in this user list in
	// the google.com domain. These are the users available for targeting in Search
	// campaigns. This value is null if the number of users has not yet been
	// determined. This field is read-only.
	SizeForSearch int64 `json:"sizeForSearch,omitempty,string"`
	// SizeRangeForDisplay: Output only. Size range in terms of number of users of
	// the UserList, on the Google Display Network. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LESS_THAN_FIVE_HUNDRED" - User list has less than 500 users.
	//   "LESS_THAN_ONE_THOUSAND" - User list has number of users in range of 500
	// to 1000.
	//   "ONE_THOUSAND_TO_TEN_THOUSAND" - User list has number of users in range of
	// 1000 to 10000.
	//   "TEN_THOUSAND_TO_FIFTY_THOUSAND" - User list has number of users in range
	// of 10000 to 50000.
	//   "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND" - User list has number of users
	// in range of 50000 to 100000.
	//   "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND" - User list has number of
	// users in range of 100000 to 300000.
	//   "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND" - User list has number
	// of users in range of 300000 to 500000.
	//   "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION" - User list has number of users in
	// range of 500000 to 1 million.
	//   "ONE_MILLION_TO_TWO_MILLION" - User list has number of users in range of 1
	// to 2 millions.
	//   "TWO_MILLION_TO_THREE_MILLION" - User list has number of users in range of
	// 2 to 3 millions.
	//   "THREE_MILLION_TO_FIVE_MILLION" - User list has number of users in range
	// of 3 to 5 millions.
	//   "FIVE_MILLION_TO_TEN_MILLION" - User list has number of users in range of
	// 5 to 10 millions.
	//   "TEN_MILLION_TO_TWENTY_MILLION" - User list has number of users in range
	// of 10 to 20 millions.
	//   "TWENTY_MILLION_TO_THIRTY_MILLION" - User list has number of users in
	// range of 20 to 30 millions.
	//   "THIRTY_MILLION_TO_FIFTY_MILLION" - User list has number of users in range
	// of 30 to 50 millions.
	//   "OVER_FIFTY_MILLION" - User list has over 50 million users.
	SizeRangeForDisplay string `json:"sizeRangeForDisplay,omitempty"`
	// SizeRangeForSearch: Output only. Size range in terms of number of users of
	// the UserList, for Search ads. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LESS_THAN_FIVE_HUNDRED" - User list has less than 500 users.
	//   "LESS_THAN_ONE_THOUSAND" - User list has number of users in range of 500
	// to 1000.
	//   "ONE_THOUSAND_TO_TEN_THOUSAND" - User list has number of users in range of
	// 1000 to 10000.
	//   "TEN_THOUSAND_TO_FIFTY_THOUSAND" - User list has number of users in range
	// of 10000 to 50000.
	//   "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND" - User list has number of users
	// in range of 50000 to 100000.
	//   "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND" - User list has number of
	// users in range of 100000 to 300000.
	//   "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND" - User list has number
	// of users in range of 300000 to 500000.
	//   "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION" - User list has number of users in
	// range of 500000 to 1 million.
	//   "ONE_MILLION_TO_TWO_MILLION" - User list has number of users in range of 1
	// to 2 millions.
	//   "TWO_MILLION_TO_THREE_MILLION" - User list has number of users in range of
	// 2 to 3 millions.
	//   "THREE_MILLION_TO_FIVE_MILLION" - User list has number of users in range
	// of 3 to 5 millions.
	//   "FIVE_MILLION_TO_TEN_MILLION" - User list has number of users in range of
	// 5 to 10 millions.
	//   "TEN_MILLION_TO_TWENTY_MILLION" - User list has number of users in range
	// of 10 to 20 millions.
	//   "TWENTY_MILLION_TO_THIRTY_MILLION" - User list has number of users in
	// range of 20 to 30 millions.
	//   "THIRTY_MILLION_TO_FIFTY_MILLION" - User list has number of users in range
	// of 30 to 50 millions.
	//   "OVER_FIFTY_MILLION" - User list has over 50 million users.
	SizeRangeForSearch string `json:"sizeRangeForSearch,omitempty"`
	// Type: Output only. Type of this list. This field is read-only.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "REMARKETING" - UserList represented as a collection of conversion types.
	//   "LOGICAL" - UserList represented as a combination of other user
	// lists/interests.
	//   "EXTERNAL_REMARKETING" - UserList created in the Google Ad Manager
	// platform.
	//   "RULE_BASED" - UserList associated with a rule.
	//   "SIMILAR" - UserList with users similar to users of another UserList.
	//   "CRM_BASED" - UserList of first-party CRM data provided by advertiser in
	// the form of emails or other formats.
	//   "LOOKALIKE" - LookalikeUserlist, composed of users similar to those of a
	// configurable seed (set of UserLists)
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessReason") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessReason") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__UserList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__UserList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__UserListCustomerType: A user list
// customer type
type GoogleAdsSearchads360V23Resources__UserListCustomerType struct {
	// CustomerTypeCategory: Immutable. The user list customer type category
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown type.
	//   "ALL_CUSTOMERS" - Customer type category for all customers.
	//   "PURCHASERS" - Customer type category for all purchasers.
	//   "HIGH_VALUE_CUSTOMERS" - Customer type category for high value purchasers.
	//   "DISENGAGED_CUSTOMERS" - Customer type category for disengaged purchasers.
	//   "QUALIFIED_LEADS" - Customer type category for qualified leads.
	//   "CONVERTED_LEADS" - Customer type category for converted leads.
	//   "PAID_SUBSCRIBERS" - Customer type category for paid subscribers.
	//   "LOYALTY_SIGN_UPS" - Customer type category for loyalty signups.
	//   "CART_ABANDONERS" - Customer type category for cart abandoners.
	//   "LOYALTY_TIER_1_MEMBERS" - Customer type category for loyalty tier 1
	// members.
	//   "LOYALTY_TIER_2_MEMBERS" - Customer type category for loyalty tier 2
	// members.
	//   "LOYALTY_TIER_3_MEMBERS" - Customer type category for loyalty tier 3
	// members.
	//   "LOYALTY_TIER_4_MEMBERS" - Customer type category for loyalty tier 4
	// members.
	//   "LOYALTY_TIER_5_MEMBERS" - Customer type category for loyalty tier 5
	// members.
	//   "LOYALTY_TIER_6_MEMBERS" - Customer type category for loyalty tier 6
	// members.
	//   "LOYALTY_TIER_7_MEMBERS" - Customer type category for loyalty tier 7
	// members.
	CustomerTypeCategory string `json:"customerTypeCategory,omitempty"`
	// ResourceName: Immutable. The resource name of the user list customer type
	// User list customer type resource names have the form:
	// `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_
	// category}`
	ResourceName string `json:"resourceName,omitempty"`
	// UserList: Immutable. The resource name for the user list this user list
	// customer type is associated with
	UserList string `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerTypeCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerTypeCategory") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__UserListCustomerType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__UserListCustomerType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__UserLocationView: A user location view.
// User Location View includes all metrics aggregated at the country level, one
// row per country. It reports metrics at the actual physical location of the
// user by targeted or not targeted location. If other segment fields are used,
// you may get more than one row per country.
type GoogleAdsSearchads360V23Resources__UserLocationView struct {
	// CountryCriterionId: Output only. Criterion Id for the country.
	CountryCriterionId int64 `json:"countryCriterionId,omitempty,string"`
	// ResourceName: Output only. The resource name of the user location view.
	// UserLocation view resource names have the form:
	// `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_
	// location}`
	ResourceName string `json:"resourceName,omitempty"`
	// TargetingLocation: Output only. Indicates whether location was targeted or
	// not.
	TargetingLocation bool `json:"targetingLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCriterionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCriterionId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__UserLocationView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__UserLocationView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type GoogleAdsSearchads360V23Resources__Video struct {
	// ChannelId: Output only. The owner channel id of the video.
	ChannelId string `json:"channelId,omitempty"`
	// DurationMillis: Output only. The duration of the video in milliseconds.
	DurationMillis int64 `json:"durationMillis,omitempty,string"`
	// Id: Output only. The ID of the video.
	Id string `json:"id,omitempty"`
	// ResourceName: Output only. The resource name of the video. Video resource
	// names have the form: `customers/{customer_id}/videos/{video_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// Title: Output only. The title of the video.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Video) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Video
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__VideoCustomer: Video specific information
// about a Customer.
type GoogleAdsSearchads360V23Resources__VideoCustomer struct {
	// ThirdPartyIntegrationPartners: Third Party integration partners.
	ThirdPartyIntegrationPartners *GoogleAdsSearchads360V23Common__CustomerThirdPartyIntegrationPartners `json:"thirdPartyIntegrationPartners,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ThirdPartyIntegrationPartners") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ThirdPartyIntegrationPartners")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__VideoCustomer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__VideoCustomer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__Visit: A visit.
type GoogleAdsSearchads360V23Resources__Visit struct {
	// AdId: Output only. Ad ID. A value of 0 indicates that the ad is
	// unattributed.
	AdId int64 `json:"adId,omitempty,string"`
	// AssetFieldType: Output only. Asset field type of the visit event.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// AssetId: Output only. ID of the asset which was interacted with during the
	// visit event.
	AssetId int64 `json:"assetId,omitempty,string"`
	// ClickId: Output only. A unique string for each visit that is passed to the
	// landing page as the click id URL parameter.
	ClickId string `json:"clickId,omitempty"`
	// CriterionId: Output only. Search Ads 360 keyword ID. A value of 0 indicates
	// that the keyword is unattributed.
	CriterionId int64 `json:"criterionId,omitempty,string"`
	// Id: Output only. The ID of the visit.
	Id int64 `json:"id,omitempty,string"`
	// MerchantId: Output only. The Search Ads 360 inventory account ID containing
	// the product that was clicked on. Search Ads 360 generates this ID when you
	// link an inventory account in Search Ads 360.
	MerchantId int64 `json:"merchantId,omitempty,string"`
	// ProductChannel: Output only. The sales channel of the product that was
	// clicked on: Online or Local.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ONLINE" - The item is sold online.
	//   "LOCAL" - The item is sold in local stores.
	ProductChannel string `json:"productChannel,omitempty"`
	// ProductCountryCode: Output only. The country (ISO-3166 format) registered
	// for the inventory feed that contains the product clicked on.
	ProductCountryCode string `json:"productCountryCode,omitempty"`
	// ProductId: Output only. The ID of the product clicked on.
	ProductId string `json:"productId,omitempty"`
	// ProductLanguageCode: Output only. The language (ISO-639-1) that has been set
	// for the Merchant Center feed containing data about the product.
	ProductLanguageCode string `json:"productLanguageCode,omitempty"`
	// ProductStoreId: Output only. The store in the Local Inventory Ad that was
	// clicked on. This should match the store IDs used in your local products
	// feed.
	ProductStoreId string `json:"productStoreId,omitempty"`
	// ResourceName: Output only. The resource name of the visit. Visit resource
	// names have the form:
	// `customers/{customer_id}/visits/{ad_group_id}~{criterion_id}~{ds_visit_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// VisitDateTime: Output only. The timestamp of the visit event. The timestamp
	// is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" format.
	VisitDateTime string `json:"visitDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdId") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__Visit) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__Visit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__WebpageView: A webpage view.
type GoogleAdsSearchads360V23Resources__WebpageView struct {
	// ResourceName: Output only. The resource name of the webpage view. Webpage
	// view resource names have the form:
	// `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}`
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__WebpageView) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__WebpageView
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier: The identifier
// for YouTube video
type GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier struct {
	// ChannelId: Immutable. The ID of the hosting channel of the video. This is a
	// string value with “UC” prefix. For example, "UCK8sQmJBp8GCxrOtXWBpyEA".
	ChannelId string `json:"channelId,omitempty"`
	// VideoId: Immutable. The ID of the video associated with the video link. This
	// is the 11 character string value used in the YouTube video URL. For example,
	// video ID is jV1vkHv4zq8 from the YouTube video URL
	// "https://www.youtube.com/watch?v=jV1vkHv4zq8&t=2s".
	VideoId string `json:"videoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Resources__YoutubeVideoIdentifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParam
// eters: Common parameters used when applying ad asset recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters struct {
	// ExistingAssets: The resource names of existing assets to attach to a scope.
	// This may be combined with new_assets in the same call.
	ExistingAssets []string `json:"existingAssets,omitempty"`
	// NewAssets: The assets to create and attach to a scope. This may be combined
	// with existing_assets in the same call.
	NewAssets []*GoogleAdsSearchads360V23Resources__Asset `json:"newAssets,omitempty"`
	// Scope: Required. The scope at which to apply the assets. Assets at the
	// campaign scope level will be applied to the campaign associated with the
	// recommendation. Assets at the customer scope will apply to the entire
	// account. Assets at the campaign scope will override any attached at the
	// customer scope.
	//
	// Possible values:
	//   "UNSPECIFIED" - The apply scope has not been specified.
	//   "UNKNOWN" - Unknown.
	//   "CUSTOMER" - Apply at the customer scope.
	//   "CAMPAIGN" - Apply at the campaign scope.
	Scope string `json:"scope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExistingAssets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExistingAssets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallAssetParamete
// rs: Parameters to use when applying call asset recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallAssetParameters struct {
	// AdAssetApplyParameters: Required. Call assets to be added. This is a
	// required field.
	AdAssetApplyParameters *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters `json:"adAssetApplyParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallAssetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallAssetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallExtensionPara
// meters: Parameters to use when applying call extension recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallExtensionParameters struct {
	// CallExtensions: Call extensions to be added. This is a required field.
	CallExtensions []*GoogleAdsSearchads360V23Common__CallFeedItem `json:"callExtensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallExtensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallExtensions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallExtensionParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallExtensionParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutAssetParam
// eters: Parameters to use when applying callout asset recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutAssetParameters struct {
	// AdAssetApplyParameters: Required. Callout assets to be added. This is a
	// required field.
	AdAssetApplyParameters *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters `json:"adAssetApplyParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutAssetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutAssetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutExtensionP
// arameters: Parameters to use when applying callout extension recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutExtensionParameters struct {
	// CalloutExtensions: Callout extensions to be added. This is a required field.
	CalloutExtensions []*GoogleAdsSearchads360V23Common__CalloutFeedItem `json:"calloutExtensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CalloutExtensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CalloutExtensions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutExtensionParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutExtensionParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCampaignBudgetPar
// ameters: Parameters to use when applying a campaign budget recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCampaignBudgetParameters struct {
	// NewBudgetAmountMicros: New budget amount to set for target budget resource.
	// This is a required field.
	NewBudgetAmountMicros int64 `json:"newBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "NewBudgetAmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NewBudgetAmountMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCampaignBudgetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCampaignBudgetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTar
// getCpaParameters: Parameters to use when applying a set target CPA
// recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetCpaParameters struct {
	// CampaignBudgetAmountMicros: New campaign budget amount to set for a campaign
	// resource.
	CampaignBudgetAmountMicros int64 `json:"campaignBudgetAmountMicros,omitempty,string"`
	// TargetCpaMicros: Average CPA to use for Target CPA bidding strategy.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudgetAmountMicros")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudgetAmountMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetCpaParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetCpaParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTar
// getRoasParameters: Parameters to use when applying a forecasting set target
// roas recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters struct {
	// CampaignBudgetAmountMicros: New campaign budget amount to set for a campaign
	// resource.
	CampaignBudgetAmountMicros int64 `json:"campaignBudgetAmountMicros,omitempty,string"`
	// TargetRoas: New target ROAS (revenue per unit of spend) to set for a
	// campaign resource. The value is between 0.01 and 1000.0, inclusive.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudgetAmountMicros")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudgetAmountMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationKeywordParameters
// : Parameters to use when applying keyword recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationKeywordParameters struct {
	// AdGroup: The ad group resource to add keyword to. This is a required field.
	AdGroup string `json:"adGroup,omitempty"`
	// CpcBidMicros: Optional, CPC bid to set for the keyword. If not set, keyword
	// will use bid based on bidding strategy used by target ad group.
	CpcBidMicros int64 `json:"cpcBidMicros,omitempty,string"`
	// MatchType: The match type of the keyword. This is a required field.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	MatchType string `json:"matchType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationKeywordParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationKeywordParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLeadFormAssetPara
// meters: Parameters to use when applying a lead form asset recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLeadFormAssetParameters struct {
	// AdAssetApplyParameters: Required. Lead form assets to be added. This is a
	// required field.
	AdAssetApplyParameters *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters `json:"adAssetApplyParameters,omitempty"`
	// SetSubmitLeadFormAssetCampaignGoal: If true, the "Submit Lead Form" goal
	// will be set on the target campaign. As a result, ads will be shown as lead
	// form creative ads. If false, the "Submit Lead Form" goal will not be set on
	// the campaign and ads will contain lead form assets.
	SetSubmitLeadFormAssetCampaignGoal bool `json:"setSubmitLeadFormAssetCampaignGoal,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLeadFormAssetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLeadFormAssetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasPa
// rameters: Parameters to use when applying lower Target ROAS recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters struct {
	// TargetRoasMultiplier: Required. Target to set ROAS multiplier to. This is a
	// required field.
	TargetRoasMultiplier float64 `json:"targetRoasMultiplier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetRoasMultiplier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetRoasMultiplier") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters
	var s1 struct {
		TargetRoasMultiplier gensupport.JSONFloat64 `json:"targetRoasMultiplier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoasMultiplier = float64(s1.TargetRoasMultiplier)
	return nil
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationMoveUnusedBudgetP
// arameters: Parameters to use when applying move unused budget
// recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationMoveUnusedBudgetParameters struct {
	// BudgetMicrosToMove: Budget amount to move from excess budget to constrained
	// budget. This is a required field.
	BudgetMicrosToMove int64 `json:"budgetMicrosToMove,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "BudgetMicrosToMove") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BudgetMicrosToMove") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationMoveUnusedBudgetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationMoveUnusedBudgetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBid
// TooLowParameters: Parameters to use when applying a raise target CPA bid too
// low recommendation. The apply is asynchronous and can take minutes depending
// on the number of ad groups there is in the related campaign..
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters struct {
	// TargetMultiplier: Required. A number greater than 1.0 indicating the factor
	// by which to increase the target CPA. This is a required field.
	TargetMultiplier float64 `json:"targetMultiplier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetMultiplier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetMultiplier") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters
	var s1 struct {
		TargetMultiplier gensupport.JSONFloat64 `json:"targetMultiplier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetMultiplier = float64(s1.TargetMultiplier)
	return nil
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaPar
// ameters: Parameters to use when applying raise Target CPA recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters struct {
	// TargetCpaMultiplier: Required. Target to set CPA multiplier to. This is a
	// required field.
	TargetCpaMultiplier float64 `json:"targetCpaMultiplier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetCpaMultiplier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetCpaMultiplier") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters
	var s1 struct {
		TargetCpaMultiplier gensupport.JSONFloat64 `json:"targetCpaMultiplier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetCpaMultiplier = float64(s1.TargetCpaMultiplier)
	return nil
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchA
// dAssetParameters: Parameters to use when applying a responsive search ad
// asset recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdAssetParameters struct {
	// UpdatedAd: Updated ad. The current ad's content will be replaced.
	UpdatedAd *GoogleAdsSearchads360V23Resources__Ad `json:"updatedAd,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpdatedAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpdatedAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdAssetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdAssetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchA
// dImproveAdStrengthParameters: Parameters to use when applying a responsive
// search ad improve ad strength recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdImproveAdStrengthParameters struct {
	// UpdatedAd: Updated ad. The current ad's content will be replaced.
	UpdatedAd *GoogleAdsSearchads360V23Resources__Ad `json:"updatedAd,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpdatedAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpdatedAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdImproveAdStrengthParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdImproveAdStrengthParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchA
// dParameters: Parameters to use when applying a responsive search ad
// recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdParameters struct {
	// Ad: Required. New ad to add to recommended ad group.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkAssetPara
// meters: Parameters to use when applying sitelink asset recommendations.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkAssetParameters struct {
	// AdAssetApplyParameters: Required. Sitelink assets to be added. This is a
	// required field.
	AdAssetApplyParameters *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationAdAssetApplyParameters `json:"adAssetApplyParameters,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdAssetApplyParameters") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkAssetParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkAssetParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkExtension
// Parameters: Parameters to use when applying sitelink recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkExtensionParameters struct {
	// SitelinkExtensions: Sitelinks to be added. This is a required field.
	SitelinkExtensions []*GoogleAdsSearchads360V23Common__SitelinkFeedItem `json:"sitelinkExtensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SitelinkExtensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SitelinkExtensions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkExtensionParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkExtensionParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetCpaOptInPar
// ameters: Parameters to use when applying Target CPA recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetCpaOptInParameters struct {
	// NewCampaignBudgetAmountMicros: Optional, budget amount to set for the
	// campaign.
	NewCampaignBudgetAmountMicros int64 `json:"newCampaignBudgetAmountMicros,omitempty,string"`
	// TargetCpaMicros: Average CPA to use for Target CPA bidding strategy. This is
	// a required field.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g.
	// "NewCampaignBudgetAmountMicros") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NewCampaignBudgetAmountMicros")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetCpaOptInParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetCpaOptInParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInPa
// rameters: Parameters to use when applying a Target ROAS opt-in
// recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters struct {
	// NewCampaignBudgetAmountMicros: Optional, budget amount to set for the
	// campaign.
	NewCampaignBudgetAmountMicros int64 `json:"newCampaignBudgetAmountMicros,omitempty,string"`
	// TargetRoas: Average ROAS (revenue per unit of spend) to use for Target ROAS
	// bidding strategy. The value is between 0.01 and 1000.0, inclusive. This is a
	// required field, unless new_campaign_budget_amount_micros is set.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "NewCampaignBudgetAmountMicros") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NewCampaignBudgetAmountMicros")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTextAdParameters:
//
//	Parameters to use when applying a text ad recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTextAdParameters struct {
	// Ad: New ad to add to recommended ad group. All necessary fields need to be
	// set in this message. This is a required field.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTextAdParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTextAdParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesApplyRecommendationOperationUseBroadMatchKeyw
// ordParameters: Parameters to use when applying a use broad match keyword
// recommendation.
type GoogleAdsSearchads360V23ServicesApplyRecommendationOperationUseBroadMatchKeywordParameters struct {
	// NewBudgetAmountMicros: New budget amount to set for target budget resource.
	NewBudgetAmountMicros int64 `json:"newBudgetAmountMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "NewBudgetAmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NewBudgetAmountMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesApplyRecommendationOperationUseBroadMatchKeywordParameters) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesApplyRecommendationOperationUseBroadMatchKeywordParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesCampaignToForecastCampaignBiddingStrategy:
// Supported bidding strategies for new campaign forecasts.
type GoogleAdsSearchads360V23ServicesCampaignToForecastCampaignBiddingStrategy struct {
	// ManualCpcBiddingStrategy: Use manual CPC bidding strategy for forecasting.
	ManualCpcBiddingStrategy *GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy `json:"manualCpcBiddingStrategy,omitempty"`
	// MaximizeClicksBiddingStrategy: Use maximize clicks bidding strategy for
	// forecasting.
	MaximizeClicksBiddingStrategy *GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy `json:"maximizeClicksBiddingStrategy,omitempty"`
	// MaximizeConversionsBiddingStrategy: Use maximize conversions bidding
	// strategy for forecasting.
	MaximizeConversionsBiddingStrategy *GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy `json:"maximizeConversionsBiddingStrategy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ManualCpcBiddingStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ManualCpcBiddingStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesCampaignToForecastCampaignBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesCampaignToForecastCampaignBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesDismissRecommendationRequestDismissRecommenda
// tionOperation: Operation to dismiss a single recommendation identified by
// resource_name.
type GoogleAdsSearchads360V23ServicesDismissRecommendationRequestDismissRecommendationOperation struct {
	// ResourceName: The resource name of the recommendation to dismiss.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesDismissRecommendationRequestDismissRecommendationOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesDismissRecommendationRequestDismissRecommendationOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesDismissRecommendationResponseDismissRecommend
// ationResult: The result of dismissing a recommendation.
type GoogleAdsSearchads360V23ServicesDismissRecommendationResponseDismissRecommendationResult struct {
	// ResourceName: Returned for successful dismissals.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesDismissRecommendationResponseDismissRecommendationResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesDismissRecommendationResponseDismissRecommendationResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo:
// Current AdGroup Information of the campaign.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo struct {
	// AdGroupType: Optional. AdGroup Type of the AdGroup. This field is necessary
	// for the following recommendation_types if ad_group_info is set: KEYWORD
	//
	// Possible values:
	//   "UNSPECIFIED" - The type has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "SEARCH_STANDARD" - The default ad group type for Search campaigns.
	//   "DISPLAY_STANDARD" - The default ad group type for Display campaigns.
	//   "SHOPPING_PRODUCT_ADS" - The ad group type for Shopping campaigns serving
	// standard product ads.
	//   "HOTEL_ADS" - The default ad group type for Hotel campaigns.
	//   "SHOPPING_SMART_ADS" - The type for ad groups in Smart Shopping campaigns.
	//   "VIDEO_BUMPER" - Short unskippable in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_STREAM" - TrueView (skippable) in-stream video ads.
	//   "VIDEO_TRUE_VIEW_IN_DISPLAY" - TrueView in-display video ads.
	//   "VIDEO_NON_SKIPPABLE_IN_STREAM" - Unskippable in-stream video ads.
	//   "SEARCH_DYNAMIC_ADS" - Ad group type for Dynamic Search Ads ad groups.
	//   "SHOPPING_COMPARISON_LISTING_ADS" - The type for ad groups in Shopping
	// Comparison Listing campaigns.
	//   "PROMOTED_HOTEL_ADS" - The ad group type for Promoted Hotel ad groups.
	//   "VIDEO_RESPONSIVE" - Video responsive ad groups.
	//   "VIDEO_EFFICIENT_REACH" - Video efficient reach ad groups.
	//   "SMART_CAMPAIGN_ADS" - Ad group type for Smart campaigns.
	//   "TRAVEL_ADS" - Ad group type for Travel campaigns.
	AdGroupType string `json:"adGroupType,omitempty"`
	// Keywords: Optional. Current keywords. This field is optional for the
	// following recommendation_types if ad_group_info is set: KEYWORD
	Keywords []*GoogleAdsSearchads360V23Common__KeywordInfo `json:"keywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo:
//
//	Current AssetGroup information of the campaign.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo struct {
	// Description: Optional. Current descriptions of the asset group. This field
	// is optional for the following recommendation_types if asset_group_info is
	// set: CAMPAIGN_BUDGET
	Description []string `json:"description,omitempty"`
	// FinalUrl: Required. Current url of the asset group. This field is necessary
	// for the following recommendation_types if asset_group_info is set:
	// CAMPAIGN_BUDGET
	FinalUrl string `json:"finalUrl,omitempty"`
	// Headline: Optional. Current headlines of the asset group. This field is
	// optional for the following recommendation_types if asset_group_info is set:
	// CAMPAIGN_BUDGET
	Headline []string `json:"headline,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Description") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Description") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo:
// Current bidding information of the campaign. Provides a wrapper for
// bidding-related signals that inform recommendations.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo struct {
	// BiddingStrategyType: Current bidding strategy. This field is necessary for
	// the following recommendation_types: MAXIMIZE_CLICKS_OPT_IN,
	// MAXIMIZE_CONVERSIONS_OPT_IN, MAXIMIZE_CONVERSION_VALUE_OPT_IN,
	// SET_TARGET_CPA, SET_TARGET_ROAS, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "COMMISSION" - Commission is an automatic bidding strategy in which the
	// advertiser pays a certain portion of the conversion value.
	//   "ENHANCED_CPC" - Enhanced CPC is a bidding strategy that raises bids for
	// clicks that seem more likely to lead to a conversion and lowers them for
	// clicks where they seem less likely.
	//   "INVALID" - Used for return value only. Indicates that a campaign does not
	// have a bidding strategy. This prevents the campaign from serving. For
	// example, a campaign may be attached to a manager bidding strategy and the
	// serving account is subsequently unlinked from the manager account. In this
	// case the campaign will automatically be detached from the now inaccessible
	// manager bidding strategy and transition to the INVALID bidding strategy
	// type.
	//   "MANUAL_CPA" - Manual bidding strategy that allows advertiser to set the
	// bid per advertiser-specified action.
	//   "MANUAL_CPC" - Manual click based bidding where user pays per click.
	//   "MANUAL_CPM" - Manual impression based bidding where user pays per
	// thousand impressions.
	//   "MANUAL_CPV" - A bidding strategy that pays a configurable amount per
	// video view.
	//   "MAXIMIZE_CONVERSIONS" - A bidding strategy that automatically maximizes
	// number of conversions given a daily budget.
	//   "MAXIMIZE_CONVERSION_VALUE" - An automated bidding strategy that
	// automatically sets bids to maximize revenue while spending your budget.
	//   "PAGE_ONE_PROMOTED" - Page-One Promoted bidding scheme, which sets max cpc
	// bids to target impressions on page one or page one promoted slots on
	// google.com. This enum value is deprecated.
	//   "PERCENT_CPC" - Percent Cpc is bidding strategy where bids are a fraction
	// of the advertised price for some good or service.
	//   "TARGET_CPA" - Target CPA is an automated bid strategy that sets bids to
	// help get as many conversions as possible at the target cost-per-acquisition
	// (CPA) you set.
	//   "TARGET_CPC" - Target CPC is an automated bid strategy that sets bids to
	// help get as many clicks as possible at the target cost-per-click (CPC) you
	// set.
	//   "TARGET_CPM" - Target CPM is an automated bid strategy that sets bids to
	// help get as many impressions as possible at the target cost per one thousand
	// impressions (CPM) you set.
	//   "TARGET_IMPRESSION_SHARE" - An automated bidding strategy that sets bids
	// so that a certain percentage of search ads are shown at the top of the first
	// page (or other targeted location).
	//   "TARGET_OUTRANK_SHARE" - Target Outrank Share is an automated bidding
	// strategy that sets bids based on the target fraction of auctions where the
	// advertiser should outrank a specific competitor. This enum value is
	// deprecated.
	//   "TARGET_ROAS" - Target ROAS is an automated bidding strategy that helps
	// you maximize revenue while averaging a specific target Return On Average
	// Spend (ROAS).
	//   "TARGET_SPEND" - Target Spend is an automated bid strategy that sets your
	// bids to help get as many clicks as possible within your budget.
	BiddingStrategyType string `json:"biddingStrategyType,omitempty"`
	// TargetCpaMicros: Current target_cpa in micros. This can be populated for
	// campaigns with a bidding strategy type of TARGET_CPA or
	// MAXIMIZE_CONVERSIONS.
	TargetCpaMicros int64 `json:"targetCpaMicros,omitempty,string"`
	// TargetImpressionShareInfo: Optional. Current Target Impression Share
	// information of the campaign. This field is necessary for the following
	// recommendation_types: CAMPAIGN_BUDGET
	TargetImpressionShareInfo *GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo `json:"targetImpressionShareInfo,omitempty"`
	// TargetRoas: Current target_roas. This can be populated for campaigns with a
	// bidding strategy type of TARGET_ROAS or MAXIMIZE_CONVERSION_VALUE.
	TargetRoas float64 `json:"targetRoas,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BiddingStrategyType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddingStrategyType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo
	var s1 struct {
		TargetRoas gensupport.JSONFloat64 `json:"targetRoas"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TargetRoas = float64(s1.TargetRoas)
	return nil
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo:
// Current budget information of the campaign.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo struct {
	// CurrentBudget: Required. Current budget amount in micros. This field is
	// necessary for the following recommendation_types if budget_info is set:
	// CAMPAIGN_BUDGET
	CurrentBudget int64 `json:"currentBudget,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CurrentBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentBudget") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo: A
// keyword seed and a specific url to generate keywords from.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo struct {
	// KeywordSeeds: Optional. Keywords or phrases to generate ideas from, for
	// example: cars or "car dealership near me".
	KeywordSeeds []string `json:"keywordSeeds,omitempty"`
	// UrlSeed: A specific url to generate ideas from, for example:
	// www.example.com/cars.
	UrlSeed string `json:"urlSeed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KeywordSeeds") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KeywordSeeds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressio
// nShareInfo: Current Target Impression Share information of the campaign.
type GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo struct {
	// Location: Required. The targeted location on the search results page. This
	// is required for campaigns where the AdvertisingChannelType is SEARCH and the
	// bidding strategy type is TARGET_IMPRESSION_SHARE.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ANYWHERE_ON_PAGE" - Any location on the web page.
	//   "TOP_OF_PAGE" - Top box of ads.
	//   "ABSOLUTE_TOP_OF_PAGE" - Top slot in the top box of ads.
	Location string `json:"location,omitempty"`
	// MaxCpcBidCeiling: Optional. Ceiling of max CPC bids in micros set by
	// automated bidders. This is optional for campaigns with an
	// AdvertisingChannelType of SEARCH and a bidding strategy type of
	// TARGET_IMPRESSION_SHARE.
	MaxCpcBidCeiling int64 `json:"maxCpcBidCeiling,omitempty,string"`
	// TargetImpressionShareMicros: Required. The chosen fraction of targeted
	// impression share in micros. For example, 1% equals 10,000. It must be a
	// value between 1 and 1,000,000. This is required for campaigns with an
	// AdvertisingChannelType of SEARCH and a bidding strategy type of
	// TARGET_IMPRESSION_SHARE.
	TargetImpressionShareMicros int64 `json:"targetImpressionShareMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Location") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Location") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestTargetImpressionShareInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesIncentiveRequirementSpend: Spend
// requirements for an incentive.
type GoogleAdsSearchads360V23ServicesIncentiveRequirementSpend struct {
	// AwardAmount: Required. Amount in free spend that user will be granted after
	// spending target amount. Denominated in the currency of the country passed in
	// the get request.
	AwardAmount *GoogleType__Money `json:"awardAmount,omitempty"`
	// RequiredAmount: Required. Amount that user must spend to receive the award
	// amount. Denominated in the currency of the country passed in the get
	// request.
	RequiredAmount *GoogleType__Money `json:"requiredAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AwardAmount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AwardAmount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesIncentiveRequirementSpend) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesIncentiveRequirementSpend
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesIncentiveRequirement: Requirement for an
// incentive.
type GoogleAdsSearchads360V23ServicesIncentiveRequirement struct {
	// Spend: Optional. Spend requirement for an incentive.
	Spend *GoogleAdsSearchads360V23ServicesIncentiveRequirementSpend `json:"spend,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Spend") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Spend") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesIncentiveRequirement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesIncentiveRequirement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesMetricAttributesAttribute: The attribute of
// the metric in key value pair format.
type GoogleAdsSearchads360V23ServicesMetricAttributesAttribute struct {
	// Key: The key of the attribute.
	Key string `json:"key,omitempty"`
	// Value: The value of the attribute.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Key") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesMetricAttributesAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesMetricAttributesAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesProductFilterMarketingObjectiveList: The
// list of marketing objectives to generate benchmarks metrics for.
type GoogleAdsSearchads360V23ServicesProductFilterMarketingObjectiveList struct {
	// MarketingObjectives: Required. Marketing objectives to generate benchmarks
	// metrics for.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AWARENESS" - The objective is to increase awareness.
	//   "CONSIDERATION" - The objective is to encourage potential customers to
	// consider the brand or products.
	//   "ACTION" - The objective is to drive a specific conversion, such as a
	// purchase.
	MarketingObjectives []string `json:"marketingObjectives,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MarketingObjectives") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MarketingObjectives") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesProductFilterMarketingObjectiveList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesProductFilterMarketingObjectiveList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesProductFilterProductList: The list of
// products to generate benchmarks metrics for.
type GoogleAdsSearchads360V23ServicesProductFilterProductList struct {
	// ProductCodes: Required. Products to generate benchmarks metrics for.
	ProductCodes []string `json:"productCodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductCodes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductCodes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesProductFilterProductList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesProductFilterProductList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoBusinessContext:
// A context that describes a business.
type GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoBusinessContext struct {
	// BusinessName: Optional. The name of the business.
	BusinessName string `json:"businessName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoBusinessContext) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoBusinessContext
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoLocationList: A
// list of locations.
type GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoLocationList struct {
	// Locations: Required. Locations.
	Locations []*GoogleAdsSearchads360V23Common__LocationInfo `json:"locations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoLocationList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoLocationList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestGeoTargets:
// A list of geo target constant resource names.
type GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestGeoTargets struct {
	// GeoTargetConstants: A list of geo target constant resource names.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GeoTargetConstants") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstants") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestGeoTargets) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestGeoTargets
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestLocationNames
// : A list of location names.
type GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestLocationNames struct {
	// Names: A list of location names.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Names") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Names") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestLocationNames) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestLocationNames
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSuggestKeywordThemesResponseKeywordTheme: A
// Smart campaign keyword theme suggestion.
type GoogleAdsSearchads360V23ServicesSuggestKeywordThemesResponseKeywordTheme struct {
	// FreeFormKeywordTheme: A free-form text keyword theme.
	FreeFormKeywordTheme string `json:"freeFormKeywordTheme,omitempty"`
	// KeywordThemeConstant: A Smart campaign keyword theme constant.
	KeywordThemeConstant *GoogleAdsSearchads360V23Resources__KeywordThemeConstant `json:"keywordThemeConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FreeFormKeywordTheme") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FreeFormKeywordTheme") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSuggestKeywordThemesResponseKeywordTheme) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSuggestKeywordThemesResponseKeywordTheme
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudg
// etOption: Smart Campaign budget option.
type GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption struct {
	// DailyAmountMicros: The amount of the budget, in the local currency for the
	// account. Amount is specified in micros, where one million is equivalent to
	// one currency unit.
	DailyAmountMicros int64 `json:"dailyAmountMicros,omitempty,string"`
	// Metrics: Metrics pertaining to the suggested budget, could be empty if there
	// is not enough information to derive the estimates.
	Metrics *GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseMetrics `json:"metrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DailyAmountMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailyAmountMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseMetr
// ics: Performance metrics for a given budget option.
type GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseMetrics struct {
	// MaxDailyClicks: The estimated max daily clicks.
	MaxDailyClicks int64 `json:"maxDailyClicks,omitempty,string"`
	// MinDailyClicks: The estimated min daily clicks.
	MinDailyClicks int64 `json:"minDailyClicks,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "MaxDailyClicks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxDailyClicks") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation: A single
// operation to propose the creation of a new account-level budget or
// edit/end/remove an existing one.
type GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation struct {
	// Create: Create operation: A new proposal to create a new budget, edit an
	// existing budget, end an actively running budget, or remove an approved
	// budget scheduled to start in the future. No resource name is expected for
	// the new proposal.
	Create *GoogleAdsSearchads360V23Resources__AccountBudgetProposal `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed proposal is
	// expected, in this format:
	// `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}`
	//  A request may be cancelled iff it is pending.
	Remove string `json:"remove,omitempty"`
	// UpdateMask: FieldMask that determines which budget fields are modified.
	// While budgets may be modified, proposals that propose such modifications are
	// final. Therefore, update operations are not supported for proposals.
	// Proposals that modify budgets have the 'update' proposal type. Specifying a
	// mask for any other proposal type is considered an error.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AccountLinkOperation: A single update on
// an account link.
type GoogleAdsSearchads360V23Services__AccountLinkOperation struct {
	// Remove: Remove operation: A resource name for the account link to remove is
	// expected, in this format:
	// `customers/{customer_id}/accountLinks/{account_link_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The account link is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__AccountLink `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Remove") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Remove") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AccountLinkOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AccountLinkOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation: A single
// operation (create, remove) on an ad group ad label.
type GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// ad label.
	Create *GoogleAdsSearchads360V23Resources__AdGroupAdLabel `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the ad group ad label being
	// removed, in this format:
	// `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupAdOperation: A single operation
// (create, update, remove) on an ad group ad.
type GoogleAdsSearchads360V23Services__AdGroupAdOperation struct {
	// Create: Create operation: No resource name is expected for the new ad.
	Create *GoogleAdsSearchads360V23Resources__AdGroupAd `json:"create,omitempty"`
	// PolicyValidationParameter: Configuration for how policies are validated.
	PolicyValidationParameter *GoogleAdsSearchads360V23Common__PolicyValidationParameter `json:"policyValidationParameter,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad is expected, in
	// this format: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The ad is expected to have a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__AdGroupAd `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupAdOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupAdOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupAssetOperation: A single operation
// (create, update, remove) on an ad group asset.
type GoogleAdsSearchads360V23Services__AdGroupAssetOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// asset.
	Create *GoogleAdsSearchads360V23Resources__AdGroupAsset `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group asset is
	// expected, in this format:
	// `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The ad group asset is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__AdGroupAsset `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation: A single
// operation (create, remove) on an ad group asset set.
type GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// asset set.
	Create *GoogleAdsSearchads360V23Resources__AdGroupAssetSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group asset set
	// is expected, in this format:
	// `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation: A single
// operation (create, remove, update) on an ad group bid modifier.
type GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// bid modifier.
	Create *GoogleAdsSearchads360V23Resources__AdGroupBidModifier `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group bid
	// modifier is expected, in this format:
	// `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The ad group bid modifier is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__AdGroupBidModifier `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation: A
// single operation (create, remove) on a customizer attribute.
type GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// criterion customizer.
	Create *GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group criterion
	// customizer is expected, in this format:
	// `customers/{customer_id}/adGroupCriterionCustomizers/{ad_group_id}~{criterion
	// _id}~{customizer_attribute_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation: A single
// operation (create, remove) on an ad group criterion label.
type GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// label.
	Create *GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the ad group criterion label
	// being removed, in this format:
	// `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~
	// {label_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupCriterionOperation: A single
// operation (create, remove, update) on an ad group criterion.
type GoogleAdsSearchads360V23Services__AdGroupCriterionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// criterion.
	Create *GoogleAdsSearchads360V23Resources__AdGroupCriterion `json:"create,omitempty"`
	// ExemptPolicyViolationKeys: The list of policy violation keys that should not
	// cause a PolicyViolationError to be reported. Not all policy violations are
	// exemptable, refer to the is_exemptible field in the returned
	// PolicyViolationError. Resources violating these polices will be saved, but
	// will not be eligible to serve. They may begin serving at a later time due to
	// a change in policies, re-review of the resource, or a change in advertiser
	// certificates.
	ExemptPolicyViolationKeys []*GoogleAdsSearchads360V23Common__PolicyViolationKey `json:"exemptPolicyViolationKeys,omitempty"`
	// Remove: Remove operation: A resource name for the removed criterion is
	// expected, in this format:
	// `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The criterion is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__AdGroupCriterion `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupCriterionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupCriterionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation: A single
// operation (create, remove) on a customizer attribute.
type GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// customizer
	Create *GoogleAdsSearchads360V23Resources__AdGroupCustomizer `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group
	// customizer is expected, in this format:
	// `customers/{customer_id}/adGroupCustomizers/{ad_group_id}~{customizer_attribu
	// te_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion: The suggested
// text and AdGroup/Campaign pairing for a given keyword.
type GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion struct {
	// KeywordText: The original keyword text.
	KeywordText string `json:"keywordText,omitempty"`
	// SuggestedAdGroup: The suggested AdGroup for the keyword. Resource name
	// format: `customers/{customer_id}/adGroups/{ad_group_id}`
	SuggestedAdGroup string `json:"suggestedAdGroup,omitempty"`
	// SuggestedCampaign: The suggested Campaign for the keyword. Resource name
	// format: `customers/{customer_id}/campaigns/{campaign_id}`
	SuggestedCampaign string `json:"suggestedCampaign,omitempty"`
	// SuggestedKeywordText: The normalized version of keyword_text for
	// BROAD/EXACT/PHRASE suggestions.
	SuggestedKeywordText string `json:"suggestedKeywordText,omitempty"`
	// SuggestedMatchType: The suggested keyword match type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "EXACT" - Exact match.
	//   "PHRASE" - Phrase match.
	//   "BROAD" - Broad match.
	SuggestedMatchType string `json:"suggestedMatchType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KeywordText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KeywordText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupLabelOperation: A single operation
// (create, remove) on an ad group label.
type GoogleAdsSearchads360V23Services__AdGroupLabelOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group
	// label.
	Create *GoogleAdsSearchads360V23Resources__AdGroupLabel `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the ad group label being
	// removed, in this format:
	// `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupLabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupLabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdGroupOperation: A single operation
// (create, update, remove) on an ad group.
type GoogleAdsSearchads360V23Services__AdGroupOperation struct {
	// Create: Create operation: No resource name is expected for the new ad group.
	Create *GoogleAdsSearchads360V23Resources__AdGroup `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed ad group is
	// expected, in this format: `customers/{customer_id}/adGroups/{ad_group_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The ad group is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__AdGroup `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdGroupOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdGroupOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdOperation: A single update operation on
// an ad.
type GoogleAdsSearchads360V23Services__AdOperation struct {
	// PolicyValidationParameter: Configuration for how policies are validated.
	PolicyValidationParameter *GoogleAdsSearchads360V23Common__PolicyValidationParameter `json:"policyValidationParameter,omitempty"`
	// Update: Update operation: The ad is expected to have a valid resource name
	// in this format: `customers/{customer_id}/ads/{ad_id}`
	Update *GoogleAdsSearchads360V23Resources__Ad `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyValidationParameter")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyValidationParameter") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdParameterOperation: A single operation
// (create, update, remove) on ad parameter.
type GoogleAdsSearchads360V23Services__AdParameterOperation struct {
	// Create: Create operation: No resource name is expected for the new ad
	// parameter.
	Create *GoogleAdsSearchads360V23Resources__AdParameter `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the ad parameter to remove is
	// expected in this format:
	// `customers/{customer_id}/adParameters/{ad_group_id}~{criterion_id}~{parameter
	// _index}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The ad parameter is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__AdParameter `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdParameterOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdParameterOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest: Request
// message for BatchJobService.AddBatchJobOperations.
type GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest struct {
	// MutateOperations: Required. The list of mutates being added. Operations can
	// use negative integers as temp ids to signify dependencies between entities
	// created in this batch job. For example, a customer with id = 1234 can create
	// a campaign and an ad group in that same campaign by creating a campaign in
	// the first operation with the resource name explicitly set to
	// "customers/1234/campaigns/-1", and creating an ad group in the second
	// operation with the campaign field also set to "customers/1234/campaigns/-1".
	MutateOperations []*GoogleAdsSearchads360V23Services__MutateOperation `json:"mutateOperations,omitempty"`
	// SequenceToken: A token used to enforce sequencing. The first
	// AddBatchJobOperations request for a batch job should not set sequence_token.
	// Subsequent requests must set sequence_token to the value of
	// next_sequence_token received in the previous AddBatchJobOperations response.
	SequenceToken string `json:"sequenceToken,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MutateOperations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MutateOperations") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse: Response
// message for BatchJobService.AddBatchJobOperations.
type GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse struct {
	// NextSequenceToken: The sequence token to be used when calling
	// AddBatchJobOperations again if more operations need to be added. The next
	// AddBatchJobOperations request must set the sequence_token field to the value
	// of this field.
	NextSequenceToken string `json:"nextSequenceToken,omitempty"`
	// TotalOperations: The total number of operations added so far for this batch
	// job.
	TotalOperations int64 `json:"totalOperations,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "NextSequenceToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextSequenceToken") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest:
// Request message for
// OfflineUserDataJobService.AddOfflineUserDataJobOperations.
type GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest struct {
	// EnablePartialFailure: True to enable partial failure for the offline user
	// data job.
	EnablePartialFailure bool `json:"enablePartialFailure,omitempty"`
	// EnableWarnings: True to enable warnings for the offline user data job. When
	// enabled, a warning will not block the OfflineUserDataJobOperation, and will
	// also return warning messages about malformed field values.
	EnableWarnings bool `json:"enableWarnings,omitempty"`
	// Operations: Required. The list of operations to be done.
	Operations []*GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnablePartialFailure") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnablePartialFailure") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse:
// Response message for
// OfflineUserDataJobService.AddOfflineUserDataJobOperations.
type GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Warning: Non blocking errors that pertain to operation failures in the
	// warnings mode. Returned only when enable_warnings = true.
	Warning *GoogleRpc__Status `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AdvancedProductTargeting: Advanced
// targeting settings for products.
type GoogleAdsSearchads360V23Services__AdvancedProductTargeting struct {
	// SurfaceTargetingSettings: Surface targeting settings for this product.
	SurfaceTargetingSettings *GoogleAdsSearchads360V23Services__SurfaceTargeting `json:"surfaceTargetingSettings,omitempty"`
	// TargetFrequencySettings: Settings for a Target frequency campaign. Must be
	// set when selecting the TARGET_FREQUENCY product. See
	// https://support.google.com/google-ads/answer/12400225 for more information
	// about Target Frequency campaigns.
	TargetFrequencySettings *GoogleAdsSearchads360V23Services__TargetFrequencySettings `json:"targetFrequencySettings,omitempty"`
	// YoutubeSelectSettings: Settings for YouTube Select targeting.
	YoutubeSelectSettings *GoogleAdsSearchads360V23Services__YouTubeSelectSettings `json:"youtubeSelectSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SurfaceTargetingSettings")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SurfaceTargetingSettings") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AdvancedProductTargeting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AdvancedProductTargeting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AppendLeadConversationRequest: Request
// message for LocalServicesLeadService.AppendLeadConversation.
type GoogleAdsSearchads360V23Services__AppendLeadConversationRequest struct {
	// Conversations: Required. Conversations that are being appended.
	Conversations []*GoogleAdsSearchads360V23Services__Conversation `json:"conversations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Conversations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conversations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AppendLeadConversationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AppendLeadConversationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AppendLeadConversationResponse: Response
// message for LocalServicesLeadService.AppendLeadConversation.
type GoogleAdsSearchads360V23Services__AppendLeadConversationResponse struct {
	// Responses: Required. List of append conversation operation results.
	Responses []*GoogleAdsSearchads360V23Services__ConversationOrError `json:"responses,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Responses") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Responses") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AppendLeadConversationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AppendLeadConversationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyIncentiveRequest: Request message for
// applying an incentive.
type GoogleAdsSearchads360V23Services__ApplyIncentiveRequest struct {
	// CountryCode: Required. User's country code. Required. This field must be
	// equal to the Google Ads account's billing country. Incentive eligibility,
	// terms of service, and reward values are often country-specific. This country
	// code is used to ensure the selected incentive is applicable to the user.
	// Possible country codes:
	// https://developers.google.com/google-ads/api/data/codes-formats#country_codes
	CountryCode string `json:"countryCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyIncentiveRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyIncentiveRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyIncentiveResponse: Response for
// applying an incentive.
type GoogleAdsSearchads360V23Services__ApplyIncentiveResponse struct {
	// CouponCode: The coupon code of the applied incentive. A globally unique
	// identifier of the applied incentive. This code is separate and distinct from
	// the selected_incentive_id in the request.
	CouponCode string `json:"couponCode,omitempty"`
	// CreationTime: The timestamp when this incentive was applied. The timestamp
	// is in UTC timezone and in "yyyy-MM-dd HH:mm:ss" format.
	CreationTime string `json:"creationTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CouponCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CouponCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyIncentiveResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyIncentiveResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyRecommendationOperation: Information
// about the operation to apply a recommendation and any parameters to
// customize it.
type GoogleAdsSearchads360V23Services__ApplyRecommendationOperation struct {
	// CallAsset: Parameters to use when applying call asset recommendation.
	CallAsset *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallAssetParameters `json:"callAsset,omitempty"`
	// CallExtension: Parameters to use when applying call extension
	// recommendation.
	CallExtension *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCallExtensionParameters `json:"callExtension,omitempty"`
	// CalloutAsset: Parameters to use when applying callout asset recommendation.
	CalloutAsset *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutAssetParameters `json:"calloutAsset,omitempty"`
	// CalloutExtension: Parameters to use when applying callout extension
	// recommendation.
	CalloutExtension *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCalloutExtensionParameters `json:"calloutExtension,omitempty"`
	// CampaignBudget: Optional parameters to use when applying a campaign budget
	// recommendation.
	CampaignBudget *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationCampaignBudgetParameters `json:"campaignBudget,omitempty"`
	// ForecastingSetTargetCpa: Parameters to use when applying forecasting set
	// target CPA recommendation.
	ForecastingSetTargetCpa *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetCpaParameters `json:"forecastingSetTargetCpa,omitempty"`
	// ForecastingSetTargetRoas: Parameters to use when applying a forecasting set
	// target ROAS recommendation.
	ForecastingSetTargetRoas *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters `json:"forecastingSetTargetRoas,omitempty"`
	// Keyword: Optional parameters to use when applying keyword recommendation.
	Keyword *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationKeywordParameters `json:"keyword,omitempty"`
	// LeadFormAsset: Parameters to use when applying lead form asset
	// recommendation.
	LeadFormAsset *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLeadFormAssetParameters `json:"leadFormAsset,omitempty"`
	// LowerTargetRoas: Parameters to use when applying lower Target ROAS
	// recommendation.
	LowerTargetRoas *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationLowerTargetRoasParameters `json:"lowerTargetRoas,omitempty"`
	// MoveUnusedBudget: Parameters to use when applying move unused budget
	// recommendation.
	MoveUnusedBudget *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationMoveUnusedBudgetParameters `json:"moveUnusedBudget,omitempty"`
	// RaiseTargetCpa: Parameters to use when applying raise Target CPA
	// recommendation.
	RaiseTargetCpa *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaParameters `json:"raiseTargetCpa,omitempty"`
	// RaiseTargetCpaBidTooLow: Parameters to use when applying a raise target CPA
	// bid too low recommendation. The apply is asynchronous and can take minutes
	// depending on the number of ad groups there is in the related campaign.
	RaiseTargetCpaBidTooLow *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationRaiseTargetCpaBidTooLowParameters `json:"raiseTargetCpaBidTooLow,omitempty"`
	// ResourceName: The resource name of the recommendation to apply.
	ResourceName string `json:"resourceName,omitempty"`
	// ResponsiveSearchAd: Parameters to use when applying a responsive search ad
	// recommendation.
	ResponsiveSearchAd *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdParameters `json:"responsiveSearchAd,omitempty"`
	// ResponsiveSearchAdAsset: Parameters to use when applying a responsive search
	// ad asset recommendation.
	ResponsiveSearchAdAsset *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdAssetParameters `json:"responsiveSearchAdAsset,omitempty"`
	// ResponsiveSearchAdImproveAdStrength: Parameters to use when applying a
	// responsive search ad improve ad strength recommendation.
	ResponsiveSearchAdImproveAdStrength *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationResponsiveSearchAdImproveAdStrengthParameters `json:"responsiveSearchAdImproveAdStrength,omitempty"`
	// SetTargetCpa: Parameters to use when applying set target CPA recommendation.
	SetTargetCpa *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetCpaParameters `json:"setTargetCpa,omitempty"`
	// SetTargetRoas: Parameters to use when applying set target ROAS
	// recommendation.
	SetTargetRoas *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationForecastingSetTargetRoasParameters `json:"setTargetRoas,omitempty"`
	// SitelinkAsset: Parameters to use when applying sitelink asset
	// recommendation.
	SitelinkAsset *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkAssetParameters `json:"sitelinkAsset,omitempty"`
	// SitelinkExtension: Parameters to use when applying sitelink recommendation.
	SitelinkExtension *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationSitelinkExtensionParameters `json:"sitelinkExtension,omitempty"`
	// TargetCpaOptIn: Optional parameters to use when applying target CPA opt-in
	// recommendation.
	TargetCpaOptIn *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetCpaOptInParameters `json:"targetCpaOptIn,omitempty"`
	// TargetRoasOptIn: Optional parameters to use when applying target ROAS opt-in
	// recommendation.
	TargetRoasOptIn *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTargetRoasOptInParameters `json:"targetRoasOptIn,omitempty"`
	// TextAd: Optional parameters to use when applying a text ad recommendation.
	TextAd *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationTextAdParameters `json:"textAd,omitempty"`
	// UseBroadMatchKeyword: Parameters to use when applying a use broad match
	// keyword recommendation.
	UseBroadMatchKeyword *GoogleAdsSearchads360V23ServicesApplyRecommendationOperationUseBroadMatchKeywordParameters `json:"useBroadMatchKeyword,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyRecommendationOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyRecommendationOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyRecommendationRequest: Request
// message for RecommendationService.ApplyRecommendation.
type GoogleAdsSearchads360V23Services__ApplyRecommendationRequest struct {
	// Operations: Required. The list of operations to apply recommendations. If
	// partial_failure=false all recommendations should be of the same type There
	// is a limit of 100 operations per request.
	Operations []*GoogleAdsSearchads360V23Services__ApplyRecommendationOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, operations will be carried
	// out as a transaction if and only if they are all valid. Default is false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyRecommendationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyRecommendationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyRecommendationResponse: Response
// message for RecommendationService.ApplyRecommendation.
type GoogleAdsSearchads360V23Services__ApplyRecommendationResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors) we return the RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: Results of operations to apply recommendations.
	Results []*GoogleAdsSearchads360V23Services__ApplyRecommendationResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyRecommendationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyRecommendationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ApplyRecommendationResult: The result of
// applying a recommendation.
type GoogleAdsSearchads360V23Services__ApplyRecommendationResult struct {
	// ResourceName: Returned for successful applies.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ApplyRecommendationResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ApplyRecommendationResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetGroupAssetOperation: A single
// operation (create, remove) on an asset group asset.
type GoogleAdsSearchads360V23Services__AssetGroupAssetOperation struct {
	// Create: Create operation: No resource name is expected for the new asset
	// group asset.
	Create *GoogleAdsSearchads360V23Resources__AssetGroupAsset `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset group asset
	// is expected, in this format:
	// `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_
	// type}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The asset group asset is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__AssetGroupAsset `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetGroupAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetGroupAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation: A
// single operation (create, remove) on an asset group listing group filter.
type GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation struct {
	// Create: Create operation: No resource name is expected for the new asset
	// group listing group filter.
	Create *GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset group
	// listing group filter is expected, in this format:
	// `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{list
	// ing_group_filter_id}` An entity can be removed only if it's not referenced
	// by other parent_listing_group_id. If multiple entities are being deleted,
	// the mutates must be in the correct order.
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The asset group listing group filter is expected
	// to have a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetGroupOperation: A single operation
// (create, remove) on an asset group.
type GoogleAdsSearchads360V23Services__AssetGroupOperation struct {
	// Create: Create operation: No resource name is expected for the new asset
	// group
	Create *GoogleAdsSearchads360V23Resources__AssetGroup `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset group is
	// expected, in this format:
	// `customers/{customer_id}/assetGroups/{asset_group_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The asset group is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__AssetGroup `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetGroupOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetGroupOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetGroupSignalOperation: A single
// operation (create, remove) on an asset group signal.
type GoogleAdsSearchads360V23Services__AssetGroupSignalOperation struct {
	// Create: Create operation: No resource name is expected for the new asset
	// group signal.
	Create *GoogleAdsSearchads360V23Resources__AssetGroupSignal `json:"create,omitempty"`
	// ExemptPolicyViolationKeys: Optional. The list of policy violation keys that
	// should not cause a PolicyViolationError to be reported. Not all policy
	// violations are exemptable, refer to the is_exemptible field in the returned
	// PolicyViolationError. Resources violating these polices will be saved, but
	// will not be eligible to serve. They may begin serving at a later time due to
	// a change in policies, re-review of the resource, or a change in advertiser
	// certificates.
	ExemptPolicyViolationKeys []*GoogleAdsSearchads360V23Common__PolicyViolationKey `json:"exemptPolicyViolationKeys,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset group signal
	// is expected, in this format:
	// `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetGroupSignalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetGroupSignalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetOperation: A single operation to
// create an asset. Supported asset types are YoutubeVideoAsset,
// MediaBundleAsset, ImageAsset, LeadFormAsset, LocationAsset, and ImageAsset.
// TextAsset can be created with an Ad inline, but it can also be created apart
// from an Ad like other assets.
type GoogleAdsSearchads360V23Services__AssetOperation struct {
	// Create: Create operation: No resource name is expected for the new asset.
	Create *GoogleAdsSearchads360V23Resources__Asset `json:"create,omitempty"`
	// Update: Update operation: The asset is expected to have a valid resource
	// name in this format: `customers/{customer_id}/assets/{asset_id}`
	Update *GoogleAdsSearchads360V23Resources__Asset `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetSetAssetOperation: A single operation
// (create, remove) on an asset set asset.
type GoogleAdsSearchads360V23Services__AssetSetAssetOperation struct {
	// Create: Create operation: No resource name is expected for the new asset set
	// asset
	Create *GoogleAdsSearchads360V23Resources__AssetSetAsset `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset set asset is
	// expected, in this format:
	// `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetSetAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetSetAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetSetOperation: A single operation
// (create, remove) on an asset set.
type GoogleAdsSearchads360V23Services__AssetSetOperation struct {
	// Create: Create operation: No resource name is expected for the new asset set
	Create *GoogleAdsSearchads360V23Resources__AssetSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed asset set is
	// expected, in this format: `customers/{customer_id}/assetSets/{asset_set_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The asset set is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__AssetSet `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AssetsWithFieldType: The combination of
// system asset and field type to remove.
type GoogleAdsSearchads360V23Services__AssetsWithFieldType struct {
	// Asset: Required. The resource name of the asset to be removed.
	Asset string `json:"asset,omitempty"`
	// AssetFieldType: Required. The asset field type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AssetsWithFieldType) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AssetsWithFieldType
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceCompositionAttribute: An audience
// attribute with metadata and metrics.
type GoogleAdsSearchads360V23Services__AudienceCompositionAttribute struct {
	// AttributeMetadata: The attribute with its metadata.
	AttributeMetadata *GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"attributeMetadata,omitempty"`
	// Metrics: Share and index metrics for the attribute.
	Metrics *GoogleAdsSearchads360V23Services__AudienceCompositionMetrics `json:"metrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceCompositionAttribute) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceCompositionAttribute
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster: A
// collection of related attributes, with metadata and metrics, in an audience
// composition insights report.
type GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster struct {
	// Attributes: The individual attributes that make up this cluster, with
	// metadata and metrics.
	Attributes []*GoogleAdsSearchads360V23Services__AudienceCompositionAttribute `json:"attributes,omitempty"`
	// ClusterDisplayName: The name of this cluster of attributes
	ClusterDisplayName string `json:"clusterDisplayName,omitempty"`
	// ClusterMetrics: If the dimension associated with this cluster is
	// YOUTUBE_CHANNEL, then cluster_metrics are metrics associated with the
	// cluster as a whole. For other dimensions, this field is unset.
	ClusterMetrics *GoogleAdsSearchads360V23Services__AudienceCompositionMetrics `json:"clusterMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceCompositionMetrics: The share and
// index metrics associated with an attribute in an audience composition
// insights report.
type GoogleAdsSearchads360V23Services__AudienceCompositionMetrics struct {
	// AudienceShare: The fraction (from 0 to 1 inclusive) of the specific audience
	// that match the attribute.
	AudienceShare float64 `json:"audienceShare,omitempty"`
	// BaselineAudienceShare: The fraction (from 0 to 1 inclusive) of the baseline
	// audience that match the attribute.
	BaselineAudienceShare float64 `json:"baselineAudienceShare,omitempty"`
	// Index: The ratio of audience_share to baseline_audience_share, or zero if
	// this ratio is undefined or is not meaningful.
	Index float64 `json:"index,omitempty"`
	// Score: A relevance score from 0 to 1 inclusive.
	Score float64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudienceShare") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudienceShare") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceCompositionMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceCompositionMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__AudienceCompositionMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceCompositionMetrics
	var s1 struct {
		AudienceShare         gensupport.JSONFloat64 `json:"audienceShare"`
		BaselineAudienceShare gensupport.JSONFloat64 `json:"baselineAudienceShare"`
		Index                 gensupport.JSONFloat64 `json:"index"`
		Score                 gensupport.JSONFloat64 `json:"score"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AudienceShare = float64(s1.AudienceShare)
	s.BaselineAudienceShare = float64(s1.BaselineAudienceShare)
	s.Index = float64(s1.Index)
	s.Score = float64(s1.Score)
	return nil
}

// GoogleAdsSearchads360V23Services__AudienceCompositionSection: A collection
// of related attributes of the same type in an audience composition insights
// report.
type GoogleAdsSearchads360V23Services__AudienceCompositionSection struct {
	// ClusteredAttributes: Additional attributes for this audience, grouped into
	// clusters. Only populated if dimension is YOUTUBE_CHANNEL.
	ClusteredAttributes []*GoogleAdsSearchads360V23Services__AudienceCompositionAttributeCluster `json:"clusteredAttributes,omitempty"`
	// Dimension: The type of the attributes in this section.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimension string `json:"dimension,omitempty"`
	// TopAttributes: The most relevant segments for this audience. If dimension is
	// GENDER, AGE_RANGE or PARENTAL_STATUS, then this list of attributes is
	// exhaustive.
	TopAttributes []*GoogleAdsSearchads360V23Services__AudienceCompositionAttribute `json:"topAttributes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClusteredAttributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClusteredAttributes") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceCompositionSection) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceCompositionSection
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceInsightsDimensions: A collection
// of dimensions to be used for generating insights.
type GoogleAdsSearchads360V23Services__AudienceInsightsDimensions struct {
	// Dimensions: Required. A list of dimensions.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimensions []string `json:"dimensions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimensions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimensions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceInsightsDimensions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceInsightsDimensions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceOperation: A single operation
// (create, update) on an audience.
type GoogleAdsSearchads360V23Services__AudienceOperation struct {
	// Create: Create operation: No resource name is expected for the new audience
	Create *GoogleAdsSearchads360V23Resources__Audience `json:"create,omitempty"`
	// Update: Update operation: The audience is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__Audience `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceOverlapItem: An audience
// attribute, with metadata including the overlap between this attribute's
// potential YouTube reach and that of a primary attribute.
type GoogleAdsSearchads360V23Services__AudienceOverlapItem struct {
	// AttributeMetadata: The attribute and its metadata, including potential
	// YouTube reach.
	AttributeMetadata *GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"attributeMetadata,omitempty"`
	// PotentialYoutubeReachIntersection: The estimated size of the intersection of
	// this audience attribute with the primary attribute, that is, the number of
	// reachable YouTube users who match BOTH the primary attribute and this one.
	PotentialYoutubeReachIntersection int64 `json:"potentialYoutubeReachIntersection,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AttributeMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceOverlapItem) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceOverlapItem
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__AudienceTargeting: Audience targeting for
// reach forecast.
type GoogleAdsSearchads360V23Services__AudienceTargeting struct {
	// UserInterest: List of audiences based on user interests to be targeted.
	UserInterest []*GoogleAdsSearchads360V23Common__UserInterestInfo `json:"userInterest,omitempty"`
	// UserLists: List of audiences based on user lists to be targeted.
	UserLists []*GoogleAdsSearchads360V23Common__UserListInfo `json:"userLists,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterest") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterest") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__AudienceTargeting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__AudienceTargeting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BatchJobOperation: A single operation on a
// batch job.
type GoogleAdsSearchads360V23Services__BatchJobOperation struct {
	// Create: Create operation: No resource name is expected for the new batch
	// job.
	Create *GoogleAdsSearchads360V23Resources__BatchJob `json:"create,omitempty"`
	// Remove: Remove operation: The batch job must not have been run. A resource
	// name for the removed batch job is expected, in this format:
	// `customers/{customer_id}/batchJobs/{batch_job_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BatchJobOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BatchJobOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BatchJobResult: An individual batch job
// result.
type GoogleAdsSearchads360V23Services__BatchJobResult struct {
	// MutateOperationResponse: Response for the mutate. May be empty if errors
	// occurred.
	MutateOperationResponse *GoogleAdsSearchads360V23Services__MutateOperationResponse `json:"mutateOperationResponse,omitempty"`
	// OperationIndex: Index of the mutate operation.
	OperationIndex int64 `json:"operationIndex,omitempty,string"`
	// Status: Details of the errors when processing the operation.
	Status *GoogleRpc__Status `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MutateOperationResponse") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MutateOperationResponse") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BatchJobResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BatchJobResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BenchmarksLocation: A location that
// supports benchmarks data.
type GoogleAdsSearchads360V23Services__BenchmarksLocation struct {
	// LocationInfo: Information on the geographic location, including the location
	// ID.
	LocationInfo *GoogleAdsSearchads360V23Common__LocationInfo `json:"locationInfo,omitempty"`
	// LocationName: The unique location name in English.
	LocationName string `json:"locationName,omitempty"`
	// LocationType: The location's type. Location types correspond to target_type
	// returned by searching location type in GoogleAdsService.Search/SearchStream.
	LocationType string `json:"locationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocationInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BenchmarksLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BenchmarksLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BenchmarksProductMetadata: The metadata
// associated with a product supported for benchmarks data.
type GoogleAdsSearchads360V23Services__BenchmarksProductMetadata struct {
	// MarketingObjective: The marketing objective associated with the product. A
	// marketing objective is a broader classification of products.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AWARENESS" - The objective is to increase awareness.
	//   "CONSIDERATION" - The objective is to encourage potential customers to
	// consider the brand or products.
	//   "ACTION" - The objective is to drive a specific conversion, such as a
	// purchase.
	MarketingObjective string `json:"marketingObjective,omitempty"`
	// ProductCode: The identifier of the product. The identifier can be used as
	// inputs for BenchmarksService.GenerateBenchmarksMetrics.
	ProductCode string `json:"productCode,omitempty"`
	// ProductName: The name of the product.
	ProductName string `json:"productName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MarketingObjective") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MarketingObjective") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BenchmarksProductMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BenchmarksProductMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BenchmarksSource: The source used to
// generate benchmarks metrics for. The ID of the source can be obtained from
// BenchmarksService.ListBenchmarksSources.
type GoogleAdsSearchads360V23Services__BenchmarksSource struct {
	// IndustryVerticalId: The ID of the Industry Vertical.
	IndustryVerticalId int64 `json:"industryVerticalId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "IndustryVerticalId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IndustryVerticalId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BenchmarksSource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BenchmarksSource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata: The metadata
// associated with a benchmarks source.
type GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata struct {
	// BenchmarksSourceType: The type of benchmarks source.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "INDUSTRY_VERTICAL" - The classification of ad categories for
	// benchmarking. (for example, "Technology" or "Finance").
	BenchmarksSourceType string `json:"benchmarksSourceType,omitempty"`
	// IndustryVerticalInfo: Information on the Industry Vertical.
	IndustryVerticalInfo *GoogleAdsSearchads360V23Services__IndustryVerticalInfo `json:"industryVerticalInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BenchmarksSourceType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BenchmarksSourceType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BiddableKeyword: A biddable keyword part
// of an ad group.
type GoogleAdsSearchads360V23Services__BiddableKeyword struct {
	// Keyword: Required. Keyword. Must have text and match type.
	Keyword *GoogleAdsSearchads360V23Common__KeywordInfo `json:"keyword,omitempty"`
	// MaxCpcBidMicros: A max cpc bid in micros that overrides the ad group level
	// max cpc bid in forecast simulation. This value will override the max cpc
	// value set in the bidding strategy and ad group. Only specify this field for
	// bidding strategies that support max cpc values.
	MaxCpcBidMicros int64 `json:"maxCpcBidMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Keyword") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keyword") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BiddableKeyword) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BiddableKeyword
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation: A single
// operation (create, remove, update) on a data exclusion.
type GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation struct {
	// Create: Create operation: No resource name is expected for the new data
	// exclusion.
	Create *GoogleAdsSearchads360V23Resources__BiddingDataExclusion `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed data exclusion is
	// expected, in this format:
	// `customers/{customer_id}/biddingDataExclusions/{data_exclusion_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The data exclusion is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__BiddingDataExclusion `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation: A
// single operation (create, remove, update) on a seasonality adjustment.
type GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// seasonality adjustment.
	Create *GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed seasonality
	// adjustment is expected, in this format:
	// `customers/{customer_id}/biddingSeasonalityAdjustments/{seasonality_adjustmen
	// t_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The seasonality adjustment is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BiddingStrategyOperation: A single
// operation (create, update, remove) on a bidding strategy.
type GoogleAdsSearchads360V23Services__BiddingStrategyOperation struct {
	// Create: Create operation: No resource name is expected for the new bidding
	// strategy.
	Create *GoogleAdsSearchads360V23Resources__BiddingStrategy `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed bidding strategy
	// is expected, in this format:
	// `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The bidding strategy is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__BiddingStrategy `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BiddingStrategyOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BiddingStrategyOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BillingSetupOperation: A single operation
// on a billing setup, which describes the cancellation of an existing billing
// setup.
type GoogleAdsSearchads360V23Services__BillingSetupOperation struct {
	// Create: Creates a billing setup. No resource name is expected for the new
	// billing setup.
	Create *GoogleAdsSearchads360V23Resources__BillingSetup `json:"create,omitempty"`
	// Remove: Resource name of the billing setup to remove. A setup cannot be
	// removed unless it is in a pending state or its scheduled start time is in
	// the future. The resource name looks like
	// `customers/{customer_id}/billingSetups/{billing_id}`.
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BillingSetupOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BillingSetupOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__BrandCampaignAssets: Assets linked at the
// campaign level. A business_name and at least one logo_asset are required.
type GoogleAdsSearchads360V23Services__BrandCampaignAssets struct {
	// BusinessNameAsset: Required. The resource name of the business name text
	// asset.
	BusinessNameAsset string `json:"businessNameAsset,omitempty"`
	// LandscapeLogoAsset: Optional. The resource name of landscape logo assets.
	LandscapeLogoAsset []string `json:"landscapeLogoAsset,omitempty"`
	// LogoAsset: Required. The resource name of square logo assets.
	LogoAsset []string `json:"logoAsset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BusinessNameAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BusinessNameAsset") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__BrandCampaignAssets) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__BrandCampaignAssets
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignAssetOperation: A single operation
// (create, remove) on a campaign asset.
type GoogleAdsSearchads360V23Services__CampaignAssetOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// asset.
	Create *GoogleAdsSearchads360V23Resources__CampaignAsset `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign asset is
	// expected, in this format:
	// `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}
	// `
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign asset is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignAsset `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignAssetSetOperation: A single
// operation (create, remove) on a campaign asset set.
type GoogleAdsSearchads360V23Services__CampaignAssetSetOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// asset set.
	Create *GoogleAdsSearchads360V23Resources__CampaignAssetSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign asset set
	// is expected, in this format:
	// `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignAssetSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignAssetSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignBidModifierOperation: A single
// operation (create, remove, update) on a campaign bid modifier.
type GoogleAdsSearchads360V23Services__CampaignBidModifierOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// bid modifier.
	Create *GoogleAdsSearchads360V23Resources__CampaignBidModifier `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign bid
	// modifier is expected, in this format:
	// `customers/{customer_id}/CampaignBidModifiers/{campaign_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign bid modifier is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignBidModifier `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignBidModifierOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignBidModifierOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignBudgetMapping: The mapping of
// experiment campaign and budget to be graduated.
type GoogleAdsSearchads360V23Services__CampaignBudgetMapping struct {
	// CampaignBudget: Required. The budget that should be attached to the
	// graduating experiment campaign.
	CampaignBudget string `json:"campaignBudget,omitempty"`
	// ExperimentCampaign: Required. The experiment campaign to graduate.
	ExperimentCampaign string `json:"experimentCampaign,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignBudgetMapping) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignBudgetMapping
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignBudgetOperation: A single
// operation (create, update, remove) on a campaign budget.
type GoogleAdsSearchads360V23Services__CampaignBudgetOperation struct {
	// Create: Create operation: No resource name is expected for the new budget.
	Create *GoogleAdsSearchads360V23Resources__CampaignBudget `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed budget is
	// expected, in this format:
	// `customers/{customer_id}/campaignBudgets/{budget_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign budget is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignBudget `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignBudgetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignBudgetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation: A single
// operation (update) on a campaign conversion goal.
type GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation struct {
	// Update: Update operation: The customer conversion goal is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignConversionGoal `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignCriterionOperation: A single
// operation (create, update, remove) on a campaign criterion.
type GoogleAdsSearchads360V23Services__CampaignCriterionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// criterion.
	Create *GoogleAdsSearchads360V23Resources__CampaignCriterion `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed criterion is
	// expected, in this format:
	// `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The criterion is expected to have a valid resource
	// name. Note that for smart campaigns, you cannot use the update method to
	// edit the geolocation target.
	Update *GoogleAdsSearchads360V23Resources__CampaignCriterion `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignCriterionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignCriterionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignCustomizerOperation: A single
// operation (create, remove) on a customizer attribute.
type GoogleAdsSearchads360V23Services__CampaignCustomizerOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// customizer
	Create *GoogleAdsSearchads360V23Resources__CampaignCustomizer `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign
	// customizer is expected, in this format:
	// `customers/{customer_id}/campaignCustomizers/{campaign_id}~{customizer_attrib
	// ute_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignCustomizerOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignCustomizerOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignDraftOperation: A single operation
// (create, update, remove) on a campaign draft.
type GoogleAdsSearchads360V23Services__CampaignDraftOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// draft.
	Create *GoogleAdsSearchads360V23Resources__CampaignDraft `json:"create,omitempty"`
	// Remove: Remove operation: The campaign draft is expected to have a valid
	// resource name, in this format:
	// `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign draft is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignDraft `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignDraftOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignDraftOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignDuration: The duration of a
// planned campaign.
type GoogleAdsSearchads360V23Services__CampaignDuration struct {
	// DateRange: Date range of the campaign. Dates are in the yyyy-mm-dd format
	// and inclusive. The end date must be < 1 year in the future and the date
	// range must be <= 92 days long. This field cannot be combined with the
	// duration_in_days field.
	DateRange *GoogleAdsSearchads360V23Common__DateRange `json:"dateRange,omitempty"`
	// DurationInDays: The duration value in days. This field cannot be combined
	// with the date_range field.
	DurationInDays int64 `json:"durationInDays,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DateRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DateRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignDuration) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignDuration
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation: A single
// mutate operation on the campaign goal config.
type GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation struct {
	// Create: Create a new campaign goal config.
	Create *GoogleAdsSearchads360V23Resources__CampaignGoalConfig `json:"create,omitempty"`
	// Remove: Remove an existing campaign goal config.
	Remove string `json:"remove,omitempty"`
	// Update: Update an existing campaign goal config.
	Update *GoogleAdsSearchads360V23Resources__CampaignGoalConfig `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which fields are modified in an
	// update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignGroupOperation: A single operation
// (create, update, remove) on a campaign group.
type GoogleAdsSearchads360V23Services__CampaignGroupOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// group.
	Create *GoogleAdsSearchads360V23Resources__CampaignGroup `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign group is
	// expected, in this format:
	// `customers/{customer_id}/campaignGroups/{campaign_group_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign group is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CampaignGroup `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignGroupOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignGroupOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignLabelOperation: A single operation
// (create, remove) on a campaign-label relationship.
type GoogleAdsSearchads360V23Services__CampaignLabelOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// campaign-label relationship.
	Create *GoogleAdsSearchads360V23Resources__CampaignLabel `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the campaign-label
	// relationship being removed, in this format:
	// `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignLabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignLabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation: A single
// operation on a campaign lifecycle goal.
type GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation struct {
	Create *GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal `json:"create,omitempty"`
	// Update: Update operation: Update an existing campaign lifecycle goal. The
	// campaign field should not be set for this operation.
	Update *GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal `json:"update,omitempty"`
	// UpdateMask: Optional. FieldMask that determines which resource fields are
	// modified in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignOperation: A single operation
// (create, update, remove) on a campaign.
type GoogleAdsSearchads360V23Services__CampaignOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign.
	Create *GoogleAdsSearchads360V23Resources__Campaign `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign is
	// expected, in this format: `customers/{customer_id}/campaigns/{campaign_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The campaign is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__Campaign `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignSharedSetOperation: A single
// operation (create, remove) on a campaign shared set.
type GoogleAdsSearchads360V23Services__CampaignSharedSetOperation struct {
	// Create: Create operation: No resource name is expected for the new campaign
	// shared set.
	Create *GoogleAdsSearchads360V23Resources__CampaignSharedSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed campaign shared
	// set is expected, in this format:
	// `customers/{customer_id}/campaignSharedSets/{campaign_id}~{shared_set_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignSharedSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignSharedSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CampaignToForecast: A campaign to do a
// keyword campaign forecast.
type GoogleAdsSearchads360V23Services__CampaignToForecast struct {
	// AdGroups: The ad groups in the new campaign to forecast.
	AdGroups []*GoogleAdsSearchads360V23Services__ForecastAdGroup `json:"adGroups,omitempty"`
	// BiddingStrategy: Required. The bidding strategy for the campaign.
	BiddingStrategy *GoogleAdsSearchads360V23ServicesCampaignToForecastCampaignBiddingStrategy `json:"biddingStrategy,omitempty"`
	// ConversionRate: The expected conversion rate (number of conversions divided
	// by number of total clicks) as defined by the user. This value is expressed
	// as a decimal value, so an expected conversion rate of 2% should be entered
	// as 0.02. If left empty, an estimated conversion rate will be used.
	ConversionRate float64 `json:"conversionRate,omitempty"`
	// GeoModifiers: Locations to be targeted. Locations must be unique.
	GeoModifiers []*GoogleAdsSearchads360V23Services__CriterionBidModifier `json:"geoModifiers,omitempty"`
	// KeywordPlanNetwork: Required. The network used for targeting.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "GOOGLE_SEARCH" - Google Search.
	//   "GOOGLE_SEARCH_AND_PARTNERS" - Google Search + Search partners.
	KeywordPlanNetwork string `json:"keywordPlanNetwork,omitempty"`
	// LanguageConstants: The list of resource names of languages to be targeted.
	// The resource name is of the format "languageConstants/{criterion_id}". See
	// https://developers.google.com/google-ads/api/data/codes-formats#languages
	// for the list of language criterion codes.
	LanguageConstants []string `json:"languageConstants,omitempty"`
	// NegativeKeywords: The list of negative keywords to be used in the campaign
	// when doing the forecast.
	NegativeKeywords []*GoogleAdsSearchads360V23Common__KeywordInfo `json:"negativeKeywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroups") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CampaignToForecast) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignToForecast
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__CampaignToForecast) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__CampaignToForecast
	var s1 struct {
		ConversionRate gensupport.JSONFloat64 `json:"conversionRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConversionRate = float64(s1.ConversionRate)
	return nil
}

// GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest:
// Request message for
// CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.
type GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest struct {
	// Operation: Required. The operation to perform campaign lifecycle goal
	// update.
	Operation *GoogleAdsSearchads360V23Services__CampaignLifecycleGoalOperation `json:"operation,omitempty"`
	// ValidateOnly: Optional. If true, the request is validated but not executed.
	// Only errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse:
// Response message for
// CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals.
type GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse struct {
	// Result: Result for the campaign lifecycle goal configuration.
	Result *GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult: The
// result for the campaign lifecycle goal configuration.
type GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult struct {
	// ResourceName: Returned for the successful operation.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest:
// Request message for
// CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.
type GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest struct {
	// Operation: Required. The operation to perform customer lifecycle goal
	// update.
	Operation *GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation `json:"operation,omitempty"`
	// ValidateOnly: Optional. If true, the request is validated but not executed.
	// Only errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse:
// Response message for
// CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals.
type GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse struct {
	// Result: result for the customer lifecycle goal configuration.
	Result *GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult: The
// result for the customer lifecycle goal configuration.
type GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult struct {
	// ResourceName: Returned for the successful operation.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__Conversation: Details of the conversation
// that needs to be appended.
type GoogleAdsSearchads360V23Services__Conversation struct {
	// LocalServicesLead: Required. The resource name of the local services lead
	// that the conversation should be applied to.
	LocalServicesLead string `json:"localServicesLead,omitempty"`
	// Text: Required. Text message that user wanted to append to lead.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LocalServicesLead") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocalServicesLead") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__Conversation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__Conversation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversationOrError: Result of the append
// conversation operation.
type GoogleAdsSearchads360V23Services__ConversationOrError struct {
	// LocalServicesLeadConversation: The resource name of the appended local
	// services lead conversation.
	LocalServicesLeadConversation string `json:"localServicesLeadConversation,omitempty"`
	// PartialFailureError: Failure status when the request could not be processed.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "LocalServicesLeadConversation") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LocalServicesLeadConversation")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversationOrError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversationOrError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionActionOperation: A single
// operation (create, update, remove) on a conversion action.
type GoogleAdsSearchads360V23Services__ConversionActionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// conversion action.
	Create *GoogleAdsSearchads360V23Resources__ConversionAction `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed conversion action
	// is expected, in this format:
	// `customers/{customer_id}/conversionActions/{conversion_action_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The conversion action is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__ConversionAction `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionActionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionActionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader: Message
// for conversion custom dimension header.
type GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader struct {
	// Id: The conversion custom dimension ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the conversion custom dimension.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader: Message for
// conversion custom metric header.
type GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader struct {
	// Id: The conversion custom metric ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the conversion custom metric.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation: A
// single operation (create, update) on a conversion custom variable.
type GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// conversion custom variable.
	Create *GoogleAdsSearchads360V23Resources__ConversionCustomVariable `json:"create,omitempty"`
	// Update: Update operation: The conversion custom variable is expected to have
	// a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__ConversionCustomVariable `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation: A
// single operation (update) on a conversion goal campaign config.
type GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation struct {
	// Update: Update operation: The conversion goal campaign config is expected to
	// have a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionRateSuggestion: A conversion
// rate suggestion.
type GoogleAdsSearchads360V23Services__ConversionRateSuggestion struct {
	// ConversionRate: The suggested conversion rate. The value is between 0 and 1
	// (exclusive).
	ConversionRate float64 `json:"conversionRate,omitempty"`
	// ConversionRateModel: Model type used to calculate the suggested conversion
	// rate.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CUSTOMER_HISTORY" - Suggested conversion rate for the authenticated
	// customer based on the previous 70 days.
	//   "INVENTORY_AGGRESSIVE" - Suggested conversion rate based on an aggressive
	// rate for the entire inventory.
	//   "INVENTORY_CONSERVATIVE" - Suggested conversion rate based on a
	// conservative rate for the entire inventory.
	//   "INVENTORY_MEDIAN" - Suggested conversion rate based on the median rate
	// for the entire inventory.
	ConversionRateModel string `json:"conversionRateModel,omitempty"`
	// PlannableProductCode: The code associated with the plannable product (for
	// example: DEMAND_GEN). To list all plannable product codes, use
	// ReachPlanService.ListPlannableProducts.
	PlannableProductCode string `json:"plannableProductCode,omitempty"`
	// SurfaceTargeting: The surfaces associated with the plannable product. If not
	// present, the conversion rate is considered surface agnostic for this
	// product.
	SurfaceTargeting *GoogleAdsSearchads360V23Services__SurfaceTargeting `json:"surfaceTargeting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionRate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionRate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionRateSuggestion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionRateSuggestion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__ConversionRateSuggestion) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionRateSuggestion
	var s1 struct {
		ConversionRate gensupport.JSONFloat64 `json:"conversionRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConversionRate = float64(s1.ConversionRate)
	return nil
}

// GoogleAdsSearchads360V23Services__ConversionValueRuleOperation: A single
// operation (create, update, remove) on a conversion value rule.
type GoogleAdsSearchads360V23Services__ConversionValueRuleOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// conversion value rule.
	Create *GoogleAdsSearchads360V23Resources__ConversionValueRule `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed conversion value
	// rule is expected, in this format:
	// `customers/{customer_id}/conversionValueRules/{conversion_value_rule_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The conversion value rule is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__ConversionValueRule `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionValueRuleOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionValueRuleOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation: A single
// operation (create, update, remove) on a conversion value rule set.
type GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// conversion value rule set.
	Create *GoogleAdsSearchads360V23Resources__ConversionValueRuleSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed conversion value
	// rule set is expected, in this format:
	// `customers/{customer_id}/conversionValueRuleSets/{conversion_value_rule_set_i
	// d}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The conversion value rule set is expected to have
	// a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__ConversionValueRuleSet `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateAccountLinkRequest: Request message
// for AccountLinkService.CreateAccountLink.
type GoogleAdsSearchads360V23Services__CreateAccountLinkRequest struct {
	// AccountLink: Required. The account link to be created.
	AccountLink *GoogleAdsSearchads360V23Resources__AccountLink `json:"accountLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountLink") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateAccountLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateAccountLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateAccountLinkResponse: Response
// message for AccountLinkService.CreateAccountLink.
type GoogleAdsSearchads360V23Services__CreateAccountLinkResponse struct {
	// ResourceName: Returned for successful operations. Resource name of the
	// account link.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateAccountLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateAccountLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateCustomerClientRequest: Request
// message for CustomerService.CreateCustomerClient.
type GoogleAdsSearchads360V23Services__CreateCustomerClientRequest struct {
	// AccessRole: The proposed role of user on the created client customer.
	// Accessible only to customers on the allow-list.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ADMIN" - Owns its account and can control the addition of other users.
	//   "STANDARD" - Can modify , but can't affect other users.
	//   "READ_ONLY" - Can view and account changes, but cannot make edits.
	//   "EMAIL_ONLY" - Role for \"email only\" access. Represents an email
	// recipient rather than a true User entity.
	AccessRole string `json:"accessRole,omitempty"`
	// CustomerClient: Required. The new client customer to create. The resource
	// name on this customer will be ignored.
	CustomerClient *GoogleAdsSearchads360V23Resources__Customer `json:"customerClient,omitempty"`
	// EmailAddress: Email address of the user who should be invited on the created
	// client customer. Accessible only to customers on the allow-list.
	EmailAddress string `json:"emailAddress,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessRole") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessRole") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateCustomerClientRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateCustomerClientRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateCustomerClientResponse: Response
// message for CreateCustomerClient mutate.
type GoogleAdsSearchads360V23Services__CreateCustomerClientResponse struct {
	// InvitationLink: Link for inviting user to access the created customer.
	// Accessible to allowlisted customers only.
	InvitationLink string `json:"invitationLink,omitempty"`
	// ResourceName: The resource name of the newly created customer. Customer
	// resource names have the form: `customers/{customer_id}`.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "InvitationLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InvitationLink") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateCustomerClientResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateCustomerClientResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateDataLinkRequest: Request message for
// DataLinkService.CreateDataLink.
type GoogleAdsSearchads360V23Services__CreateDataLinkRequest struct {
	// DataLink: Required. The data link to be created.
	DataLink *GoogleAdsSearchads360V23Resources__DataLink `json:"dataLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataLink") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateDataLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateDataLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateDataLinkResponse: Response message
// for DataLinkService.CreateDataLink.
type GoogleAdsSearchads360V23Services__CreateDataLinkResponse struct {
	// ResourceName: Returned for successful operations. Resource name of the data
	// link.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateDataLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateDataLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest: Request
// message for OfflineUserDataJobService.CreateOfflineUserDataJob.
type GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest struct {
	// EnableMatchRateRangePreview: If true, match rate range for the offline user
	// data job is calculated and made available in the resource.
	EnableMatchRateRangePreview bool `json:"enableMatchRateRangePreview,omitempty"`
	// Job: Required. The offline user data job to be created.
	Job *GoogleAdsSearchads360V23Resources__OfflineUserDataJob `json:"job,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableMatchRateRangePreview") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableMatchRateRangePreview") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse: Response
// message for OfflineUserDataJobService.CreateOfflineUserDataJob.
type GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse struct {
	// ResourceName: The resource name of the OfflineUserDataJob.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest:
// Request message for
// ProductLinkInvitationService.CreateProductLinkInvitation.
type GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest struct {
	// ProductLinkInvitation: Required. The product link invitation to be created.
	ProductLinkInvitation *GoogleAdsSearchads360V23Resources__ProductLinkInvitation `json:"productLinkInvitation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductLinkInvitation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductLinkInvitation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse:
// Response message for product link invitation create.
type GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse struct {
	// ResourceName: Resource name of the product link invitation.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateProductLinkRequest: Request message
// for ProductLinkService.CreateProductLink.
type GoogleAdsSearchads360V23Services__CreateProductLinkRequest struct {
	// ProductLink: Required. The product link to be created.
	ProductLink *GoogleAdsSearchads360V23Resources__ProductLink `json:"productLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProductLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductLink") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateProductLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateProductLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CreateProductLinkResponse: Response
// message for ProductLinkService.CreateProductLink.
type GoogleAdsSearchads360V23Services__CreateProductLinkResponse struct {
	// ResourceName: Returned for successful operations. Resource name of the
	// product link.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CreateProductLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CreateProductLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CriterionBidModifier: Location Criterion
// bid modifier.
type GoogleAdsSearchads360V23Services__CriterionBidModifier struct {
	// BidModifier: The associated multiplier for the criterion_id. If set, this
	// value cannot be 0.
	BidModifier float64 `json:"bidModifier,omitempty"`
	// GeoTargetConstant: The resource name of the geo location to target. The
	// resource name is of the format "geoTargetConstants/{criterion_id}".
	GeoTargetConstant string `json:"geoTargetConstant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BidModifier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BidModifier") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CriterionBidModifier) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CriterionBidModifier
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__CriterionBidModifier) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__CriterionBidModifier
	var s1 struct {
		BidModifier gensupport.JSONFloat64 `json:"bidModifier"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BidModifier = float64(s1.BidModifier)
	return nil
}

// GoogleAdsSearchads360V23Services__CustomAudienceOperation: A single
// operation (create, update) on a custom audience.
type GoogleAdsSearchads360V23Services__CustomAudienceOperation struct {
	// Create: Create operation: No resource name is expected for the new custom
	// audience.
	Create *GoogleAdsSearchads360V23Resources__CustomAudience `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed custom audience is
	// expected, in this format:
	// `customers/{customer_id}/customAudiences/{custom_audience_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The custom audience is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomAudience `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomAudienceOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomAudienceOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomColumnHeader: Message for custom
// column header.
type GoogleAdsSearchads360V23Services__CustomColumnHeader struct {
	// Id: The custom column ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the custom column.
	Name string `json:"name,omitempty"`
	// ReferencesMetrics: True when the custom column references metrics.
	ReferencesMetrics bool `json:"referencesMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomColumnHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomColumnHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomConversionGoalOperation: A single
// operation (create, remove) on a custom conversion goal.
type GoogleAdsSearchads360V23Services__CustomConversionGoalOperation struct {
	// Create: Create operation: No resource name is expected for the new custom
	// conversion goal
	Create *GoogleAdsSearchads360V23Resources__CustomConversionGoal `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed custom conversion
	// goal is expected, in this format:
	// 'customers/{customer_id}/customConversionGoals/{goal_id}'
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The custom conversion goal is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomConversionGoal `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomConversionGoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomConversionGoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomInterestOperation: A single
// operation (create, update) on a custom interest.
type GoogleAdsSearchads360V23Services__CustomInterestOperation struct {
	// Create: Create operation: No resource name is expected for the new custom
	// interest.
	Create *GoogleAdsSearchads360V23Resources__CustomInterest `json:"create,omitempty"`
	// Update: Update operation: The custom interest is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomInterest `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomInterestOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomInterestOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerAssetOperation: A single operation
// (create, update, remove) on a customer asset.
type GoogleAdsSearchads360V23Services__CustomerAssetOperation struct {
	// Create: Create operation: No resource name is expected for the new customer
	// asset.
	Create *GoogleAdsSearchads360V23Resources__CustomerAsset `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed customer asset is
	// expected, in this format:
	// `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The customer asset is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomerAsset `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerAssetSetOperation: A single
// operation (create, remove) on a customer asset set.
type GoogleAdsSearchads360V23Services__CustomerAssetSetOperation struct {
	// Create: Create operation: No resource name is expected for the new customer
	// asset set.
	Create *GoogleAdsSearchads360V23Resources__CustomerAssetSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed customer asset set
	// is expected, in this format:
	// `customers/{customer_id}/customerAssetSets/{asset_set_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerAssetSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerAssetSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerClientLinkOperation: A single
// operation (create, update) on a CustomerClientLink.
type GoogleAdsSearchads360V23Services__CustomerClientLinkOperation struct {
	// Create: Create operation: No resource name is expected for the new link.
	Create *GoogleAdsSearchads360V23Resources__CustomerClientLink `json:"create,omitempty"`
	// Update: Update operation: The link is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__CustomerClientLink `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerClientLinkOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerClientLinkOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation: A single
// operation (update) on a customer conversion goal.
type GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation struct {
	// Update: Update operation: The customer conversion goal is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomerConversionGoal `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerCustomizerOperation: A single
// operation (create, remove) on a customizer attribute.
type GoogleAdsSearchads360V23Services__CustomerCustomizerOperation struct {
	// Create: Create operation: No resource name is expected for the new customer
	// customizer
	Create *GoogleAdsSearchads360V23Resources__CustomerCustomizer `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed customer
	// customizer is expected, in this format:
	// `customers/{customer_id}/customerCustomizers/{customizer_attribute_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerCustomizerOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerCustomizerOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerLabelOperation: A single operation
// (create, remove) on a customer-label relationship.
type GoogleAdsSearchads360V23Services__CustomerLabelOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// customer-label relationship.
	Create *GoogleAdsSearchads360V23Resources__CustomerLabel `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the customer-label
	// relationship being removed, in this format:
	// `customers/{customer_id}/customerLabels/{label_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerLabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerLabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation: A single
// operation on a customer lifecycle goal.
type GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation struct {
	Create *GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal `json:"create,omitempty"`
	// Update: Update operation: Update an existing customer lifecycle goal.
	Update *GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal `json:"update,omitempty"`
	// UpdateMask: Optional. FieldMask that determines which resource fields are
	// modified in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerLifecycleGoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation: Updates the
// status of a CustomerManagerLink. The following actions are possible: 1.
// Update operation with status ACTIVE accepts a pending invitation. 2. Update
// operation with status REFUSED declines a pending invitation. 3. Update
// operation with status INACTIVE terminates link to manager.
type GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation struct {
	// Update: Update operation: The link is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__CustomerManagerLink `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation: A
// single operation (create or remove) on a customer level negative criterion.
type GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// criterion.
	Create *GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed criterion is
	// expected, in this format:
	// `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerOperation: A single update on a
// customer.
type GoogleAdsSearchads360V23Services__CustomerOperation struct {
	// Update: Mutate operation. Only updates are supported for customer.
	Update *GoogleAdsSearchads360V23Resources__Customer `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOpe
// ration: A single update operation for a
// CustomerSkAdNetworkConversionValueSchema.
type GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation struct {
	// Update: Update operation: The schema is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__CustomerSkAdNetworkConversionValueSchema `json:"update,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation: A
// single operation (create or remove) on customer user access invitation.
type GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation struct {
	// Create: Create operation: No resource name is expected for the new access
	// invitation.
	Create *GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the revoke invitation is
	// expected, in this format:
	// `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomerUserAccessOperation: A single
// operation (update, remove) on customer user access.
type GoogleAdsSearchads360V23Services__CustomerUserAccessOperation struct {
	// Remove: Remove operation: A resource name for the removed access is
	// expected, in this format:
	// `customers/{customer_id}/customerUserAccesses/{CustomerUserAccess.user_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The customer user access is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__CustomerUserAccess `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Remove") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Remove") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomerUserAccessOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomerUserAccessOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CustomizerAttributeOperation: A single
// operation (create, remove) on a customizer attribute.
type GoogleAdsSearchads360V23Services__CustomizerAttributeOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// customizer attribute
	Create *GoogleAdsSearchads360V23Resources__CustomizerAttribute `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed customizer
	// attribute is expected, in this format:
	// `customers/{customer_id}/customizerAttributes/{customizer_attribute_id}`
	Remove string `json:"remove,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CustomizerAttributeOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CustomizerAttributeOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__CyoIncentives: An incentive offer in the
// Choose-Your-Own Incentive feature where a user can select from a set of
// incentives with different money amounts.
type GoogleAdsSearchads360V23Services__CyoIncentives struct {
	// HighOffer: Required. The CYO incentive with high target and award amounts.
	HighOffer *GoogleAdsSearchads360V23Services__Incentive `json:"highOffer,omitempty"`
	// LowOffer: Required. The CYO incentive with low target and award amounts.
	LowOffer *GoogleAdsSearchads360V23Services__Incentive `json:"lowOffer,omitempty"`
	// MediumOffer: Required. The CYO incentive with medium target and award
	// amounts.
	MediumOffer *GoogleAdsSearchads360V23Services__Incentive `json:"mediumOffer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HighOffer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighOffer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__CyoIncentives) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__CyoIncentives
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__DimensionOverlapResult: A list of audience
// attributes of a single dimension, including their overlap with a primary
// attribute, returned as part of a GenerateAudienceOverlapInsightsResponse.
type GoogleAdsSearchads360V23Services__DimensionOverlapResult struct {
	// Dimension: The dimension of all the attributes in this section.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimension string `json:"dimension,omitempty"`
	// Items: The attributes and their overlap with the primary attribute.
	Items []*GoogleAdsSearchads360V23Services__AudienceOverlapItem `json:"items,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dimension") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dimension") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__DimensionOverlapResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__DimensionOverlapResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__DismissRecommendationRequest: Request
// message for RecommendationService.DismissRecommendation.
type GoogleAdsSearchads360V23Services__DismissRecommendationRequest struct {
	// Operations: Required. The list of operations to dismiss recommendations. If
	// partial_failure=false all recommendations should be of the same type There
	// is a limit of 100 operations per request.
	Operations []*GoogleAdsSearchads360V23ServicesDismissRecommendationRequestDismissRecommendationOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, operations will be carried
	// in a single transaction if and only if they are all valid. Default is false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__DismissRecommendationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__DismissRecommendationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__DismissRecommendationResponse: Response
// message for RecommendationService.DismissRecommendation.
type GoogleAdsSearchads360V23Services__DismissRecommendationResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors) we return the RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: Results of operations to dismiss recommendations.
	Results []*GoogleAdsSearchads360V23ServicesDismissRecommendationResponseDismissRecommendationResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__DismissRecommendationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__DismissRecommendationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown: A breakdown
// of the number of unique people reached at a given effective frequency.
type GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown struct {
	// EffectiveCoviewReach: The number of users (including co-viewing users)
	// reached for the associated effective_frequency value.
	EffectiveCoviewReach int64 `json:"effectiveCoviewReach,omitempty,string"`
	// EffectiveFrequency: The effective frequency [1-10].
	EffectiveFrequency int64 `json:"effectiveFrequency,omitempty"`
	// OnTargetEffectiveCoviewReach: The number of users (including co-viewing
	// users) reached for the associated effective_frequency value within the
	// specified plan demographic.
	OnTargetEffectiveCoviewReach int64 `json:"onTargetEffectiveCoviewReach,omitempty,string"`
	// OnTargetReach: The number of unique people reached at least
	// effective_frequency times that exactly matches the Targeting. Note that a
	// minimum number of unique people must be reached in order for data to be
	// reported. If the minimum number is not met, the on_target_reach value will
	// be rounded to 0.
	OnTargetReach int64 `json:"onTargetReach,omitempty,string"`
	// TotalReach: Total number of unique people reached at least
	// effective_frequency times. This includes people that may fall outside the
	// specified Targeting. Note that a minimum number of unique people must be
	// reached in order for data to be reported. If the minimum number is not met,
	// the total_reach value will be rounded to 0.
	TotalReach int64 `json:"totalReach,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "EffectiveCoviewReach") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EffectiveCoviewReach") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit: Effective
// frequency limit.
type GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit struct {
	// EffectiveFrequencyBreakdownLimit: The highest effective frequency value to
	// include in Forecast.effective_frequency_breakdowns. This field supports
	// frequencies 1-10, inclusive.
	EffectiveFrequencyBreakdownLimit int64 `json:"effectiveFrequencyBreakdownLimit,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EffectiveFrequencyBreakdownLimit") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "EffectiveFrequencyBreakdownLimit") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EnableOperation: A single enable operation
// of a campaign.
type GoogleAdsSearchads360V23Services__EnableOperation struct {
	// AccentColor: Optional. Hex code representation of the accent brand color,
	// for example #00ff00. accent_color is required when main_color is specified.
	AccentColor string `json:"accentColor,omitempty"`
	// AutoPopulateBrandAssets: Required. The switch to automatically populate
	// top-performing brand assets. This field is required. If true, top-performing
	// brand assets will be automatically populated. If false, the brand_assets
	// field is required.
	AutoPopulateBrandAssets bool `json:"autoPopulateBrandAssets,omitempty"`
	// BrandAssets: Optional. The brand assets linked to the campaign. This field
	// is required when the value of auto_populate_brand_assets is false.
	BrandAssets *GoogleAdsSearchads360V23Services__BrandCampaignAssets `json:"brandAssets,omitempty"`
	// Campaign: Required. The resource name of the campaign to enable.
	Campaign string `json:"campaign,omitempty"`
	// FinalUriDomain: Optional. The domain of the final uri.
	FinalUriDomain string `json:"finalUriDomain,omitempty"`
	// FontFamily: Optional. The font family is specified as a string, and must be
	// one of the following: "Open Sans", "Roboto", "Roboto Slab", "Montserrat",
	// "Poppins", "Lato", "Oswald", or "Playfair Display".
	FontFamily string `json:"fontFamily,omitempty"`
	// MainColor: Optional. Hex code representation of the main brand color, for
	// example #00ff00. main_color is required when accent color is specified.
	MainColor string `json:"mainColor,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccentColor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccentColor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EnableOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EnableOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest: Request
// to enable Brand Guidelines for a Performance Max campaign.
type GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest struct {
	// Operations: Required. The list of individual campaign operations. A maximum
	// of 10 enable operations can be executed in a request.
	Operations []*GoogleAdsSearchads360V23Services__EnableOperation `json:"operations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse: Brand
// Guidelines campaign enablement response.
type GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse struct {
	// Results: Campaign enablement results per campaign.
	Results []*GoogleAdsSearchads360V23Services__EnablementResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EnablementResult: A single enablement
// result of a campaign.
type GoogleAdsSearchads360V23Services__EnablementResult struct {
	// Campaign: This indicates the campaign for which enablement was tried,
	// regardless of the outcome.
	Campaign string `json:"campaign,omitempty"`
	// EnablementError: Details of the error when enablement fails.
	EnablementError *GoogleRpc__Status `json:"enablementError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EnablementResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EnablementResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__EndExperimentRequest: Request message for
// ExperimentService.EndExperiment.
type GoogleAdsSearchads360V23Services__EndExperimentRequest struct {
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidateOnly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidateOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__EndExperimentRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__EndExperimentRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ExperimentArmOperation: A single operation
// on an experiment arm.
type GoogleAdsSearchads360V23Services__ExperimentArmOperation struct {
	// Create: Create operation
	Create *GoogleAdsSearchads360V23Resources__ExperimentArm `json:"create,omitempty"`
	// Remove: Remove operation: The experiment arm is expected to have a valid
	// resource name, in this format:
	// `customers/{customer_id}/experiments/{campaign_experiment_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The experiment arm is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__ExperimentArm `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ExperimentArmOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ExperimentArmOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ExperimentOperation: A single operation on
// an experiment.
type GoogleAdsSearchads360V23Services__ExperimentOperation struct {
	// Create: Create operation
	Create *GoogleAdsSearchads360V23Resources__Experiment `json:"create,omitempty"`
	// Remove: Remove operation: The experiment is expected to have a valid
	// resource name, in this format:
	// `customers/{customer_id}/experiments/{campaign_experiment_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The experiment is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__Experiment `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ExperimentOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ExperimentOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__FetchIncentiveResponse: Response from
// getting the acquisition incentive for a user when they visit a specific
// marketing page.
type GoogleAdsSearchads360V23Services__FetchIncentiveResponse struct {
	// IncentiveOffer: Required. The acquisition incentive offer for the user.
	IncentiveOffer *GoogleAdsSearchads360V23Services__IncentiveOffer `json:"incentiveOffer,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IncentiveOffer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncentiveOffer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__FetchIncentiveResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__FetchIncentiveResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__Forecast: Forecasted traffic metrics for
// the planned products and targeting.
type GoogleAdsSearchads360V23Services__Forecast struct {
	// Conversions: The number of conversions. This metric is only available for
	// DEMAND_GEN plannable products. See
	// https://support.google.com/google-ads/answer/2375431 for more information on
	// conversions.
	Conversions float64 `json:"conversions,omitempty"`
	// EffectiveFrequencyBreakdowns: A list of effective frequency forecasts. The
	// list is ordered starting with 1+ and ending with the value set in
	// GenerateReachForecastRequest.effective_frequency_limit. If no
	// effective_frequency_limit was set, this list will be empty.
	EffectiveFrequencyBreakdowns []*GoogleAdsSearchads360V23Services__EffectiveFrequencyBreakdown `json:"effectiveFrequencyBreakdowns,omitempty"`
	// OnTargetCoviewImpressions: Number of ad impressions that exactly matches the
	// Targeting including co-viewers.
	OnTargetCoviewImpressions int64 `json:"onTargetCoviewImpressions,omitempty,string"`
	// OnTargetCoviewReach: Number of unique people reached that exactly matches
	// the Targeting including co-viewers.
	OnTargetCoviewReach int64 `json:"onTargetCoviewReach,omitempty,string"`
	// OnTargetImpressions: Number of ad impressions that exactly matches the
	// Targeting.
	OnTargetImpressions int64 `json:"onTargetImpressions,omitempty,string"`
	// OnTargetReach: Number of unique people reached at least
	// GenerateReachForecastRequest.min_effective_frequency or
	// GenerateReachForecastRequest.effective_frequency_limit times that exactly
	// matches the Targeting. Note that a minimum number of unique people must be
	// reached in order for data to be reported. If the minimum number is not met,
	// the on_target_reach value will be rounded to 0.
	OnTargetReach int64 `json:"onTargetReach,omitempty,string"`
	// TotalCoviewImpressions: Total number of ad impressions including co-viewers.
	// This includes impressions that may fall outside the specified Targeting, due
	// to insufficient information on signed-in users.
	TotalCoviewImpressions int64 `json:"totalCoviewImpressions,omitempty,string"`
	// TotalCoviewReach: Number of unique people reached including co-viewers. This
	// includes people that may fall outside the specified Targeting.
	TotalCoviewReach int64 `json:"totalCoviewReach,omitempty,string"`
	// TotalImpressions: Total number of ad impressions. This includes impressions
	// that may fall outside the specified Targeting, due to insufficient
	// information on signed-in users.
	TotalImpressions int64 `json:"totalImpressions,omitempty,string"`
	// TotalReach: Total number of unique people reached at least
	// GenerateReachForecastRequest.min_effective_frequency or
	// GenerateReachForecastRequest.effective_frequency_limit times. This includes
	// people that may fall outside the specified Targeting. Note that a minimum
	// number of unique people must be reached in order for data to be reported. If
	// the minimum number is not met, the total_reach value will be rounded to 0.
	TotalReach int64 `json:"totalReach,omitempty,string"`
	// TrueviewViews: Number of ad views forecasted for the specified product and
	// targeting. A TrueView View is counted when a viewer views a larger portion
	// or the entirety of an ad beyond an impression. See
	// https://support.google.com/google-ads/answer/2375431 for more information on
	// TrueView Views.
	TrueviewViews int64 `json:"trueviewViews,omitempty,string"`
	// ViewableImpressions: Number of times the ad's impressions were considered
	// viewable. See https://support.google.com/google-ads/answer/7029393 for more
	// information about what makes an ad viewable and how viewability is measured.
	ViewableImpressions int64 `json:"viewableImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "Conversions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conversions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__Forecast) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__Forecast
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__Forecast) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__Forecast
	var s1 struct {
		Conversions gensupport.JSONFloat64 `json:"conversions"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Conversions = float64(s1.Conversions)
	return nil
}

// GoogleAdsSearchads360V23Services__ForecastAdGroup: An ad group that is part
// of a campaign to be forecasted.
type GoogleAdsSearchads360V23Services__ForecastAdGroup struct {
	// BiddableKeywords: Required. The list of biddable keywords to be used in the
	// ad group when doing the forecast. Requires at least one keyword.
	BiddableKeywords []*GoogleAdsSearchads360V23Services__BiddableKeyword `json:"biddableKeywords,omitempty"`
	// MaxCpcBidMicros: The max cpc to use for the ad group when generating
	// forecasted traffic. This value will override the max cpc value set in the
	// bidding strategy. Only specify this field for bidding strategies that max
	// cpc values.
	MaxCpcBidMicros int64 `json:"maxCpcBidMicros,omitempty,string"`
	// NegativeKeywords: The details of the keyword. You should specify both the
	// keyword text and match type.
	NegativeKeywords []*GoogleAdsSearchads360V23Common__KeywordInfo `json:"negativeKeywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BiddableKeywords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddableKeywords") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ForecastAdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ForecastAdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ForecastMetricOptions: Controls forecast
// metrics to return.
type GoogleAdsSearchads360V23Services__ForecastMetricOptions struct {
	// IncludeCoview: Indicates whether to include co-view metrics in the response
	// forecast.
	IncludeCoview bool `json:"includeCoview,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeCoview") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeCoview") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ForecastMetricOptions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ForecastMetricOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__FrequencyCap: A rule specifying the
// maximum number of times an ad can be shown to a user over a particular time
// period.
type GoogleAdsSearchads360V23Services__FrequencyCap struct {
	// Impressions: Required. The number of impressions, inclusive.
	Impressions int64 `json:"impressions,omitempty"`
	// TimeUnit: Required. The type of time unit.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "DAY" - The cap would define limit per one day.
	//   "WEEK" - The cap would define limit per one week.
	//   "MONTH" - The cap would define limit per one month.
	TimeUnit string `json:"timeUnit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Impressions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Impressions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__FrequencyCap) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__FrequencyCap
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest: Request
// message for KeywordPlanIdeaService.GenerateAdGroupThemes.
type GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest struct {
	// AdGroups: Required. A list of resource names of AdGroups to group keywords
	// into. Resource name format: `customers/{customer_id}/adGroups/{ad_group_id}`
	AdGroups []string `json:"adGroups,omitempty"`
	// Keywords: Required. A list of keywords to group into the provided AdGroups.
	Keywords []string `json:"keywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroups") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroups") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse: Response
// message for KeywordPlanIdeaService.GenerateAdGroupThemes.
type GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse struct {
	// AdGroupKeywordSuggestions: A list of suggested AdGroup/keyword pairings.
	AdGroupKeywordSuggestions []*GoogleAdsSearchads360V23Services__AdGroupKeywordSuggestion `json:"adGroupKeywordSuggestions,omitempty"`
	// UnusableAdGroups: A list of provided AdGroups that could not be used as
	// suggestions.
	UnusableAdGroups []*GoogleAdsSearchads360V23Services__UnusableAdGroup `json:"unusableAdGroups,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AdGroupKeywordSuggestions")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupKeywordSuggestions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest:
//
//	Request message for
//
// AudienceInsightsService.GenerateAudienceCompositionInsights.
type GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest struct {
	// Audience: Required. The audience of interest for which insights are being
	// requested.
	Audience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"audience,omitempty"`
	// BaselineAudience: The baseline audience to which the audience of interest is
	// being compared.
	BaselineAudience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"baselineAudience,omitempty"`
	// CustomerInsightsGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// DataMonth: The one-month range of historical data to use for insights, in
	// the format "yyyy-mm". If unset, insights will be returned for the last
	// thirty days of data.
	DataMonth string `json:"dataMonth,omitempty"`
	// Dimensions: Required. The audience dimensions for which composition insights
	// should be returned. Supported dimensions are KNOWLEDGE_GRAPH,
	// GEO_TARGET_COUNTRY, SUB_COUNTRY_LOCATION, YOUTUBE_CHANNEL, YOUTUBE_LINEUP,
	// AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, .
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimensions []string `json:"dimensions,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audience") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse
// : Response message for
// AudienceInsightsService.GenerateAudienceCompositionInsights.
type GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse struct {
	// Sections: The contents of the insights report, organized into sections. Each
	// section is associated with one of the AudienceInsightsDimension values in
	// the request. There may be more than one section per dimension.
	Sections []*GoogleAdsSearchads360V23Services__AudienceCompositionSection `json:"sections,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Sections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Sections") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest: Request
// message for AudienceInsightsService.GenerateAudienceDefinition.
type GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest struct {
	// AudienceDescription: Required. Provide a text description of an audience to
	// get AI-generated structured suggestions. This can take around 5 or more
	// seconds to complete Supported marketing objectives are: AWARENESS,
	// CONSIDERATION and RESEARCH. Supported dimensions are: AGE_RANGE, GENDER,
	// PARENTAL_STATUS, AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST,
	// LIFE_EVENT_USER_INTEREST, CATEGORY and KNOWLEDGE_GRAPH.
	AudienceDescription *GoogleAdsSearchads360V23Services__InsightsAudienceDescription `json:"audienceDescription,omitempty"`
	// CustomerInsightsGroup: Optional. The name of the customer being planned for.
	// This is a user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudienceDescription") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudienceDescription") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse:
// Response message for AudienceInsightsService.GenerateAudienceDefinition.
type GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse struct {
	// HighRelevanceAttributes: The attributes that make up the audience
	// definition.
	HighRelevanceAttributes []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"highRelevanceAttributes,omitempty"`
	// MediumRelevanceAttributes: Additional attributes that are less relevant but
	// still related to the audience description. Use these attributes to broaden
	// the audience definition to reach more users.
	MediumRelevanceAttributes []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"mediumRelevanceAttributes,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "HighRelevanceAttributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HighRelevanceAttributes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest:
// Request message for AudienceInsightsService.GenerateAudienceOverlapInsights.
type GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest struct {
	// CountryLocation: Required. The country in which to calculate the sizes and
	// overlaps of audiences.
	CountryLocation *GoogleAdsSearchads360V23Common__LocationInfo `json:"countryLocation,omitempty"`
	// CustomerInsightsGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// Dimensions: Required. The types of attributes of which to calculate the
	// overlap with the primary_attribute. The values must be a subset of
	// AFFINITY_USER_INTEREST, IN_MARKET_USER_INTEREST, AGE_RANGE and GENDER.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimensions []string `json:"dimensions,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// PrimaryAttribute: Required. The audience attribute that should be
	// intersected with all other eligible audiences. This must be an Affinity or
	// In-Market UserInterest, an AgeRange or a Gender.
	PrimaryAttribute *GoogleAdsSearchads360V23Common__AudienceInsightsAttribute `json:"primaryAttribute,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse:
// Response message for
// AudienceInsightsService.GenerateAudienceOverlapInsights.
type GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse struct {
	// DimensionResults: Lists of attributes and their overlap with the primary
	// attribute, one list per requested dimension.
	DimensionResults []*GoogleAdsSearchads360V23Services__DimensionOverlapResult `json:"dimensionResults,omitempty"`
	// PrimaryAttributeMetadata: Metadata for the primary attribute, including
	// potential YouTube reach.
	PrimaryAttributeMetadata *GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"primaryAttributeMetadata,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "DimensionResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DimensionResults") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest: Request
// message for BenchmarksService.GenerateBenchmarksMetrics.
type GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest struct {
	// ApplicationInfo: Additional information on the application issuing the
	// request.
	ApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"applicationInfo,omitempty"`
	// BenchmarksSource: Required. The source used to generate benchmarks metrics
	// for.
	BenchmarksSource *GoogleAdsSearchads360V23Services__BenchmarksSource `json:"benchmarksSource,omitempty"`
	// CurrencyCode: Optional. The three-character ISO 4217 currency code. If
	// unspecified, the default currency for monetary values is USD.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// CustomerBenchmarksGroup: The name of the customer being planned for. This is
	// a user-defined value.
	CustomerBenchmarksGroup string `json:"customerBenchmarksGroup,omitempty"`
	// DateRange: The date range to aggregate metrics over. If unset, data will be
	// returned for the most recent quarter for which data is available. Dates can
	// be retrieved using BenchmarksService.ListBenchmarksAvailableDates.
	DateRange *GoogleAdsSearchads360V23Common__DateRange `json:"dateRange,omitempty"`
	// Location: Required. The location to generate benchmarks metrics for.
	Location *GoogleAdsSearchads360V23Common__LocationInfo `json:"location,omitempty"`
	// ProductFilter: Required. The products to aggregate metrics over. Product
	// filter settings support a list of product IDs or a list of marketing
	// objectives.
	ProductFilter *GoogleAdsSearchads360V23Services__ProductFilter `json:"productFilter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse:
// Response message for BenchmarksService.GenerateBenchmarksMetrics.
type GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse struct {
	// AverageBenchmarksMetrics: Metrics for the selected benchmarks source.
	AverageBenchmarksMetrics *GoogleAdsSearchads360V23Services__Metrics `json:"averageBenchmarksMetrics,omitempty"`
	// CustomerMetrics: Metrics belonging to the customer.
	CustomerMetrics *GoogleAdsSearchads360V23Services__Metrics `json:"customerMetrics,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AverageBenchmarksMetrics")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageBenchmarksMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest: Request
// message for ReachPlanService.GenerateConversionRates.
type GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest struct {
	// CustomerId: Required. The ID of the customer. A conversion rate based on the
	// historical data of this customer may be suggested.
	CustomerId string `json:"customerId,omitempty"`
	// CustomerReachGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerReachGroup string `json:"customerReachGroup,omitempty"`
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse: Response
// message for ReachPlanService.GenerateConversionRates, containing conversion
// rate suggestions for supported plannable products.
type GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse struct {
	// ConversionRateSuggestions: A list containing conversion rate suggestions.
	// Each repeated element will have an associated product code. Multiple
	// suggestions may share the same product code.
	ConversionRateSuggestions []*GoogleAdsSearchads360V23Services__ConversionRateSuggestion `json:"conversionRateSuggestions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ConversionRateSuggestions")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionRateSuggestions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest:
// Request message for AudienceInsightsService.GenerateInsightsFinderReport.
type GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest struct {
	// BaselineAudience: Required. A baseline audience for this report, typically
	// all people in a region.
	BaselineAudience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"baselineAudience,omitempty"`
	// CustomerInsightsGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// SpecificAudience: Required. The specific audience of interest for this
	// report. The insights in the report will be based on attributes more
	// prevalent in this audience than in the report's baseline audience.
	SpecificAudience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"specificAudience,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BaselineAudience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BaselineAudience") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse: The
// response message for AudienceInsightsService.GenerateInsightsFinderReport,
// containing the shareable URL for the report.
type GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse struct {
	// SavedReportUrl: An HTTPS URL providing a deep link into the Insights Finder
	// UI with the report inputs filled in according to the request.
	SavedReportUrl string `json:"savedReportUrl,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "SavedReportUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SavedReportUrl") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest:
// Request message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.
type GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest struct {
	// Campaign: Required. The campaign used in the forecast.
	Campaign *GoogleAdsSearchads360V23Services__CampaignToForecast `json:"campaign,omitempty"`
	// CurrencyCode: The currency used for exchange rate conversion. By default,
	// the account currency of the customer is used. Set this field only if the
	// currency is different from the account currency. The list of valid currency
	// codes can be found at
	// https://developers.google.com/google-ads/api/data/codes-formats#currency-codes.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// ForecastPeriod: The date range for the forecast. The start date must be in
	// the future and end date must be within 1 year from today. The reference
	// timezone used is the one of the Google Ads account belonging to the
	// customer. If not set, a default date range from next Sunday to the following
	// Saturday will be used.
	ForecastPeriod *GoogleAdsSearchads360V23Common__DateRange `json:"forecastPeriod,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse:
// Response message for KeywordPlanIdeaService.GenerateKeywordForecastMetrics.
type GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse struct {
	// CampaignForecastMetrics: Results of the campaign forecast.
	CampaignForecastMetrics *GoogleAdsSearchads360V23Services__KeywordForecastMetrics `json:"campaignForecastMetrics,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CampaignForecastMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignForecastMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest:
// Request message for KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.
type GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest struct {
	// AggregateMetrics: The aggregate fields to include in response.
	AggregateMetrics *GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics `json:"aggregateMetrics,omitempty"`
	// GeoTargetConstants: The resource names of the location to target. Maximum is
	// 10. An empty list MAY be used to specify all targeting geos.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// HistoricalMetricsOptions: The options for historical metrics data.
	HistoricalMetricsOptions *GoogleAdsSearchads360V23Common__HistoricalMetricsOptions `json:"historicalMetricsOptions,omitempty"`
	// IncludeAdultKeywords: If true, adult keywords will be included in response.
	// The default value is false.
	IncludeAdultKeywords bool `json:"includeAdultKeywords,omitempty"`
	// KeywordPlanNetwork: Targeting network. If not set, Google Search And
	// Partners Network will be used.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "GOOGLE_SEARCH" - Google Search.
	//   "GOOGLE_SEARCH_AND_PARTNERS" - Google Search + Search partners.
	KeywordPlanNetwork string `json:"keywordPlanNetwork,omitempty"`
	// Keywords: A list of keywords to get historical metrics. Not all inputs will
	// be returned as a result of near-exact deduplication. For example, if stats
	// for "car" and "cars" are requested, only "car" will be returned. A maximum
	// of 10,000 keywords can be used.
	Keywords []string `json:"keywords,omitempty"`
	// Language: The resource name of the language to target. Each keyword belongs
	// to some set of languages; a keyword is included if language is one of its
	// languages. If not set, all keywords will be included.
	Language string `json:"language,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AggregateMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse:
// Response message for
// KeywordPlanIdeaService.GenerateKeywordHistoricalMetrics.
type GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse struct {
	// AggregateMetricResults: The aggregate metrics for all keywords.
	AggregateMetricResults *GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults `json:"aggregateMetricResults,omitempty"`
	// Results: List of keywords and their historical metrics.
	Results []*GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AggregateMetricResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateMetricResults") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult:
// The result of generating keyword historical metrics.
type GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult struct {
	// CloseVariants: The list of close variants from the requested keywords whose
	// stats are combined into this GenerateKeywordHistoricalMetricsResult.
	CloseVariants []string `json:"closeVariants,omitempty"`
	// KeywordMetrics: The historical metrics for text and its close variants
	KeywordMetrics *GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics `json:"keywordMetrics,omitempty"`
	// Text: The text of the query associated with one or more keywords. Note that
	// we de-dupe your keywords list, eliminating close variants before returning
	// the keywords as text. For example, if your request originally contained the
	// keywords "car" and "cars", the returned search query will only contain
	// "cars". The list of de-duped queries will be included in close_variants
	// field.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloseVariants") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloseVariants") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse: Response
// message for KeywordPlanIdeaService.GenerateKeywordIdeas.
type GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse struct {
	// AggregateMetricResults: The aggregate metrics for all keyword ideas.
	AggregateMetricResults *GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetricResults `json:"aggregateMetricResults,omitempty"`
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Results: Results of generating keyword ideas.
	Results []*GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult `json:"results,omitempty"`
	// TotalSize: Total number of results available.
	TotalSize int64 `json:"totalSize,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AggregateMetricResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateMetricResults") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult: The result of
// generating keyword ideas.
type GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult struct {
	// CloseVariants: The list of close variants from the requested keywords that
	// are combined into this GenerateKeywordIdeaResult. See
	// https://support.google.com/google-ads/answer/9342105 for the definition of
	// "close variants".
	CloseVariants []string `json:"closeVariants,omitempty"`
	// KeywordAnnotations: The annotations for the keyword. The annotation data is
	// only provided if requested.
	KeywordAnnotations *GoogleAdsSearchads360V23Common__KeywordAnnotations `json:"keywordAnnotations,omitempty"`
	// KeywordIdeaMetrics: The historical metrics for the keyword.
	KeywordIdeaMetrics *GoogleAdsSearchads360V23Common__KeywordPlanHistoricalMetrics `json:"keywordIdeaMetrics,omitempty"`
	// Text: Text of the keyword idea. As in Keyword Plan historical metrics, this
	// text may not be an actual keyword, but the canonical form of multiple
	// keywords. See KeywordPlanKeywordHistoricalMetrics message in
	// KeywordPlanService.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CloseVariants") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CloseVariants") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest: Request
// message for KeywordPlanIdeaService.GenerateKeywordIdeas.
type GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest struct {
	// AggregateMetrics: The aggregate fields to include in response.
	AggregateMetrics *GoogleAdsSearchads360V23Common__KeywordPlanAggregateMetrics `json:"aggregateMetrics,omitempty"`
	// GeoTargetConstants: The resource names of the location to target. Maximum is
	// 10. An empty list MAY be used to specify all targeting geos.
	GeoTargetConstants []string `json:"geoTargetConstants,omitempty"`
	// HistoricalMetricsOptions: The options for historical metrics data.
	HistoricalMetricsOptions *GoogleAdsSearchads360V23Common__HistoricalMetricsOptions `json:"historicalMetricsOptions,omitempty"`
	// IncludeAdultKeywords: If true, adult keywords will be included in response.
	// The default value is false.
	IncludeAdultKeywords bool `json:"includeAdultKeywords,omitempty"`
	// KeywordAndUrlSeed: A Keyword and a specific Url to generate ideas from for
	// example, cars, www.example.com/cars.
	KeywordAndUrlSeed *GoogleAdsSearchads360V23Services__KeywordAndUrlSeed `json:"keywordAndUrlSeed,omitempty"`
	// KeywordAnnotation: The keyword annotations to include in response.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "KEYWORD_CONCEPT" - Return the keyword concept and concept group data.
	KeywordAnnotation []string `json:"keywordAnnotation,omitempty"`
	// KeywordPlanNetwork: Targeting network. If not set, Google Search And
	// Partners Network will be used.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "GOOGLE_SEARCH" - Google Search.
	//   "GOOGLE_SEARCH_AND_PARTNERS" - Google Search + Search partners.
	KeywordPlanNetwork string `json:"keywordPlanNetwork,omitempty"`
	// KeywordSeed: A Keyword or phrase to generate ideas from, for example, cars.
	KeywordSeed *GoogleAdsSearchads360V23Services__KeywordSeed `json:"keywordSeed,omitempty"`
	// Language: The resource name of the language to target. Each keyword belongs
	// to some set of languages; a keyword is included if language is one of its
	// languages. If not set, all keywords will be included.
	Language string `json:"language,omitempty"`
	// PageSize: Number of results to retrieve in a single page. A maximum of
	// 10,000 results may be returned, if the page_size exceeds this, it is
	// ignored. If unspecified, at most 10,000 results will be returned. The server
	// may decide to further limit the number of returned resources. If the
	// response contains fewer than 10,000 results it may not be assumed as last
	// page of results.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: Token of the page to retrieve. If not specified, the first page
	// of results will be returned. To request next page of results use the value
	// obtained from `next_page_token` in the previous response. The request fields
	// must match across pages.
	PageToken string `json:"pageToken,omitempty"`
	// SiteSeed: The site to generate ideas from, for example, www.example.com.
	SiteSeed *GoogleAdsSearchads360V23Services__SiteSeed `json:"siteSeed,omitempty"`
	// UrlSeed: A specific url to generate ideas from, for example,
	// www.example.com/cars.
	UrlSeed *GoogleAdsSearchads360V23Services__UrlSeed `json:"urlSeed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AggregateMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregateMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateReachForecastRequest: Request
// message for ReachPlanService.GenerateReachForecast.
type GoogleAdsSearchads360V23Services__GenerateReachForecastRequest struct {
	// CampaignDuration: Required. Campaign duration.
	CampaignDuration *GoogleAdsSearchads360V23Services__CampaignDuration `json:"campaignDuration,omitempty"`
	// CookieFrequencyCap: Chosen cookie frequency cap to be applied to each
	// planned product. This is equivalent to the frequency cap exposed in Google
	// Ads when creating a campaign, it represents the maximum number of times an
	// ad can be shown to the same user. If not specified, no cap is applied. This
	// field is deprecated in v4 and will eventually be removed. Use
	// cookie_frequency_cap_setting instead.
	CookieFrequencyCap int64 `json:"cookieFrequencyCap,omitempty"`
	// CookieFrequencyCapSetting: Chosen cookie frequency cap to be applied to each
	// planned product. This is equivalent to the frequency cap exposed in Google
	// Ads when creating a campaign, it represents the maximum number of times an
	// ad can be shown to the same user during a specified time interval. If not
	// specified, a default of 0 (no cap) is applied. This field replaces the
	// deprecated cookie_frequency_cap field.
	CookieFrequencyCapSetting *GoogleAdsSearchads360V23Services__FrequencyCap `json:"cookieFrequencyCapSetting,omitempty"`
	// CurrencyCode: The currency code. Three-character ISO 4217 currency code.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// CustomerReachGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerReachGroup string `json:"customerReachGroup,omitempty"`
	// EffectiveFrequencyLimit: The highest minimum effective frequency (the number
	// of times a person was exposed to the ad) value [1-10] to include in
	// Forecast.effective_frequency_breakdowns. If not specified,
	// Forecast.effective_frequency_breakdowns will not be provided. The effective
	// frequency value provided here will also be used as the minimum effective
	// frequency for the reported reach metrics. This field cannot be combined with
	// the min_effective_frequency field.
	EffectiveFrequencyLimit *GoogleAdsSearchads360V23Services__EffectiveFrequencyLimit `json:"effectiveFrequencyLimit,omitempty"`
	// ForecastMetricOptions: Controls the forecast metrics returned in the
	// response.
	ForecastMetricOptions *GoogleAdsSearchads360V23Services__ForecastMetricOptions `json:"forecastMetricOptions,omitempty"`
	// MinEffectiveFrequency: Chosen minimum effective frequency (the number of
	// times a person was exposed to the ad) for the reported reach metrics [1-10].
	// This won't affect the targeting, but just the reporting. If not specified, a
	// default of 1 is applied. This field cannot be combined with the
	// effective_frequency_limit field.
	MinEffectiveFrequency int64 `json:"minEffectiveFrequency,omitempty"`
	// PlannedProducts: Required. The products to be forecast. The max number of
	// allowed planned products is 15.
	PlannedProducts []*GoogleAdsSearchads360V23Services__PlannedProduct `json:"plannedProducts,omitempty"`
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// Targeting: The targeting to be applied to all products selected in the
	// product mix. This is planned targeting: execution details might vary based
	// on the advertising product, consult an implementation specialist. See
	// specific metrics for details on how targeting affects them.
	Targeting *GoogleAdsSearchads360V23Services__Targeting `json:"targeting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignDuration") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateReachForecastRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateReachForecastRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateReachForecastResponse: Response
// message containing the generated reach curve.
type GoogleAdsSearchads360V23Services__GenerateReachForecastResponse struct {
	// OnTargetAudienceMetrics: Reference on target audiences for this curve.
	OnTargetAudienceMetrics *GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics `json:"onTargetAudienceMetrics,omitempty"`
	// ReachCurve: The generated reach curve for the planned product mix.
	ReachCurve *GoogleAdsSearchads360V23Services__ReachCurve `json:"reachCurve,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "OnTargetAudienceMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OnTargetAudienceMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateReachForecastResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateReachForecastResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest: Request
// message for RecommendationService.GenerateRecommendations.
type GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest struct {
	// AdGroupInfo: Optional. Current AdGroup Information. Supports information
	// from a single AdGroup. This field is optional for the following
	// recommendation_types: KEYWORD
	AdGroupInfo []*GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAdGroupInfo `json:"adGroupInfo,omitempty"`
	// AdvertisingChannelType: Required. Advertising channel type of the campaign.
	// The following advertising_channel_types are supported for recommendation
	// generation: PERFORMANCE_MAX and SEARCH
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SEARCH" - Search Network. Includes display bundled, and Search+
	// campaigns.
	//   "DISPLAY" - Google Display Network only.
	//   "SHOPPING" - Shopping campaigns serve on the shopping property and on
	// google.com search results.
	//   "HOTEL" - Hotel Ads campaigns.
	//   "VIDEO" - Video campaigns.
	//   "MULTI_CHANNEL" - App Campaigns, and App Campaigns for Engagement, that
	// run across multiple channels.
	//   "LOCAL" - Local ads campaigns.
	//   "SMART" - Smart campaigns.
	//   "PERFORMANCE_MAX" - Performance Max campaigns.
	//   "LOCAL_SERVICES" - Local services campaigns.
	//   "TRAVEL" - Travel campaigns.
	//   "DEMAND_GEN" - Demand Gen campaigns.
	//   "SOCIAL" - Social campaigns.
	AdvertisingChannelType string `json:"advertisingChannelType,omitempty"`
	// AssetGroupInfo: Optional. Current AssetGroup Information. This field is
	// required for the following recommendation_types: CAMPAIGN_BUDGET
	AssetGroupInfo []*GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestAssetGroupInfo `json:"assetGroupInfo,omitempty"`
	// BiddingInfo: Optional. Current bidding information of the campaign. This
	// field is necessary for the following recommendation_types:
	// MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN,
	// MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS,
	// TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN
	BiddingInfo *GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBiddingInfo `json:"biddingInfo,omitempty"`
	// BudgetInfo: Optional. Current budget information. This field is optional for
	// the following recommendation_types: CAMPAIGN_BUDGET
	BudgetInfo *GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestBudgetInfo `json:"budgetInfo,omitempty"`
	// CampaignCallAssetCount: Optional. Current campaign call asset count. This
	// field is optional for the following recommendation_types: CAMPAIGN_BUDGET
	CampaignCallAssetCount int64 `json:"campaignCallAssetCount,omitempty"`
	// CampaignImageAssetCount: Optional. Current campaign image asset count. This
	// field is optional for the following recommendation_types: CAMPAIGN_BUDGET
	CampaignImageAssetCount int64 `json:"campaignImageAssetCount,omitempty"`
	// CampaignSitelinkCount: Optional. Number of sitelinks on the campaign. This
	// field is necessary for the following recommendation_types: SITELINK_ASSET
	CampaignSitelinkCount int64 `json:"campaignSitelinkCount,omitempty"`
	// ConversionTrackingStatus: Optional. Current conversion tracking status. This
	// field is necessary for the following recommendation_types:
	// MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN,
	// MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS,
	// TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "NOT_CONVERSION_TRACKED" - Customer does not use any conversion tracking.
	//   "CONVERSION_TRACKING_MANAGED_BY_SELF" - The conversion actions are created
	// and managed by this customer.
	//   "CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER" - The conversion actions are
	// created and managed by the manager specified in the request's
	// `login-customer-id`.
	//   "CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" - The conversion actions
	// are created and managed by a manager different from the customer or manager
	// specified in the request's `login-customer-id`.
	ConversionTrackingStatus string `json:"conversionTrackingStatus,omitempty"`
	// CountryCodes: Optional. Current campaign country codes. This field is
	// required for the following recommendation_types: CAMPAIGN_BUDGET if
	// AdvertisingChannelType is SEARCH
	CountryCodes []string `json:"countryCodes,omitempty"`
	// IsNewCustomer: Optional. Whether or not this customer should be treated as a
	// "new" customer (that is, a customer who has not yet created a campaign).
	// Setting this to `true` will cause the backend to generate recommendations
	// using a dedicated recommendation model for onboarding new customers, as
	// opposed to the default model for existing customers. This is only
	// recommended for customers with 0 campaigns. This field is optional for the
	// following recommendation_types: CAMPAIGN_BUDGET
	IsNewCustomer bool `json:"isNewCustomer,omitempty"`
	// LanguageCodes: Optional. Current campaign language codes. This field is
	// required for the following recommendation_types: CAMPAIGN_BUDGET if
	// AdvertisingChannelType is SEARCH
	LanguageCodes []string `json:"languageCodes,omitempty"`
	// MerchantCenterAccountId: Optional. Merchant Center account ID. This field
	// should only be set when advertising_channel_type is PERFORMANCE_MAX. Setting
	// this field causes RecommendationService to generate recommendations for
	// Performance Max for retail instead of standard Performance Max. This field
	// is optional for the following recommendation_types: CAMPAIGN_BUDGET
	MerchantCenterAccountId int64 `json:"merchantCenterAccountId,omitempty,string"`
	// NegativeLocationsIds: Optional. Current campaign negative location ids. One
	// of this field OR positive_location_ids is required for the following
	// recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH
	NegativeLocationsIds googleapi.Int64s `json:"negativeLocationsIds,omitempty"`
	// PositiveLocationsIds: Optional. Current campaign positive location ids. One
	// of this field OR negative_location_ids is required for the following
	// recommendation_types: CAMPAIGN_BUDGET if AdvertisingChannelType is SEARCH
	PositiveLocationsIds googleapi.Int64s `json:"positiveLocationsIds,omitempty"`
	// RecommendationTypes: Required. List of eligible recommendation_types to
	// generate. If the uploaded criteria isn't sufficient to make a
	// recommendation, or the campaign is already in the recommended state, no
	// recommendation will be returned for that type. Generally, a recommendation
	// is returned if all required fields for that recommendation_type are
	// uploaded, but there are cases where this is still not sufficient. The
	// following recommendation_types are supported for recommendation generation:
	// KEYWORD, MAXIMIZE_CLICKS_OPT_IN, MAXIMIZE_CONVERSIONS_OPT_IN,
	// MAXIMIZE_CONVERSION_VALUE_OPT_IN, SET_TARGET_CPA, SET_TARGET_ROAS,
	// SITELINK_ASSET, TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "CAMPAIGN_BUDGET" - Provides optimized budget recommendations for
	// campaigns.
	//   "KEYWORD" - Keyword recommendation.
	//   "TEXT_AD" - Recommendation to add a new text ad.
	//   "TARGET_CPA_OPT_IN" - Recommendation to update a campaign to use a Target
	// CPA bidding strategy.
	//   "MAXIMIZE_CONVERSIONS_OPT_IN" - Recommendation to update a campaign to use
	// the Maximize Conversions bidding strategy.
	//   "ENHANCED_CPC_OPT_IN" - Recommendation to enable Enhanced Cost Per Click
	// for a campaign.
	//   "SEARCH_PARTNERS_OPT_IN" - Recommendation to start showing your campaign's
	// ads on Google Search Partners Websites.
	//   "MAXIMIZE_CLICKS_OPT_IN" - Recommendation to update a campaign to use a
	// Maximize Clicks bidding strategy.
	//   "OPTIMIZE_AD_ROTATION" - Recommendation to start using the "Optimize" ad
	// rotation setting for the given ad group.
	//   "KEYWORD_MATCH_TYPE" - Recommendation to change an existing keyword from
	// one match type to a broader match type.
	//   "MOVE_UNUSED_BUDGET" - Recommendation to move unused budget from one
	// budget to a constrained budget.
	//   "FORECASTING_CAMPAIGN_BUDGET" - Budget recommendation for campaigns that
	// are expected to become budget-constrained in the future (as opposed to the
	// CAMPAIGN_BUDGET recommendation, which applies to campaigns that are
	// currently budget-constrained).
	//   "TARGET_ROAS_OPT_IN" - Recommendation to update a campaign to use a Target
	// ROAS bidding strategy.
	//   "RESPONSIVE_SEARCH_AD" - Recommendation to add a new responsive search ad.
	//   "MARGINAL_ROI_CAMPAIGN_BUDGET" - Budget recommendation for campaigns whose
	// ROI is predicted to increase with a budget adjustment.
	//   "USE_BROAD_MATCH_KEYWORD" - Recommendation to add broad match versions of
	// keywords for fully automated conversion-based bidding campaigns.
	//   "RESPONSIVE_SEARCH_AD_ASSET" - Recommendation to add new responsive search
	// ad assets.
	//   "UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to
	// upgrade a Smart Shopping campaign to a Performance Max campaign.
	//   "RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH" - Recommendation to improve
	// strength of responsive search ad.
	//   "DISPLAY_EXPANSION_OPT_IN" - Recommendation to update a campaign to use
	// Display Expansion.
	//   "UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation to upgrade a
	// Local campaign to a Performance Max campaign.
	//   "RAISE_TARGET_CPA_BID_TOO_LOW" - Recommendation to raise target CPA when
	// it is too low and there are very few or no conversions. It is applied
	// asynchronously and can take minutes depending on the number of ad groups
	// there are in the related campaign.
	//   "FORECASTING_SET_TARGET_ROAS" - Recommendation to raise the budget in
	// advance of a seasonal event that is forecasted to increase traffic, and
	// change bidding strategy from maximize conversion value to target ROAS.
	//   "CALLOUT_ASSET" - Recommendation to add callout assets to campaign or
	// customer level.
	//   "SITELINK_ASSET" - Recommendation to add sitelink assets to campaign or
	// customer level.
	//   "CALL_ASSET" - Recommendation to add call assets to campaign or customer
	// level.
	//   "SHOPPING_ADD_AGE_GROUP" - Recommendation to add the age group attribute
	// to offers that are demoted because of a missing age group.
	//   "SHOPPING_ADD_COLOR" - Recommendation to add a color to offers that are
	// demoted because of a missing color.
	//   "SHOPPING_ADD_GENDER" - Recommendation to add a gender to offers that are
	// demoted because of a missing gender.
	//   "SHOPPING_ADD_GTIN" - Recommendation to add a GTIN (Global Trade Item
	// Number) to offers that are demoted because of a missing GTIN.
	//   "SHOPPING_ADD_MORE_IDENTIFIERS" - Recommendation to add more identifiers
	// to offers that are demoted because of missing identifiers.
	//   "SHOPPING_ADD_SIZE" - Recommendation to add the size to offers that are
	// demoted because of a missing size.
	//   "SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN" - Recommendation informing a customer
	// about a campaign that cannot serve because no products are being targeted.
	//   "SHOPPING_FIX_DISAPPROVED_PRODUCTS" - The shopping recommendation
	// informing a customer about campaign with a high percentage of disapproved
	// products.
	//   "SHOPPING_TARGET_ALL_OFFERS" - Recommendation to create a catch-all
	// campaign that targets all offers.
	//   "SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT" - Recommendation to fix
	// Merchant Center account suspension issues.
	//   "SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING" - Recommendation
	// to fix Merchant Center account suspension warning issues.
	//   "SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX" -
	// Recommendation to migrate offers targeted by Regular Shopping Campaigns to
	// existing Performance Max campaigns.
	//   "DYNAMIC_IMAGE_EXTENSION_OPT_IN" - Recommendation to enable dynamic image
	// extensions on the account, allowing Google to find the best images from ad
	// landing pages and complement text ads.
	//   "RAISE_TARGET_CPA" - Recommendation to raise Target CPA based on Google
	// predictions modeled from past conversions. It is applied asynchronously and
	// can take minutes depending on the number of ad groups there are in the
	// related campaign.
	//   "LOWER_TARGET_ROAS" - Recommendation to lower Target ROAS.
	//   "PERFORMANCE_MAX_OPT_IN" - Recommendation to opt into Performance Max
	// campaigns.
	//   "IMPROVE_PERFORMANCE_MAX_AD_STRENGTH" - Recommendation to improve the
	// asset group strength of a Performance Max campaign to an "Excellent" rating.
	//   "MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX" - Recommendation
	// to migrate Dynamic Search Ads to Performance Max campaigns.
	//   "FORECASTING_SET_TARGET_CPA" - Recommendation to set a target CPA for
	// campaigns that do not have one specified, in advance of a seasonal event
	// that is forecasted to increase traffic.
	//   "SET_TARGET_CPA" - Recommendation to set a target CPA for campaigns that
	// do not have one specified.
	//   "SET_TARGET_ROAS" - Recommendation to set a target ROAS for campaigns that
	// do not have one specified.
	//   "MAXIMIZE_CONVERSION_VALUE_OPT_IN" - Recommendation to update a campaign
	// to use the Maximize Conversion Value bidding strategy.
	//   "IMPROVE_GOOGLE_TAG_COVERAGE" - Recommendation to deploy Google Tag on
	// more pages.
	//   "PERFORMANCE_MAX_FINAL_URL_OPT_IN" - Recommendation to turn on Final URL
	// expansion for your Performance Max campaigns.
	//   "REFRESH_CUSTOMER_MATCH_LIST" - Recommendation to update a customer list
	// that hasn't been updated in the last 90 days.
	//   "CUSTOM_AUDIENCE_OPT_IN" - Recommendation to create a custom audience.
	//   "LEAD_FORM_ASSET" - Recommendation to add lead form assets to campaign or
	// customer level.
	//   "IMPROVE_DEMAND_GEN_AD_STRENGTH" - Recommendation to improve the strength
	// of ads in Demand Gen campaigns.
	RecommendationTypes []string `json:"recommendationTypes,omitempty"`
	// SeedInfo: Optional. Seed information for Keywords. This field is necessary
	// for the following recommendation_types: KEYWORD
	SeedInfo *GoogleAdsSearchads360V23ServicesGenerateRecommendationsRequestSeedInfo `json:"seedInfo,omitempty"`
	// TargetContentNetwork: Optional. If true, the campaign is opted into serving
	// ads on specified placements in the Google Display Network. This field is
	// optional for the following recommendation_types: CAMPAIGN_BUDGET
	TargetContentNetwork bool `json:"targetContentNetwork,omitempty"`
	// TargetPartnerSearchNetwork: Optional. If true, the campaign is opted into
	// serving ads on the Google Partner Network. This field is optional for the
	// following recommendation_types: CAMPAIGN_BUDGET
	TargetPartnerSearchNetwork bool `json:"targetPartnerSearchNetwork,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse: Response
// message for RecommendationService.GenerateRecommendations.
type GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse struct {
	// Recommendations: List of generated recommendations from the passed in set of
	// requested recommendation_types. If there isn't sufficient data to generate a
	// recommendation for the requested recommendation_types, the result set won't
	// contain a recommendation for that type.
	Recommendations []*GoogleAdsSearchads360V23Resources__Recommendation `json:"recommendations,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Recommendations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Recommendations") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest:
// Request message for
// AudienceInsightsService.GenerateSuggestedTargetingInsights.
type GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest struct {
	// AudienceDefinition: Provide a seed audience to get suggestions for.
	AudienceDefinition *GoogleAdsSearchads360V23Services__InsightsAudienceDefinition `json:"audienceDefinition,omitempty"`
	// AudienceDescription: Provide a text description of an audience to get
	// AI-generated targeting suggestions. This can take around 5 or more seconds
	// to complete.
	AudienceDescription *GoogleAdsSearchads360V23Services__InsightsAudienceDescription `json:"audienceDescription,omitempty"`
	// CustomerInsightsGroup: Optional. The name of the customer being planned for.
	// This is a user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudienceDefinition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudienceDefinition") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse:
//
//	Response message for
//
// AudienceInsightsService.GenerateSuggestedTargetingInsights.
type GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse struct {
	// Suggestions: Suggested insights for targetable audiences.
	Suggestions []*GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics `json:"suggestions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Suggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Suggestions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest:
// Request message for
// AudienceInsightsService.GenerateTargetingSuggestionMetrics.
type GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest struct {
	// Audiences: Required. Audiences to request metrics for.
	Audiences []*GoogleAdsSearchads360V23Services__InsightsAudience `json:"audiences,omitempty"`
	// CustomerInsightsGroup: Optional. The name of the customer being planned for.
	// This is a user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audiences") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audiences") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse:
//
//	Response message for
//
// AudienceInsightsService.GenerateTargetingSuggestionMetrics.
type GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse struct {
	// Suggestions: Suggested targetable audiences. There will be one suggestion
	// for each GenerateTargetingSuggestionMetricsRequest.audiences requested,
	// matching the order requested.
	Suggestions []*GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics `json:"suggestions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Suggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Suggestions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion: A geo target
// constant suggestion.
type GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion struct {
	// GeoTargetConstant: The GeoTargetConstant result.
	GeoTargetConstant *GoogleAdsSearchads360V23Resources__GeoTargetConstant `json:"geoTargetConstant,omitempty"`
	// GeoTargetConstantParents: The list of parents of the geo target constant.
	GeoTargetConstantParents []*GoogleAdsSearchads360V23Resources__GeoTargetConstant `json:"geoTargetConstantParents,omitempty"`
	// Locale: The language this GeoTargetConstantSuggestion is currently
	// translated to. It affects the name of geo target fields. For example, if
	// locale=en, then name=Spain. If locale=es, then name=España. The default
	// locale will be returned if no translation exists for the locale in the
	// request.
	Locale string `json:"locale,omitempty"`
	// Reach: Approximate user population that will be targeted, rounded to the
	// nearest 100.
	Reach int64 `json:"reach,omitempty,string"`
	// SearchTerm: If the request searched by location name, this is the location
	// name that matched the geo target.
	SearchTerm string `json:"searchTerm,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GeoTargetConstant") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstant") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse: Response
// message for GetIdentityVerification.
type GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse struct {
	// IdentityVerification: List of identity verifications for the customer.
	IdentityVerification []*GoogleAdsSearchads360V23Services__IdentityVerification `json:"identityVerification,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IdentityVerification") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityVerification") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse: Response
// message for SmartCampaignSettingService.GetSmartCampaignStatus.
type GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse struct {
	// EligibleDetails: Details related to Smart campaigns that are eligible to
	// serve.
	EligibleDetails *GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails `json:"eligibleDetails,omitempty"`
	// EndedDetails: Details related to Smart campaigns that have ended.
	EndedDetails *GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails `json:"endedDetails,omitempty"`
	// NotEligibleDetails: Details related to Smart campaigns that are ineligible
	// to serve.
	NotEligibleDetails *GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails `json:"notEligibleDetails,omitempty"`
	// PausedDetails: Details related to paused Smart campaigns.
	PausedDetails *GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails `json:"pausedDetails,omitempty"`
	// RemovedDetails: Details related to removed Smart campaigns.
	RemovedDetails *GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails `json:"removedDetails,omitempty"`
	// SmartCampaignStatus: The status of this Smart campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "PAUSED" - The campaign was paused.
	//   "NOT_ELIGIBLE" - The campaign is not eligible to serve and has issues that
	// may require intervention.
	//   "PENDING" - The campaign is pending the approval of at least one ad.
	//   "ELIGIBLE" - The campaign is eligible to serve.
	//   "REMOVED" - The campaign has been removed.
	//   "ENDED" - The campaign has ended.
	SmartCampaignStatus string `json:"smartCampaignStatus,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "EligibleDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EligibleDetails") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GoalOperation: A single mutate operation
// on the goal.
type GoogleAdsSearchads360V23Services__GoalOperation struct {
	// Create: Create a new goal.
	Create *GoogleAdsSearchads360V23Resources__Goal `json:"create,omitempty"`
	// Update: Update an existing goal.
	Update *GoogleAdsSearchads360V23Resources__Goal `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GoalOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GoalOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__GraduateExperimentRequest: Request message
// for ExperimentService.GraduateExperiment.
type GoogleAdsSearchads360V23Services__GraduateExperimentRequest struct {
	// CampaignBudgetMappings: Required. List of campaign budget mappings for
	// graduation. Each campaign that appears here will graduate, and will be
	// assigned a new budget that is paired with it in the mapping. The maximum
	// size is one.
	CampaignBudgetMappings []*GoogleAdsSearchads360V23Services__CampaignBudgetMapping `json:"campaignBudgetMappings,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudgetMappings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudgetMappings") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__GraduateExperimentRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__GraduateExperimentRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__HotelAssetSuggestion: Message containing
// the asset suggestions for a hotel.
type GoogleAdsSearchads360V23Services__HotelAssetSuggestion struct {
	// CallToAction: Call to action type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "LEARN_MORE" - The call to action type is learn more.
	//   "GET_QUOTE" - The call to action type is get quote.
	//   "APPLY_NOW" - The call to action type is apply now.
	//   "SIGN_UP" - The call to action type is sign up.
	//   "CONTACT_US" - The call to action type is contact us.
	//   "SUBSCRIBE" - The call to action type is subscribe.
	//   "DOWNLOAD" - The call to action type is download.
	//   "BOOK_NOW" - The call to action type is book now.
	//   "SHOP_NOW" - The call to action type is shop now.
	//   "BUY_NOW" - The call to action type is buy now.
	//   "DONATE_NOW" - The call to action type is donate now.
	//   "ORDER_NOW" - The call to action type is order now.
	//   "PLAY_NOW" - The call to action type is play now.
	//   "SEE_MORE" - The call to action type is see more.
	//   "START_NOW" - The call to action type is start now.
	//   "VISIT_SITE" - The call to action type is visit site.
	//   "WATCH_NOW" - The call to action type is watch now.
	CallToAction string `json:"callToAction,omitempty"`
	// FinalUrl: Suggested final URL for an AssetGroup.
	FinalUrl string `json:"finalUrl,omitempty"`
	// HotelName: Hotel name in requested language.
	HotelName string `json:"hotelName,omitempty"`
	// ImageAssets: Image assets such as landscape/portrait/square, etc.
	ImageAssets []*GoogleAdsSearchads360V23Services__HotelImageAsset `json:"imageAssets,omitempty"`
	// PlaceId: Google Places ID of the hotel.
	PlaceId string `json:"placeId,omitempty"`
	// Status: The status of the hotel asset suggestion.
	//
	// Possible values:
	//   "UNSPECIFIED" - Enum unspecified.
	//   "UNKNOWN" - The received error code is not known in this version.
	//   "SUCCESS" - The hotel asset suggestion was successfully retrieved.
	//   "HOTEL_NOT_FOUND" - A hotel look up returns nothing.
	//   "INVALID_PLACE_ID" - A Google Places ID is invalid and cannot be decoded.
	Status string `json:"status,omitempty"`
	// TextAssets: Text assets such as headline, description, etc.
	TextAssets []*GoogleAdsSearchads360V23Services__HotelTextAsset `json:"textAssets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallToAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallToAction") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__HotelAssetSuggestion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__HotelAssetSuggestion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__HotelImageAsset: A single image asset
// suggestion for a hotel.
type GoogleAdsSearchads360V23Services__HotelImageAsset struct {
	// AssetFieldType: The Image asset type. For example, MARKETING_IMAGE,
	// PORTRAIT_MARKETING_IMAGE, etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// Uri: URI for the image.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetFieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetFieldType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__HotelImageAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__HotelImageAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__HotelTextAsset: A single text asset
// suggestion for a hotel.
type GoogleAdsSearchads360V23Services__HotelTextAsset struct {
	// AssetFieldType: The text asset type. For example, HEADLINE, DESCRIPTION,
	// etc.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	AssetFieldType string `json:"assetFieldType,omitempty"`
	// Text: Asset text in requested language.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetFieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetFieldType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__HotelTextAsset) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__HotelTextAsset
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__IdentityVerification: An identity
// verification for a customer.
type GoogleAdsSearchads360V23Services__IdentityVerification struct {
	// IdentityVerificationRequirement: The verification requirement for this
	// verification program for this customer.
	IdentityVerificationRequirement *GoogleAdsSearchads360V23Services__IdentityVerificationRequirement `json:"identityVerificationRequirement,omitempty"`
	// VerificationProgram: The verification program type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ADVERTISER_IDENTITY_VERIFICATION" - Advertiser submits documents to
	// verify their identity.
	VerificationProgram string `json:"verificationProgram,omitempty"`
	// VerificationProgress: Information regarding progress for this verification
	// program for this customer.
	VerificationProgress *GoogleAdsSearchads360V23Services__IdentityVerificationProgress `json:"verificationProgress,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "IdentityVerificationRequirement") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityVerificationRequirement")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__IdentityVerification) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__IdentityVerification
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__IdentityVerificationProgress: Information
// regarding the verification progress for a verification program type.
type GoogleAdsSearchads360V23Services__IdentityVerificationProgress struct {
	// ActionUrl: Action URL for user to complete verification for the given
	// verification program type.
	ActionUrl string `json:"actionUrl,omitempty"`
	// InvitationLinkExpirationTime: The timestamp when the action url will expire
	// in "yyyy-MM-dd HH:mm:ss" format.
	InvitationLinkExpirationTime string `json:"invitationLinkExpirationTime,omitempty"`
	// ProgramStatus: Current Status (PENDING_USER_ACTION, SUCCESS, FAILURE etc)
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "PENDING_USER_ACTION" - Verification is pending on user action to proceed.
	//   "PENDING_REVIEW" - Verification is pending on review.
	//   "SUCCESS" - Verification succeeded.
	//   "FAILURE" - Verification failed.
	ProgramStatus string `json:"programStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__IdentityVerificationProgress) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__IdentityVerificationProgress
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__IdentityVerificationRequirement:
// Information regarding the verification requirement for a verification
// program type.
type GoogleAdsSearchads360V23Services__IdentityVerificationRequirement struct {
	// VerificationCompletionDeadlineTime: The deadline to submit verification.
	VerificationCompletionDeadlineTime string `json:"verificationCompletionDeadlineTime,omitempty"`
	// VerificationStartDeadlineTime: The deadline to start verification in
	// "yyyy-MM-dd HH:mm:ss" format.
	VerificationStartDeadlineTime string `json:"verificationStartDeadlineTime,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "VerificationCompletionDeadlineTime") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "VerificationCompletionDeadlineTime") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__IdentityVerificationRequirement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__IdentityVerificationRequirement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__Incentive: An incentive that a user can
// claim for their account.
type GoogleAdsSearchads360V23Services__Incentive struct {
	// IncentiveId: The incentive ID of this incentive. This is used to identify
	// which incentive is selected by the user in the CYO flow.
	IncentiveId int64 `json:"incentiveId,omitempty,string"`
	// IncentiveTermsAndConditionsUrl: The URL of the terms and conditions for THIS
	// incentive offer ONLY. This is different from the terms_and_conditions_url
	// field in AcquisitionIncentiveOffer which is a combination of all the
	// Incentive offers in a CYO offer.
	IncentiveTermsAndConditionsUrl string `json:"incentiveTermsAndConditionsUrl,omitempty"`
	// Requirement: The requirement for this incentive.
	Requirement *GoogleAdsSearchads360V23ServicesIncentiveRequirement `json:"requirement,omitempty"`
	// Type: The type of the incentive.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Unknown incentive type. Should not be used as a value
	// explicitly.
	//   "ACQUISITION" - An acquisition incentive.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncentiveId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncentiveId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__Incentive) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__Incentive
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__IncentiveOffer: An acquisition incentive
// offer for a user. An offer means how the user is treated. An offer can have
// no incentive or multiple incentives.
type GoogleAdsSearchads360V23Services__IncentiveOffer struct {
	// ConsolidatedTermsAndConditionsUrl: Optional. The URL of the terms and
	// conditions for the incentive offer.
	ConsolidatedTermsAndConditionsUrl string `json:"consolidatedTermsAndConditionsUrl,omitempty"`
	// CyoIncentives: CYO incentives. Set when type is CYO_INCENTIVE.
	CyoIncentives *GoogleAdsSearchads360V23Services__CyoIncentives `json:"cyoIncentives,omitempty"`
	// Type: Required. The type of this acquisition incentive offer.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unknown offer type. Should not be used as a value
	// explicitly.
	//   "UNKNOWN" - Unknown offer type.
	//   "NO_INCENTIVE" - An offer with no incentive.
	//   "CYO_INCENTIVE" - A CYO (Choose-Your-Own) offer with multiple incentives
	// to choose from.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ConsolidatedTermsAndConditionsUrl") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ConsolidatedTermsAndConditionsUrl") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__IncentiveOffer) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__IncentiveOffer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__IndustryVerticalInfo: The information
// associated with an Industry Vertical.
type GoogleAdsSearchads360V23Services__IndustryVerticalInfo struct {
	// IndustryVerticalId: The unique identifier of the Industry Vertical.
	IndustryVerticalId int64 `json:"industryVerticalId,omitempty,string"`
	// IndustryVerticalName: The name of the Industry Vertical.
	IndustryVerticalName string `json:"industryVerticalName,omitempty"`
	// ParentIndustryVerticalId: The unique identifier of the parent Industry
	// Vertical, if exists.
	ParentIndustryVerticalId int64 `json:"parentIndustryVerticalId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "IndustryVerticalId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IndustryVerticalId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__IndustryVerticalInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__IndustryVerticalInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__InsightsAudience: A set of users, defined
// by various characteristics, for which insights can be requested in
// AudienceInsightsService.
type GoogleAdsSearchads360V23Services__InsightsAudience struct {
	// AgeRanges: Age ranges for the audience. If absent, the audience represents
	// all people over 18 that match the other attributes.
	AgeRanges []*GoogleAdsSearchads360V23Common__AgeRangeInfo `json:"ageRanges,omitempty"`
	// CountryLocations: Required. The countries for the audience.
	CountryLocations []*GoogleAdsSearchads360V23Common__LocationInfo `json:"countryLocations,omitempty"`
	// Gender: Gender for the audience. If absent, the audience does not restrict
	// by gender.
	Gender *GoogleAdsSearchads360V23Common__GenderInfo `json:"gender,omitempty"`
	// IncomeRanges: Household income percentile ranges for the audience. If
	// absent, the audience does not restrict by household income range.
	IncomeRanges []*GoogleAdsSearchads360V23Common__IncomeRangeInfo `json:"incomeRanges,omitempty"`
	// Lineups: Lineups representing the YouTube content viewed by the audience.
	Lineups []*GoogleAdsSearchads360V23Common__AudienceInsightsLineup `json:"lineups,omitempty"`
	// ParentalStatus: Parental status for the audience. If absent, the audience
	// does not restrict by parental status.
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusInfo `json:"parentalStatus,omitempty"`
	// SubCountryLocations: Sub-country geographic location attributes. If present,
	// each of these must be contained in one of the countries in this audience. If
	// absent, the audience is geographically to the country_locations and no
	// further.
	SubCountryLocations []*GoogleAdsSearchads360V23Common__LocationInfo `json:"subCountryLocations,omitempty"`
	// TopicAudienceCombinations: A combination of entity, category and user
	// interest attributes defining the audience. The combination has a logical
	// AND-of-ORs structure: Attributes within each InsightsAudienceAttributeGroup
	// are combined with OR, and the combinations themselves are combined together
	// with AND. For example, the expression (Entity OR Affinity) AND (In-Market OR
	// Category) can be formed using two InsightsAudienceAttributeGroups with two
	// Attributes each.
	TopicAudienceCombinations []*GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup `json:"topicAudienceCombinations,omitempty"`
	// UserList: User list to be targeted by the audience.
	UserList *GoogleAdsSearchads360V23Common__UserListInfo `json:"userList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__InsightsAudience) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__InsightsAudience
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup: A list of
// AudienceInsightsAttributes.
type GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup struct {
	// Attributes: Required. A collection of audience attributes to be combined
	// with logical OR. Attributes need not all be the same dimension. Only
	// Knowledge Graph entities, Product & Service Categories, and Affinity and
	// In-Market audiences are supported in this context.
	Attributes []*GoogleAdsSearchads360V23Common__AudienceInsightsAttribute `json:"attributes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__InsightsAudienceAttributeGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__InsightsAudienceDefinition: A structured
// definition of the audience of interest for which insights are being
// requested in AudienceInsightsService.
type GoogleAdsSearchads360V23Services__InsightsAudienceDefinition struct {
	// Audience: Required. The audience of interest for which insights are being
	// requested.
	Audience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"audience,omitempty"`
	// BaselineAudience: Optional. The baseline audience. The default, if
	// unspecified, is all people in the same country as the audience of interest.
	BaselineAudience *GoogleAdsSearchads360V23Services__InsightsAudience `json:"baselineAudience,omitempty"`
	// DataMonth: Optional. The one-month range of historical data to use for
	// insights, in the format "yyyy-mm". If unset, insights will be returned for
	// the last thirty days of data.
	DataMonth string `json:"dataMonth,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audience") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__InsightsAudienceDefinition) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__InsightsAudienceDefinition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__InsightsAudienceDescription: A text
// description of the audience of interest for which insights are being
// requested in AudienceInsightsService.
type GoogleAdsSearchads360V23Services__InsightsAudienceDescription struct {
	// AudienceDescription: Required. An English language text description of an
	// audience to get suggestions for. Maximum length is 2000 characters. For
	// example, "Women in their 30s who love to travel".
	AudienceDescription string `json:"audienceDescription,omitempty"`
	// AudienceDimensions: Optional. An optional list of audience dimensions to
	// return.
	AudienceDimensions *GoogleAdsSearchads360V23Services__AudienceInsightsDimensions `json:"audienceDimensions,omitempty"`
	// CountryLocations: Required. The countries for the audience.
	CountryLocations []*GoogleAdsSearchads360V23Common__LocationInfo `json:"countryLocations,omitempty"`
	// MarketingObjective: Optional. An optional marketing objective which will
	// influence the type of suggestions produced.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AWARENESS" - The objective is to increase awareness of a brand or product
	// among relevant audiences.
	//   "CONSIDERATION" - The objective is to encourage potential customers to
	// consider your brand or products when they're researching or shopping for
	// product.
	//   "RESEARCH" - The objective is for research, to gain further insights into
	// your audience.
	MarketingObjective string `json:"marketingObjective,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudienceDescription") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudienceDescription") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__InsightsAudienceDescription) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__InsightsAudienceDescription
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordAndUrlSeed: Keyword And Url Seed
type GoogleAdsSearchads360V23Services__KeywordAndUrlSeed struct {
	// Keywords: Requires at least one keyword and no more than 20 keywords.
	Keywords []string `json:"keywords,omitempty"`
	// Url: The URL to crawl in order to generate keyword ideas.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Keywords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keywords") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordAndUrlSeed) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordAndUrlSeed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordForecastMetrics: The forecast
// metrics for the planless keyword campaign.
type GoogleAdsSearchads360V23Services__KeywordForecastMetrics struct {
	// AverageCpaMicros: Average cost per acquisition calculated as cost_micros /
	// conversions.
	AverageCpaMicros int64 `json:"averageCpaMicros,omitempty,string"`
	// AverageCpcMicros: The average cpc. Available only if clicks > 0.
	AverageCpcMicros int64 `json:"averageCpcMicros,omitempty,string"`
	// ClickThroughRate: The average click through rate. Available only if
	// impressions > 0.
	ClickThroughRate float64 `json:"clickThroughRate,omitempty"`
	// Clicks: The total number of clicks.
	Clicks float64 `json:"clicks,omitempty"`
	// ConversionRate: Forecasted conversion rate.
	ConversionRate float64 `json:"conversionRate,omitempty"`
	// Conversions: Forecasted number of conversions: clicks * conversion_rate.
	Conversions float64 `json:"conversions,omitempty"`
	// CostMicros: The total cost.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Impressions: The total number of impressions.
	Impressions float64 `json:"impressions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageCpaMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageCpaMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordForecastMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordForecastMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__KeywordForecastMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordForecastMetrics
	var s1 struct {
		ClickThroughRate gensupport.JSONFloat64 `json:"clickThroughRate"`
		Clicks           gensupport.JSONFloat64 `json:"clicks"`
		ConversionRate   gensupport.JSONFloat64 `json:"conversionRate"`
		Conversions      gensupport.JSONFloat64 `json:"conversions"`
		Impressions      gensupport.JSONFloat64 `json:"impressions"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ClickThroughRate = float64(s1.ClickThroughRate)
	s.Clicks = float64(s1.Clicks)
	s.ConversionRate = float64(s1.ConversionRate)
	s.Conversions = float64(s1.Conversions)
	s.Impressions = float64(s1.Impressions)
	return nil
}

// GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation: A
// single operation (create, update, remove) on a Keyword Plan ad group
// keyword.
type GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation struct {
	// Create: Create operation: No resource name is expected for the new Keyword
	// Plan ad group keyword.
	Create *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed Keyword Plan ad
	// group keyword is expected, in this format:
	// `customers/{customer_id}/keywordPlanAdGroupKeywords/{kp_ad_group_keyword_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The Keyword Plan ad group keyword is expected to
	// have a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword `json:"update,omitempty"`
	// UpdateMask: The FieldMask that determines which resource fields are modified
	// in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation: A single
// operation (create, update, remove) on a Keyword Plan ad group.
type GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation struct {
	// Create: Create operation: No resource name is expected for the new Keyword
	// Plan ad group.
	Create *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed Keyword Plan ad
	// group is expected, in this format:
	// `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The Keyword Plan ad group is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup `json:"update,omitempty"`
	// UpdateMask: The FieldMask that determines which resource fields are modified
	// in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation: A
// single operation (create, update, remove) on a Keyword Plan campaign
// keyword.
type GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation struct {
	// Create: Create operation: No resource name is expected for the new Keyword
	// Plan campaign keyword.
	Create *GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed Keyword Plan
	// campaign keywords expected in this format:
	// `customers/{customer_id}/keywordPlanCampaignKeywords/{kp_campaign_keyword_id}
	// `
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The Keyword Plan campaign keyword expected to have
	// a valid resource name.
	Update *GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword `json:"update,omitempty"`
	// UpdateMask: The FieldMask that determines which resource fields are modified
	// in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation: A single
// operation (create, update, remove) on a Keyword Plan campaign.
type GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation struct {
	// Create: Create operation: No resource name is expected for the new Keyword
	// Plan campaign.
	Create *GoogleAdsSearchads360V23Resources__KeywordPlanCampaign `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed Keyword Plan
	// campaign is expected, in this format:
	// `customers/{customer_id}/keywordPlanCampaigns/{keywordPlan_campaign_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The Keyword Plan campaign is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__KeywordPlanCampaign `json:"update,omitempty"`
	// UpdateMask: The FieldMask that determines which resource fields are modified
	// in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordPlanOperation: A single operation
// (create, update, remove) on a keyword plan.
type GoogleAdsSearchads360V23Services__KeywordPlanOperation struct {
	// Create: Create operation: No resource name is expected for the new keyword
	// plan.
	Create *GoogleAdsSearchads360V23Resources__KeywordPlan `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed keyword plan is
	// expected in this format:
	// `customers/{customer_id}/keywordPlans/{keyword_plan_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The keyword plan is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__KeywordPlan `json:"update,omitempty"`
	// UpdateMask: The FieldMask that determines which resource fields are modified
	// in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordPlanOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordPlanOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__KeywordSeed: Keyword Seed
type GoogleAdsSearchads360V23Services__KeywordSeed struct {
	// Keywords: Requires at least one keyword and no more than 20 keywords.
	Keywords []string `json:"keywords,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Keywords") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Keywords") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__KeywordSeed) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__KeywordSeed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__LabelOperation: A single operation
// (create, remove, update) on a label.
type GoogleAdsSearchads360V23Services__LabelOperation struct {
	// Create: Create operation: No resource name is expected for the new label.
	Create *GoogleAdsSearchads360V23Resources__Label `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the label being removed, in
	// this format: `customers/{customer_id}/labels/{label_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The label is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__Label `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__LabelOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__LabelOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse: Response
// message for CustomerService.ListAccessibleCustomers.
type GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse struct {
	// ResourceNames: Resource name of customers directly accessible by the user
	// authenticating the call.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceNames") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest:
// Request message for AudienceInsightsService.ListAudienceInsightsAttributes.
type GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest struct {
	// CustomerInsightsGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerInsightsGroup string `json:"customerInsightsGroup,omitempty"`
	// Dimensions: Required. The types of attributes to be returned. Supported
	// dimensions are CATEGORY, KNOWLEDGE_GRAPH, GEO_TARGET_COUNTRY,
	// SUB_COUNTRY_LOCATION, YOUTUBE_LINEUP, AFFINITY_USER_INTEREST,
	// IN_MARKET_USER_INTEREST, .
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "CATEGORY" - A Product & Service category.
	//   "KNOWLEDGE_GRAPH" - A Knowledge Graph entity.
	//   "GEO_TARGET_COUNTRY" - A country, represented by a geo target.
	//   "SUB_COUNTRY_LOCATION" - A geographic location within a country.
	//   "YOUTUBE_CHANNEL" - A YouTube channel.
	//   "AFFINITY_USER_INTEREST" - An Affinity UserInterest.
	//   "IN_MARKET_USER_INTEREST" - An In-Market UserInterest.
	//   "PARENTAL_STATUS" - A Parental Status value (parent, or not a parent).
	//   "INCOME_RANGE" - A household income percentile range.
	//   "AGE_RANGE" - An age range.
	//   "GENDER" - A gender.
	//   "YOUTUBE_VIDEO" - A YouTube video.
	//   "DEVICE" - A device type, such as Mobile, Desktop, Tablet, and Connected
	// TV.
	//   "YOUTUBE_LINEUP" - A YouTube Lineup.
	//   "USER_LIST" - A User List.
	//   "LIFE_EVENT_USER_INTEREST" - A Life Event UserInterest.
	Dimensions []string `json:"dimensions,omitempty"`
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// LocationCountryFilters: If SUB_COUNTRY_LOCATION attributes are one of the
	// requested dimensions and this field is present, then the
	// SUB_COUNTRY_LOCATION attributes returned will be located in these countries.
	// If this field is absent, then location attributes are not filtered by
	// country. Setting this field when SUB_COUNTRY_LOCATION attributes are not
	// requested will return an error.
	LocationCountryFilters []*GoogleAdsSearchads360V23Common__LocationInfo `json:"locationCountryFilters,omitempty"`
	// QueryText: Required. A free text query. If the requested dimensions include
	// Attributes CATEGORY or KNOWLEDGE_GRAPH, then the attributes returned for
	// those dimensions will match or be related to this string. For other
	// dimensions, this field is ignored and all available attributes are returned.
	QueryText string `json:"queryText,omitempty"`
	// YoutubeReachLocation: If present, potential YouTube reach estimates within
	// the specified market will be returned for attributes for which they are
	// available. Reach is only available for the AGE_RANGE, GENDER,
	// AFFINITY_USER_INTEREST and IN_MARKET_USER_INTEREST dimensions, and may not
	// be available for every attribute of those dimensions in every market.
	YoutubeReachLocation *GoogleAdsSearchads360V23Common__LocationInfo `json:"youtubeReachLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerInsightsGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerInsightsGroup") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse:
// Response message for AudienceInsightsService.ListAudienceInsightsAttributes.
type GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse struct {
	// Attributes: The attributes matching the search query.
	Attributes []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"attributes,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse: Response
// message for BatchJobService.ListBatchJobResults.
type GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse struct {
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Results: The list of rows that matched the query.
	Results []*GoogleAdsSearchads360V23Services__BatchJobResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest:
// Request message for BenchmarksService.ListBenchmarksAvailableDates.
type GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest struct {
	// ApplicationInfo: Additional information on the application issuing the
	// request.
	ApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"applicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse:
// Response message for BenchmarksService.ListBenchmarksAvailableDates.
type GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse struct {
	// SupportedDates: The dates that support benchmarks metrics. Data is supported
	// for any dates within this date range inclusive.
	SupportedDates *GoogleAdsSearchads360V23Common__DateRange `json:"supportedDates,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "SupportedDates") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SupportedDates") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest: Request
// message for BenchmarksService.ListBenchmarksLocations.
type GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest struct {
	// ApplicationInfo: Additional information on the application issuing the
	// request.
	ApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"applicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse: Response
// message for BenchmarksService.ListBenchmarksLocations.
type GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse struct {
	// BenchmarksLocations: The list of locations supported for benchmarks data.
	BenchmarksLocations []*GoogleAdsSearchads360V23Services__BenchmarksLocation `json:"benchmarksLocations,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BenchmarksLocations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BenchmarksLocations") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest: Request
// message for BenchmarksService.ListBenchmarksProducts.
type GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest struct {
	// ApplicationInfo: Additional information on the application issuing the
	// request.
	ApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"applicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse: Response
// message for BenchmarksService.ListBenchmarksProducts.
type GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse struct {
	// BenchmarksProducts: The list of products available for benchmarks data.
	BenchmarksProducts []*GoogleAdsSearchads360V23Services__BenchmarksProductMetadata `json:"benchmarksProducts,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BenchmarksProducts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BenchmarksProducts") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest: Request
// message for BenchmarksService.ListBenchmarksSources.
type GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest struct {
	// ApplicationInfo: Additional information on the application issuing the
	// request.
	ApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"applicationInfo,omitempty"`
	// BenchmarksSources: Required. The types of benchmarks sources to be returned
	// (for example, INDUSTRY_VERTICAL).
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "INDUSTRY_VERTICAL" - The classification of ad categories for
	// benchmarking. (for example, "Technology" or "Finance").
	BenchmarksSources []string `json:"benchmarksSources,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApplicationInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse: Response
// message for BenchmarksService.ListBenchmarksSources.
type GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse struct {
	// BenchmarksSources: The list of available source used to generate benchmarks
	// data for.
	BenchmarksSources []*GoogleAdsSearchads360V23Services__BenchmarksSourceMetadata `json:"benchmarksSources,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BenchmarksSources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BenchmarksSources") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse:
// Response message for CampaignDraftService.ListCampaignDraftAsyncErrors.
type GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse struct {
	// Errors: Details of the errors when performing the asynchronous operation.
	Errors []*GoogleRpc__Status `json:"errors,omitempty"`
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	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. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListCustomColumnsResponse: Response
// message for fetching all custom columns associated with a customer.
type GoogleAdsSearchads360V23Services__ListCustomColumnsResponse struct {
	// CustomColumns: The CustomColumns owned by the provided customer.
	CustomColumns []*GoogleAdsSearchads360V23Resources__CustomColumn `json:"customColumns,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CustomColumns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomColumns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListCustomColumnsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListCustomColumnsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse:
// Response message for ExperimentService.ListExperimentAsyncErrors.
type GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse struct {
	// Errors: details of the errors when performing the asynchronous operation.
	Errors []*GoogleRpc__Status `json:"errors,omitempty"`
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	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. "Errors") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Errors") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest: Request
// message for AudienceInsightsService.ListInsightsEligibleDates.
type GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest struct {
	// InsightsApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	InsightsApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"insightsApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InsightsApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InsightsApplicationInfo") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse:
// Response message for AudienceInsightsService.ListInsightsEligibleDates.
type GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse struct {
	// DataMonths: The months for which AudienceInsights data is currently
	// available, each represented as a string in the form "YYYY-MM".
	DataMonths []string `json:"dataMonths,omitempty"`
	// LastThirtyDays: The actual dates covered by the "last 30 days" date range
	// that will be used implicitly for
	// AudienceInsightsService.GenerateAudienceCompositionInsights requests that
	// have no data_month set.
	LastThirtyDays *GoogleAdsSearchads360V23Common__DateRange `json:"lastThirtyDays,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "DataMonths") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataMonths") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListInvoicesResponse: Response message for
// InvoiceService.ListInvoices.
type GoogleAdsSearchads360V23Services__ListInvoicesResponse struct {
	// Invoices: The list of invoices that match the billing setup and time period.
	Invoices []*GoogleAdsSearchads360V23Resources__Invoice `json:"invoices,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Invoices") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Invoices") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListInvoicesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListInvoicesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse: Response
// message for PaymentsAccountService.ListPaymentsAccounts.
type GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse struct {
	// PaymentsAccounts: The list of accessible payments accounts.
	PaymentsAccounts []*GoogleAdsSearchads360V23Resources__PaymentsAccount `json:"paymentsAccounts,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PaymentsAccounts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PaymentsAccounts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest: Request
// message for ReachPlanService.ListPlannableLocations.
type GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest struct {
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReachApplicationInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReachApplicationInfo") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse: The list
// of plannable locations.
type GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse struct {
	// PlannableLocations: The list of locations available for planning. See
	// https://developers.google.com/google-ads/api/reference/data/geotargets for
	// sample locations.
	PlannableLocations []*GoogleAdsSearchads360V23Services__PlannableLocation `json:"plannableLocations,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PlannableLocations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlannableLocations") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableProductsRequest: Request to
// list available products in a given location.
type GoogleAdsSearchads360V23Services__ListPlannableProductsRequest struct {
	// PlannableLocationId: Required. The ID of the selected location for planning.
	// To list the available plannable location IDs use
	// ReachPlanService.ListPlannableLocations.
	PlannableLocationId string `json:"plannableLocationId,omitempty"`
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PlannableLocationId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlannableLocationId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableProductsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableProductsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableProductsResponse: A response
// with all available products.
type GoogleAdsSearchads360V23Services__ListPlannableProductsResponse struct {
	// ProductMetadata: The list of products available for planning and related
	// targeting metadata.
	ProductMetadata []*GoogleAdsSearchads360V23Services__ProductMetadata `json:"productMetadata,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ProductMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableProductsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableProductsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest: Request
// message for ReachPlanService.ListPlannableUserInterests.
type GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest struct {
	// CustomerId: Required. The ID of the customer.
	CustomerId string `json:"customerId,omitempty"`
	// NameQuery: A filter by user interest name. If set, only user interests with
	// a name containing the literal string (case insensitive) in the filter will
	// be returned. Maximum length is 200 characters.
	NameQuery string `json:"nameQuery,omitempty"`
	// PathQuery: A filter by user interest path. If set, only user interests with
	// a path containing the literal string (case insensitive) in the filter will
	// be returned. Maximum length is 200 characters.
	PathQuery string `json:"pathQuery,omitempty"`
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// UserInterestTaxonomyTypes: Optional. A filter by user interest type. If set,
	// only user interests with a type listed in the filter will be returned. If
	// not set, user interests of all supported types will be returned. Supported
	// user interest types are AFFINITY and IN_MARKET. Each type must be specified
	// at most once.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AFFINITY" - The affinity for this user interest.
	//   "IN_MARKET" - The market for this user interest.
	//   "MOBILE_APP_INSTALL_USER" - Users known to have installed applications in
	// the specified categories.
	//   "VERTICAL_GEO" - The geographical location of the interest-based vertical.
	//   "NEW_SMART_PHONE_USER" - User interest criteria for new smart phone users.
	UserInterestTaxonomyTypes []string `json:"userInterestTaxonomyTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse:
// Response message for ReachPlanService.ListPlannableUserInterests.
type GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse struct {
	// PlannableUserInterests: The list of plannable user interests.
	PlannableUserInterests []*GoogleAdsSearchads360V23Services__PlannableUserInterest `json:"plannableUserInterests,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PlannableUserInterests") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlannableUserInterests") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest: Request
// message for ReachPlanService.ListPlannableUserLists that lists the available
// user lists for a customer.
type GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest struct {
	// CustomerId: Required. The ID of the customer.
	CustomerId string `json:"customerId,omitempty"`
	// CustomerReachGroup: The name of the customer being planned for. This is a
	// user-defined value.
	CustomerReachGroup string `json:"customerReachGroup,omitempty"`
	// ReachApplicationInfo: Optional. Additional information on the application
	// issuing the request.
	ReachApplicationInfo *GoogleAdsSearchads360V23Common__AdditionalApplicationInfo `json:"reachApplicationInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse: A response
// with all available user lists with their plannable status.
type GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse struct {
	// PlannableUserLists: The list of user lists available for planning and
	// related targeting metadata.
	PlannableUserLists []*GoogleAdsSearchads360V23Services__PlannableUserList `json:"plannableUserLists,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PlannableUserLists") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlannableUserLists") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy: Manual CPC
// Bidding Strategy.
type GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy struct {
	// DailyBudgetMicros: Campaign level budget in micros. If set, a minimum value
	// is enforced for the local currency used in the campaign. An error will occur
	// showing the minimum value if this field is set too low.
	DailyBudgetMicros int64 `json:"dailyBudgetMicros,omitempty,string"`
	// MaxCpcBidMicros: Required. A bid in micros to be applied to ad groups within
	// the campaign for a manual CPC bidding strategy.
	MaxCpcBidMicros int64 `json:"maxCpcBidMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DailyBudgetMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailyBudgetMicros") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ManualCpcBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy: Maximize
// Clicks Bidding Strategy.
type GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy struct {
	// DailyTargetSpendMicros: Required. The daily target spend in micros to be
	// used for estimation. A minimum value is enforced for the local currency used
	// in the campaign. An error will occur showing the minimum value if this field
	// is set too low.
	DailyTargetSpendMicros int64 `json:"dailyTargetSpendMicros,omitempty,string"`
	// MaxCpcBidCeilingMicros: Ceiling on max CPC bids in micros.
	MaxCpcBidCeilingMicros int64 `json:"maxCpcBidCeilingMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DailyTargetSpendMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailyTargetSpendMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MaximizeClicksBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy:
// Maximize Conversions Bidding Strategy.
type GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy struct {
	// DailyTargetSpendMicros: Required. The daily target spend in micros to be
	// used for estimation. This value must be greater than zero.
	DailyTargetSpendMicros int64 `json:"dailyTargetSpendMicros,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DailyTargetSpendMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DailyTargetSpendMicros") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MaximizeConversionsBiddingStrategy
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MetricAttributes: Indicates the attributes
// of metrics.
type GoogleAdsSearchads360V23Services__MetricAttributes struct {
	// Attributes: The attributes of the metric.
	Attributes []*GoogleAdsSearchads360V23ServicesMetricAttributesAttribute `json:"attributes,omitempty"`
	// Name: The name of the metric.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attributes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MetricAttributes) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MetricAttributes
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__Metrics: All metrics returned against a
// criteria.
type GoogleAdsSearchads360V23Services__Metrics struct {
	// AverageRateMetrics: Average rate metrics calculated by dividing one metric
	// by another.
	AverageRateMetrics *GoogleAdsSearchads360V23Services__RateMetrics `json:"averageRateMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageRateMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageRateMetrics") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__Metrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__Metrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MoveManagerLinkRequest: Request message
// for CustomerManagerLinkService.MoveManagerLink.
type GoogleAdsSearchads360V23Services__MoveManagerLinkRequest struct {
	// NewManager: Required. The resource name of the new manager customer that the
	// client wants to move to. Customer resource names have the format:
	// "customers/{customer_id}"
	NewManager string `json:"newManager,omitempty"`
	// PreviousCustomerManagerLink: Required. The resource name of the previous
	// CustomerManagerLink. The resource name has the form:
	// `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_
	// link_id}`
	PreviousCustomerManagerLink string `json:"previousCustomerManagerLink,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NewManager") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NewManager") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MoveManagerLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MoveManagerLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MoveManagerLinkResponse: Response message
// for a CustomerManagerLink moveManagerLink.
type GoogleAdsSearchads360V23Services__MoveManagerLinkResponse struct {
	// ResourceName: Returned for successful operations. Represents a
	// CustomerManagerLink resource of the newly created link between client
	// customer and new manager customer.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MoveManagerLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MoveManagerLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest:
// Request message for
// AccountBudgetProposalService.MutateAccountBudgetProposal.
type GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest struct {
	// Operation: Required. The operation to perform on an individual account-level
	// budget proposal.
	Operation *GoogleAdsSearchads360V23Services__AccountBudgetProposalOperation `json:"operation,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse:
// Response message for account-level budget mutate operations.
type GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse struct {
	// Result: The result of the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult: The
// result for the account budget proposal mutate.
type GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountLinkRequest: Request message
// for AccountLinkService.MutateAccountLink.
type GoogleAdsSearchads360V23Services__MutateAccountLinkRequest struct {
	// Operation: Required. The operation to perform on the link.
	Operation *GoogleAdsSearchads360V23Services__AccountLinkOperation `json:"operation,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountLinkResponse: Response
// message for account link mutate.
type GoogleAdsSearchads360V23Services__MutateAccountLinkResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Result: Result for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateAccountLinkResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAccountLinkResult: The result for
// the account link mutate.
type GoogleAdsSearchads360V23Services__MutateAccountLinkResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAccountLinkResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAccountLinkResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult: The result for
// an ad group ad label mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest: Request
// message for AdGroupAdLabelService.MutateAdGroupAdLabels.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest struct {
	// Operations: Required. The list of operations to perform on ad group ad
	// labels.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse: Response
// message for an ad group ad labels mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdResult: The result for the
// ad mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdResult struct {
	// AdGroupAd: The mutated ad group ad with only mutable fields after mutate.
	// The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AdGroupAd *GoogleAdsSearchads360V23Resources__AdGroupAd `json:"adGroupAd,omitempty"`
	// ResourceName: The resource name returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAd") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest: Request message
// for AdGroupAdService.MutateAdGroupAds.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest struct {
	// Operations: Required. The list of operations to perform on individual ads.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupAdOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse: Response message
// for an ad group ad mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupAdResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult: The result for
// the ad group asset mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult struct {
	// AdGroupAsset: The mutated ad group asset with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AdGroupAsset *GoogleAdsSearchads360V23Resources__AdGroupAsset `json:"adGroupAsset,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult: The result
// for the ad group asset set mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult struct {
	// AdGroupAssetSet: The mutated ad group asset set with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	AdGroupAssetSet *GoogleAdsSearchads360V23Resources__AdGroupAssetSet `json:"adGroupAssetSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAssetSet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest: Request
// message for AdGroupAssetSetService.MutateAdGroupAssetSets.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// group asset sets.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupAssetSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse: Response
// message for an ad group asset set mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (e.g. auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest: Request
// message for AdGroupAssetService.MutateAdGroupAssets.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// group assets.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupAssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse: Response
// message for an ad group asset mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult: The result
// for the criterion mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult struct {
	// AdGroupBidModifier: The mutated ad group bid modifier with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	AdGroupBidModifier *GoogleAdsSearchads360V23Resources__AdGroupBidModifier `json:"adGroupBidModifier,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupBidModifier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupBidModifier") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest: Request
// message for AdGroupBidModifierService.MutateAdGroupBidModifiers.
type GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// group bid modifiers.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse:
// Response message for ad group bid modifiers mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest: Request
// message for AdGroupCriterionService.MutateAdGroupCriteria.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// criteria.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupCriterionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse: Response
// message for an ad group criterion mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult:
// The result for the ad group criterion customizer mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult struct {
	// AdGroupCriterionCustomizer: The mutated AdGroupCriterionCustomizer with only
	// mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	AdGroupCriterionCustomizer *GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer `json:"adGroupCriterionCustomizer,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterionCustomizer")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterionCustomizer") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest:
// Request message for
// AdGroupCriterionCustomizerService.MutateAdGroupCriterionCustomizers.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// group criterion customizers.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse:
// Response message for an ad group criterion customizer mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult: The
// result for an ad group criterion label mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest:
// Request message for
// AdGroupCriterionLabelService.MutateAdGroupCriterionLabels.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest struct {
	// Operations: Required. The list of operations to perform on ad group
	// criterion labels.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse:
// Response message for an ad group criterion labels mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult: The result
// for the criterion mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult struct {
	// AdGroupCriterion: The mutated ad group criterion with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	AdGroupCriterion *GoogleAdsSearchads360V23Resources__AdGroupCriterion `json:"adGroupCriterion,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult: The result
// for the ad group customizer mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult struct {
	// AdGroupCustomizer: The mutated AdGroupCustomizer with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	AdGroupCustomizer *GoogleAdsSearchads360V23Resources__AdGroupCustomizer `json:"adGroupCustomizer,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupCustomizer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupCustomizer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest: Request
// message for AdGroupCustomizerService.MutateAdGroupCustomizers.
type GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// group customizers.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse: Response
// message for an ad group customizer mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult: The result for
// an ad group label mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest: Request
// message for AdGroupLabelService.MutateAdGroupLabels.
type GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest struct {
	// Operations: Required. The list of operations to perform on ad group labels.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupLabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse: Response
// message for an ad group labels mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupResult: The result for the ad
// group mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupResult struct {
	// AdGroup: The mutated ad group with only mutable fields after mutate. The
	// field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AdGroup *GoogleAdsSearchads360V23Resources__AdGroup `json:"adGroup,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupsRequest: Request message for
// AdGroupService.MutateAdGroups.
type GoogleAdsSearchads360V23Services__MutateAdGroupsRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// groups.
	Operations []*GoogleAdsSearchads360V23Services__AdGroupOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdGroupsResponse: Response message
// for an ad group mutate.
type GoogleAdsSearchads360V23Services__MutateAdGroupsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdGroupResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdGroupsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdGroupsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdParameterResult: The result for
// the ad parameter mutate.
type GoogleAdsSearchads360V23Services__MutateAdParameterResult struct {
	// AdParameter: The mutated AdParameter with only mutable fields after mutate.
	// The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AdParameter *GoogleAdsSearchads360V23Resources__AdParameter `json:"adParameter,omitempty"`
	// ResourceName: The resource name returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdParameter") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdParameter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdParameterResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdParameterResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdParametersRequest: Request message
// for AdParameterService.MutateAdParameters
type GoogleAdsSearchads360V23Services__MutateAdParametersRequest struct {
	// Operations: Required. The list of operations to perform on individual ad
	// parameters.
	Operations []*GoogleAdsSearchads360V23Services__AdParameterOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdParametersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdParametersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdParametersResponse: Response
// message for an ad parameter mutate.
type GoogleAdsSearchads360V23Services__MutateAdParametersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdParameterResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdParametersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdParametersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdResult: The result for the ad
// mutate.
type GoogleAdsSearchads360V23Services__MutateAdResult struct {
	// Ad: The mutated ad with only mutable fields after mutate. The field will
	// only be returned when response_content_type is set to "MUTABLE_RESOURCE".
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// ResourceName: The resource name returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Ad") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Ad") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdsRequest: Request message for
// AdService.MutateAds.
type GoogleAdsSearchads360V23Services__MutateAdsRequest struct {
	// Operations: Required. The list of operations to perform on individual ads.
	Operations []*GoogleAdsSearchads360V23Services__AdOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAdsResponse: Response message for an
// ad mutate.
type GoogleAdsSearchads360V23Services__MutateAdsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAdResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAdsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAdsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult: The result
// for the asset group asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest: Request
// message for AssetGroupAssetService.MutateAssetGroupAssets.
type GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// group assets.
	Operations []*GoogleAdsSearchads360V23Services__AssetGroupAssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse: Response
// message for an asset group asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult:
// The result for the asset group listing group filter mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult struct {
	// AssetGroupListingGroupFilter: The mutated AssetGroupListingGroupFilter with
	// only mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	AssetGroupListingGroupFilter *GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter `json:"assetGroupListingGroupFilter,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AssetGroupListingGroupFilter") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroupListingGroupFilter") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest:
//
//	Request message for
//
// AssetGroupListingGroupFilterService.MutateAssetGroupListingGroupFilters.
// partial_failure is not supported because the tree needs to be validated
// together.
type GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// group listing group filters.
	Operations []*GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation `json:"operations,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse
// : Response message for an asset group listing group filter mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupResult: The result for the
// asset group mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult: The result
// for the asset group signal mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult struct {
	// AssetGroupSignal: The mutated AssetGroupSignal with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	AssetGroupSignal *GoogleAdsSearchads360V23Resources__AssetGroupSignal `json:"assetGroupSignal,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetGroupSignal") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetGroupSignal") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest: Request
// message for AssetGroupSignalService.MutateAssetGroupSignals.
type GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// group signals.
	Operations []*GoogleAdsSearchads360V23Services__AssetGroupSignalOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse: Response
// message for an asset group signal mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest: Request message
// for AssetGroupService.MutateAssetGroups.
type GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// groups.
	Operations []*GoogleAdsSearchads360V23Services__AssetGroupOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse: Response
// message for an asset group mutate.
type GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetGroupResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetResult: The result for the
// asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetResult struct {
	// Asset: The mutated asset with only mutable fields after mutate. The field
	// will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	Asset *GoogleAdsSearchads360V23Resources__Asset `json:"asset,omitempty"`
	// ResourceName: The resource name returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult: The result for
// the asset set asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult struct {
	// AssetSetAsset: The mutated asset set asset with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AssetSetAsset *GoogleAdsSearchads360V23Resources__AssetSetAsset `json:"assetSetAsset,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSetAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSetAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest: Request
// message for AssetSetAssetService.MutateAssetSetAssets.
type GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// set assets.
	Operations []*GoogleAdsSearchads360V23Services__AssetSetAssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse: Response
// message for an asset set asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetResult: The result for the
// asset set mutate.
type GoogleAdsSearchads360V23Services__MutateAssetSetResult struct {
	// AssetSet: The mutated asset set with only mutable fields after mutate. The
	// field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	AssetSet *GoogleAdsSearchads360V23Resources__AssetSet `json:"assetSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetSet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetsRequest: Request message
// for AssetSetService.MutateAssetSets.
type GoogleAdsSearchads360V23Services__MutateAssetSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual asset
	// sets.
	Operations []*GoogleAdsSearchads360V23Services__AssetSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetSetsResponse: Response message
// for an asset set mutate.
type GoogleAdsSearchads360V23Services__MutateAssetSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetsRequest: Request message for
// AssetService.MutateAssets
type GoogleAdsSearchads360V23Services__MutateAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// assets.
	Operations []*GoogleAdsSearchads360V23Services__AssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAssetsResponse: Response message for
// an asset mutate.
type GoogleAdsSearchads360V23Services__MutateAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAudienceResult: The result for the
// audience mutate.
type GoogleAdsSearchads360V23Services__MutateAudienceResult struct {
	// Audience: The mutated Audience with only mutable fields after mutate. The
	// field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	Audience *GoogleAdsSearchads360V23Resources__Audience `json:"audience,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audience") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audience") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAudienceResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAudienceResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAudiencesRequest: Request message
// for AudienceService.MutateAudiences.
type GoogleAdsSearchads360V23Services__MutateAudiencesRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// audiences.
	Operations []*GoogleAdsSearchads360V23Services__AudienceOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAudiencesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAudiencesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateAudiencesResponse: Response message
// for an audience mutate.
type GoogleAdsSearchads360V23Services__MutateAudiencesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateAudienceResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateAudiencesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateAudiencesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBatchJobRequest: Request message for
// BatchJobService.MutateBatchJob.
type GoogleAdsSearchads360V23Services__MutateBatchJobRequest struct {
	// Operation: Required. The operation to perform on an individual batch job.
	Operation *GoogleAdsSearchads360V23Services__BatchJobOperation `json:"operation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBatchJobRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBatchJobRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBatchJobResponse: Response message
// for BatchJobService.MutateBatchJob.
type GoogleAdsSearchads360V23Services__MutateBatchJobResponse struct {
	// Result: The result for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateBatchJobResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBatchJobResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBatchJobResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBatchJobResult: The result for the
// batch job mutate.
type GoogleAdsSearchads360V23Services__MutateBatchJobResult struct {
	// ResourceName: The resource name of the batch job.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBatchJobResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBatchJobResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest:
// Request message for BiddingDataExclusionService.MutateBiddingDataExclusions.
type GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest struct {
	// Operations: Required. The list of operations to perform on individual data
	// exclusions.
	Operations []*GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse:
// Response message for data exclusions mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult: The
// result for the data exclusion mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult struct {
	// BiddingDataExclusion: The mutated bidding data exclusion with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	BiddingDataExclusion *GoogleAdsSearchads360V23Resources__BiddingDataExclusion `json:"biddingDataExclusion,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BiddingDataExclusion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddingDataExclusion") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest:
//
//	Request message for
//
// BiddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments.
type GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// seasonality adjustments.
	Operations []*GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse
// : Response message for seasonality adjustments mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult:
// The result for the seasonality adjustment mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult struct {
	// BiddingSeasonalityAdjustment: The mutated bidding seasonality adjustment
	// with only mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	BiddingSeasonalityAdjustment *GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment `json:"biddingSeasonalityAdjustment,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BiddingSeasonalityAdjustment") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddingSeasonalityAdjustment") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest: Request
// message for BiddingStrategyService.MutateBiddingStrategies.
type GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// bidding strategies.
	Operations []*GoogleAdsSearchads360V23Services__BiddingStrategyOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse: Response
// message for bidding strategy mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult: The result
// for the bidding strategy mutate.
type GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult struct {
	// BiddingStrategy: The mutated bidding strategy with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	BiddingStrategy *GoogleAdsSearchads360V23Resources__BiddingStrategy `json:"biddingStrategy,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BiddingStrategy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BiddingStrategy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBillingSetupRequest: Request message
// for billing setup mutate operations.
type GoogleAdsSearchads360V23Services__MutateBillingSetupRequest struct {
	// Operation: Required. The operation to perform.
	Operation *GoogleAdsSearchads360V23Services__BillingSetupOperation `json:"operation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBillingSetupRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBillingSetupRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBillingSetupResponse: Response
// message for a billing setup operation.
type GoogleAdsSearchads360V23Services__MutateBillingSetupResponse struct {
	// Result: A result that identifies the resource affected by the mutate
	// request.
	Result *GoogleAdsSearchads360V23Services__MutateBillingSetupResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBillingSetupResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBillingSetupResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateBillingSetupResult: Result for a
// single billing setup mutate.
type GoogleAdsSearchads360V23Services__MutateBillingSetupResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateBillingSetupResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateBillingSetupResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetResult: The result for
// the campaign asset mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetResult struct {
	// CampaignAsset: The mutated campaign asset with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	CampaignAsset *GoogleAdsSearchads360V23Resources__CampaignAsset `json:"campaignAsset,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult: The result
// for the campaign asset set mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult struct {
	// CampaignAssetSet: The mutated campaign asset set with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CampaignAssetSet *GoogleAdsSearchads360V23Resources__CampaignAssetSet `json:"campaignAssetSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignAssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignAssetSet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest: Request
// message for CampaignAssetSetService.MutateCampaignAssetSets.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign asset sets.
	Operations []*GoogleAdsSearchads360V23Services__CampaignAssetSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse: Response
// message for a campaign asset set mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest: Request
// message for CampaignAssetService.MutateCampaignAssets.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign assets.
	Operations []*GoogleAdsSearchads360V23Services__CampaignAssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse: Response
// message for a campaign asset mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult: The
// result for the criterion mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult struct {
	// CampaignBidModifier: The mutated campaign bid modifier with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	CampaignBidModifier *GoogleAdsSearchads360V23Resources__CampaignBidModifier `json:"campaignBidModifier,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBidModifier") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBidModifier") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest: Request
// message for CampaignBidModifierService.MutateCampaignBidModifiers.
type GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign bid modifiers.
	Operations []*GoogleAdsSearchads360V23Services__CampaignBidModifierOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse:
// Response message for campaign bid modifiers mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult: The result for
// the campaign budget mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult struct {
	// CampaignBudget: The mutated campaign budget with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	CampaignBudget *GoogleAdsSearchads360V23Resources__CampaignBudget `json:"campaignBudget,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignBudget") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignBudget") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest: Request
// message for CampaignBudgetService.MutateCampaignBudgets.
type GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign budgets.
	Operations []*GoogleAdsSearchads360V23Services__CampaignBudgetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse: Response
// message for campaign budget mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult: The
// result for the campaign conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest:
// Request message for
// CampaignConversionGoalService.MutateCampaignConversionGoals.
type GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign conversion goal.
	Operations []*GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse:
// Response message for a campaign conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest: Request
// message for CampaignCriterionService.MutateCampaignCriteria.
type GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// criteria.
	Operations []*GoogleAdsSearchads360V23Services__CampaignCriterionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse: Response
// message for campaign criterion mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult: The result
// for the criterion mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult struct {
	// CampaignCriterion: The mutated campaign criterion with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CampaignCriterion *GoogleAdsSearchads360V23Resources__CampaignCriterion `json:"campaignCriterion,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignCriterion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignCriterion") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult: The result
// for the campaign customizer mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult struct {
	// CampaignCustomizer: The mutated CampaignCustomizer with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CampaignCustomizer *GoogleAdsSearchads360V23Resources__CampaignCustomizer `json:"campaignCustomizer,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignCustomizer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignCustomizer") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest: Request
// message for CampaignCustomizerService.MutateCampaignCustomizers.
type GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign customizers.
	Operations []*GoogleAdsSearchads360V23Services__CampaignCustomizerOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse:
// Response message for a campaign customizer mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignDraftResult: The result for
// the campaign draft mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignDraftResult struct {
	// CampaignDraft: The mutated campaign draft with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	CampaignDraft *GoogleAdsSearchads360V23Resources__CampaignDraft `json:"campaignDraft,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignDraft") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignDraft") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignDraftResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignDraftResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest: Request
// message for CampaignDraftService.MutateCampaignDrafts.
type GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign drafts.
	Operations []*GoogleAdsSearchads360V23Services__CampaignDraftOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse: Response
// message for campaign draft mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignDraftResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult: The result
// for the campaign goal config mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest: Request
// message for CampaignGoalConfigService.MutateCampaignGoalConfigs.
type GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest struct {
	// Operations: Required. The list of operations to perform on the campaign goal
	// configs.
	Operations []*GoogleAdsSearchads360V23Services__CampaignGoalConfigOperation `json:"operations,omitempty"`
	// PartialFailure: Optional. If true, successful operations will be carried out
	// and invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: Optional. If true, the request is validated but not executed.
	// Only errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse:
// Response message for a campaign goal config mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGroupResult: The result for
// the campaign group mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignGroupResult struct {
	// CampaignGroup: The mutated campaign group with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	CampaignGroup *GoogleAdsSearchads360V23Resources__CampaignGroup `json:"campaignGroup,omitempty"`
	// ResourceName: Required. Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignGroup") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGroupResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGroupResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest: Request
// message for CampaignGroupService.MutateCampaignGroups.
type GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign groups.
	Operations []*GoogleAdsSearchads360V23Services__CampaignGroupOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse: Response
// message for campaign group mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignGroupResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignLabelResult: The result for
// a campaign label mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignLabelResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest: Request
// message for CampaignLabelService.MutateCampaignLabels.
type GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest struct {
	// Operations: Required. The list of operations to perform on campaign-label
	// relationships.
	Operations []*GoogleAdsSearchads360V23Services__CampaignLabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse: Response
// message for a campaign labels mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignResult: The result for the
// campaign mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignResult struct {
	// Campaign: The mutated campaign with only mutable fields after mutate. The
	// field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	Campaign *GoogleAdsSearchads360V23Resources__Campaign `json:"campaign,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult: The result
// for the campaign shared set mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult struct {
	// CampaignSharedSet: The mutated campaign shared set with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CampaignSharedSet *GoogleAdsSearchads360V23Resources__CampaignSharedSet `json:"campaignSharedSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CampaignSharedSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CampaignSharedSet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest: Request
// message for CampaignSharedSetService.MutateCampaignSharedSets.
type GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaign shared sets.
	Operations []*GoogleAdsSearchads360V23Services__CampaignSharedSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse: Response
// message for a campaign shared set mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignsRequest: Request message
// for CampaignService.MutateCampaigns.
type GoogleAdsSearchads360V23Services__MutateCampaignsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// campaigns.
	Operations []*GoogleAdsSearchads360V23Services__CampaignOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCampaignsResponse: Response message
// for campaign mutate.
type GoogleAdsSearchads360V23Services__MutateCampaignsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCampaignResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCampaignsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCampaignsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionActionResult: The result
// for the conversion action mutate.
type GoogleAdsSearchads360V23Services__MutateConversionActionResult struct {
	// ConversionAction: The mutated conversion action with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	ConversionAction *GoogleAdsSearchads360V23Resources__ConversionAction `json:"conversionAction,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionAction") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionActionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionActionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionActionsRequest: Request
// message for ConversionActionService.MutateConversionActions.
type GoogleAdsSearchads360V23Services__MutateConversionActionsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// conversion actions.
	Operations []*GoogleAdsSearchads360V23Services__ConversionActionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionActionsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionActionsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionActionsResponse: Response
// message for ConversionActionService.MutateConversionActions.
type GoogleAdsSearchads360V23Services__MutateConversionActionsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateConversionActionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionActionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionActionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult: The
// result for the conversion custom variable mutate.
type GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult struct {
	// ConversionCustomVariable: The mutated conversion custom variable with only
	// mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	ConversionCustomVariable *GoogleAdsSearchads360V23Resources__ConversionCustomVariable `json:"conversionCustomVariable,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionCustomVariable")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionCustomVariable") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest:
// Request message for
// ConversionCustomVariableService.MutateConversionCustomVariables.
type GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// conversion custom variables.
	Operations []*GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse:
// Response message for
// ConversionCustomVariableService.MutateConversionCustomVariables.
type GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult:
// The result for the conversion goal campaign config mutate.
type GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult struct {
	// ConversionGoalCampaignConfig: The mutated ConversionGoalCampaignConfig with
	// only mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	ConversionGoalCampaignConfig *GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig `json:"conversionGoalCampaignConfig,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ConversionGoalCampaignConfig") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionGoalCampaignConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest:
//
//	Request message for
//
// ConversionGoalCampaignConfigService.MutateConversionGoalCampaignConfigs.
type GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// conversion goal campaign config.
	Operations []*GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation `json:"operations,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse
// : Response message for a conversion goal campaign config mutate.
type GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult: The
// result for the conversion value rule mutate.
type GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult struct {
	// ConversionValueRule: The mutated conversion value rule with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	ConversionValueRule *GoogleAdsSearchads360V23Resources__ConversionValueRule `json:"conversionValueRule,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionValueRule") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionValueRule") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult: The
// result for the conversion value rule set mutate.
type GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult struct {
	// ConversionValueRuleSet: The mutated conversion value rule set with only
	// mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	ConversionValueRuleSet *GoogleAdsSearchads360V23Resources__ConversionValueRuleSet `json:"conversionValueRuleSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionValueRuleSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionValueRuleSet") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest:
// Request message for
// ConversionValueRuleSetService.MutateConversionValueRuleSets.
type GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// conversion value rule sets.
	Operations []*GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse:
// Response message for
// ConversionValueRuleSetService.MutateConversionValueRuleSets.
type GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest: Request
// message for ConversionValueRuleService.MutateConversionValueRules.
type GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// conversion value rules.
	Operations []*GoogleAdsSearchads360V23Services__ConversionValueRuleOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse:
// Response message for ConversionValueRuleService.MutateConversionValueRules.
type GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomAudienceResult: The result for
// the custom audience mutate.
type GoogleAdsSearchads360V23Services__MutateCustomAudienceResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomAudienceResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomAudienceResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest: Request
// message for CustomAudienceService.MutateCustomAudiences.
type GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest struct {
	// Operations: Required. The list of operations to perform on individual custom
	// audiences.
	Operations []*GoogleAdsSearchads360V23Services__CustomAudienceOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse: Response
// message for custom audience mutate.
type GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomAudienceResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult: The
// result for the custom conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult struct {
	// CustomConversionGoal: The mutated CustomConversionGoal with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	CustomConversionGoal *GoogleAdsSearchads360V23Resources__CustomConversionGoal `json:"customConversionGoal,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomConversionGoal") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomConversionGoal") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest:
// Request message for CustomConversionGoalService.MutateCustomConversionGoals.
type GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest struct {
	// Operations: Required. The list of operations to perform on individual custom
	// conversion goal.
	Operations []*GoogleAdsSearchads360V23Services__CustomConversionGoalOperation `json:"operations,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse:
// Response message for a custom conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomInterestResult: The result for
// the custom interest mutate.
type GoogleAdsSearchads360V23Services__MutateCustomInterestResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomInterestResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomInterestResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest: Request
// message for CustomInterestService.MutateCustomInterests.
type GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest struct {
	// Operations: Required. The list of operations to perform on individual custom
	// interests.
	Operations []*GoogleAdsSearchads360V23Services__CustomInterestOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse: Response
// message for custom interest mutate.
type GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomInterestResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetResult: The result for
// the customer asset mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetResult struct {
	// CustomerAsset: The mutated customer asset with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	CustomerAsset *GoogleAdsSearchads360V23Resources__CustomerAsset `json:"customerAsset,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerAsset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerAsset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult: The result
// for the customer asset set mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult struct {
	// CustomerAssetSet: The mutated customer asset set with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CustomerAssetSet *GoogleAdsSearchads360V23Resources__CustomerAssetSet `json:"customerAssetSet,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerAssetSet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerAssetSet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest: Request
// message for CustomerAssetSetService.MutateCustomerAssetSets.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customer asset sets.
	Operations []*GoogleAdsSearchads360V23Services__CustomerAssetSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse: Response
// message for a customer asset set mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (e.g. auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerAssetSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest: Request
// message for CustomerAssetService.MutateCustomerAssets.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customer assets.
	Operations []*GoogleAdsSearchads360V23Services__CustomerAssetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse: Response
// message for a customer asset mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerAssetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest: Request
// message for CustomerClientLinkService.MutateCustomerClientLink.
type GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest struct {
	// Operation: Required. The operation to perform on the individual
	// CustomerClientLink.
	Operation *GoogleAdsSearchads360V23Services__CustomerClientLinkOperation `json:"operation,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse: Response
// message for a CustomerClientLink mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse struct {
	// Result: A result that identifies the resource affected by the mutate
	// request.
	Result *GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult: The result
// for a single customer client link mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult: The
// result for the customer conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest:
// Request message for
// CustomerConversionGoalService.MutateCustomerConversionGoals.
type GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customer conversion goal.
	Operations []*GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse:
// Response message for a customer conversion goal mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse struct {
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult: The result
// for the customizer attribute mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult struct {
	// CustomerCustomizer: The mutated CustomerCustomizer with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CustomerCustomizer *GoogleAdsSearchads360V23Resources__CustomerCustomizer `json:"customerCustomizer,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerCustomizer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerCustomizer") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest: Request
// message for CustomerCustomizerService.MutateCustomerCustomizers.
type GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customer customizers.
	Operations []*GoogleAdsSearchads360V23Services__CustomerCustomizerOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse:
// Response message for a customizer attribute mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerLabelResult: The result for
// a customer label mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerLabelResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest: Request
// message for CustomerLabelService.MutateCustomerLabels.
type GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest struct {
	// Operations: Required. The list of operations to perform on customer-label
	// relationships.
	Operations []*GoogleAdsSearchads360V23Services__CustomerLabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse: Response
// message for a customer labels mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest: Request
// message for CustomerManagerLinkService.MutateCustomerManagerLink.
type GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customer manager links.
	Operations []*GoogleAdsSearchads360V23Services__CustomerManagerLinkOperation `json:"operations,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse:
// Response message for a CustomerManagerLink mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse struct {
	// Results: A result that identifies the resource affected by the mutate
	// request.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Results") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Results") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult: The
// result for the customer manager link mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest:
// Request message for
// CustomerNegativeCriterionService.MutateCustomerNegativeCriteria.
type GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// criteria.
	Operations []*GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse:
// Response message for customer negative criterion mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult: The
// result for the criterion mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult struct {
	// CustomerNegativeCriterion: The mutated criterion with only mutable fields
	// after mutate. The field will only be returned when response_content_type is
	// set to "MUTABLE_RESOURCE".
	CustomerNegativeCriterion *GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion `json:"customerNegativeCriterion,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerNegativeCriterion")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerNegativeCriterion") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerRequest: Request message for
// CustomerService.MutateCustomer.
type GoogleAdsSearchads360V23Services__MutateCustomerRequest struct {
	// Operation: Required. The operation to perform on the customer
	Operation *GoogleAdsSearchads360V23Services__CustomerOperation `json:"operation,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerResponse: Response message
// for customer mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerResponse struct {
	// Result: Result for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateCustomerResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerResult: The result for the
// customer mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerResult struct {
	// Customer: The mutated customer with only mutable fields after mutate. The
	// fields will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	Customer *GoogleAdsSearchads360V23Resources__Customer `json:"customer,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Customer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Customer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSch
// emaRequest: Request message for
// CustomerSkAdNetworkConversionValueSchemaService.MutateCustomerSkAdNetworkConv
// ersionValueSchema.
type GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest struct {
	// EnableWarnings: Optional. If true, enables returning warnings. Warnings
	// return error messages and error codes without blocking the execution of the
	// mutate operation.
	EnableWarnings bool `json:"enableWarnings,omitempty"`
	// Operation: The operation to perform.
	Operation *GoogleAdsSearchads360V23Services__CustomerSkAdNetworkConversionValueSchemaOperation `json:"operation,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableWarnings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableWarnings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSch
// emaResponse: Response message for
// MutateCustomerSkAdNetworkConversionValueSchema.
type GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse struct {
	// Result: All results for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult `json:"result,omitempty"`
	// Warning: Non blocking errors that provides schema validation failure
	// details. Returned only when enable_warnings = true.
	Warning *GoogleRpc__Status `json:"warning,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSch
// emaResult: The result for the CustomerSkAdNetworkConversionValueSchema
// mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult struct {
	// AppId: App ID of the SkanConversionValue modified.
	AppId string `json:"appId,omitempty"`
	// ResourceName: Resource name of the customer that was modified.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest:
// Request message for
// CustomerUserAccessInvitationService.MutateCustomerUserAccessInvitation
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest struct {
	// Operation: Required. The operation to perform on the access invitation
	Operation *GoogleAdsSearchads360V23Services__CustomerUserAccessInvitationOperation `json:"operation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse:
//
//	Response message for access invitation mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse struct {
	// Result: Result for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult:
// The result for the access invitation mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest: Mutate
// Request for CustomerUserAccessService.MutateCustomerUserAccess.
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest struct {
	// Operation: Required. The operation to perform on the customer
	Operation *GoogleAdsSearchads360V23Services__CustomerUserAccessOperation `json:"operation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse: Response
// message for customer user access mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse struct {
	// Result: Result for the mutate.
	Result *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult `json:"result,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Result") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Result") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult: The result
// for the customer user access mutate.
type GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult: The
// result for the customizer attribute mutate.
type GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult struct {
	// CustomizerAttribute: The mutated CustomizerAttribute with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	CustomizerAttribute *GoogleAdsSearchads360V23Resources__CustomizerAttribute `json:"customizerAttribute,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomizerAttribute") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomizerAttribute") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest: Request
// message for CustomizerAttributeService.MutateCustomizerAttributes.
type GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// customizer attributes.
	Operations []*GoogleAdsSearchads360V23Services__CustomizerAttributeOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse:
// Response message for a customizer attribute mutate.
type GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentArmResult: The result for
// the experiment arm mutate.
type GoogleAdsSearchads360V23Services__MutateExperimentArmResult struct {
	// ExperimentArm: The mutated experiment arm with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	ExperimentArm *GoogleAdsSearchads360V23Resources__ExperimentArm `json:"experimentArm,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExperimentArm") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExperimentArm") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentArmResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentArmResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest: Request
// message for ExperimentArmService.MutateExperimentArms.
type GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// experiment arm.
	Operations []*GoogleAdsSearchads360V23Services__ExperimentArmOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse: Response
// message for experiment arm mutate.
type GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateExperimentArmResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentResult: The result for the
// campaign experiment mutate.
type GoogleAdsSearchads360V23Services__MutateExperimentResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentsRequest: Request message
// for ExperimentService.MutateExperiments.
type GoogleAdsSearchads360V23Services__MutateExperimentsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// experiments.
	Operations []*GoogleAdsSearchads360V23Services__ExperimentOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateExperimentsResponse: Response
// message for experiment mutate.
type GoogleAdsSearchads360V23Services__MutateExperimentsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateExperimentResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateExperimentsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateExperimentsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateGoalResult: The result for the goal
// mutate.
type GoogleAdsSearchads360V23Services__MutateGoalResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateGoalResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateGoalResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateGoalsRequest: Request message for
// GoalService.MutateGoals.
type GoogleAdsSearchads360V23Services__MutateGoalsRequest struct {
	// Operations: Required. The list of operations to perform on the goals.
	Operations []*GoogleAdsSearchads360V23Services__GoalOperation `json:"operations,omitempty"`
	// PartialFailure: Optional. If true, successful operations will be carried out
	// and invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: Optional. If true, the request is validated but not executed.
	// Only errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateGoalsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateGoalsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateGoalsResponse: Response message for
// a goal mutate.
type GoogleAdsSearchads360V23Services__MutateGoalsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateGoalResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateGoalsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateGoalsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult: The
// result for the Keyword Plan ad group keyword mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest:
// Request message for
// KeywordPlanAdGroupKeywordService.MutateKeywordPlanAdGroupKeywords.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// Keyword Plan ad group keywords.
	Operations []*GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse:
// Response message for a Keyword Plan ad group keyword mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult: The result
// for the Keyword Plan ad group mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest: Request
// message for KeywordPlanAdGroupService.MutateKeywordPlanAdGroups.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// Keyword Plan ad groups.
	Operations []*GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse:
// Response message for a Keyword Plan ad group mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate. The order of the results is determined
	// by the order of the keywords in the original request.
	Results []*GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult:
// The result for the Keyword Plan campaign keyword mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest:
// Request message for
// KeywordPlanCampaignKeywordService.MutateKeywordPlanCampaignKeywords.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// Keyword Plan campaign keywords.
	Operations []*GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse:
// Response message for a Keyword Plan campaign keyword mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult: The
// result for the Keyword Plan campaign mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest: Request
// message for KeywordPlanCampaignService.MutateKeywordPlanCampaigns.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// Keyword Plan campaigns.
	Operations []*GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse:
// Response message for a Keyword Plan campaign mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest: Request message
// for KeywordPlanService.MutateKeywordPlans.
type GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// keyword plans.
	Operations []*GoogleAdsSearchads360V23Services__KeywordPlanOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse: Response
// message for a keyword plan mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateKeywordPlansResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateKeywordPlansResult: The result for
// the keyword plan mutate.
type GoogleAdsSearchads360V23Services__MutateKeywordPlansResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateKeywordPlansResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateKeywordPlansResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateLabelResult: The result for a label
// mutate.
type GoogleAdsSearchads360V23Services__MutateLabelResult struct {
	// Label: The mutated label with only mutable fields after mutate. The field
	// will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	Label *GoogleAdsSearchads360V23Resources__Label `json:"label,omitempty"`
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Label") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Label") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateLabelResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateLabelResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateLabelsRequest: Request message for
// LabelService.MutateLabels.
type GoogleAdsSearchads360V23Services__MutateLabelsRequest struct {
	// Operations: Required. The list of operations to perform on labels.
	Operations []*GoogleAdsSearchads360V23Services__LabelOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateLabelsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateLabelsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateLabelsResponse: Response message for
// a labels mutate.
type GoogleAdsSearchads360V23Services__MutateLabelsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateLabelResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateLabelsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateLabelsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateOperation: A single operation
// (create, update, remove) on a resource.
type GoogleAdsSearchads360V23Services__MutateOperation struct {
	// AdGroupAdLabelOperation: An ad group ad label mutate operation.
	AdGroupAdLabelOperation *GoogleAdsSearchads360V23Services__AdGroupAdLabelOperation `json:"adGroupAdLabelOperation,omitempty"`
	// AdGroupAdOperation: An ad group ad mutate operation.
	AdGroupAdOperation *GoogleAdsSearchads360V23Services__AdGroupAdOperation `json:"adGroupAdOperation,omitempty"`
	// AdGroupAssetOperation: An ad group asset mutate operation.
	AdGroupAssetOperation *GoogleAdsSearchads360V23Services__AdGroupAssetOperation `json:"adGroupAssetOperation,omitempty"`
	// AdGroupBidModifierOperation: An ad group bid modifier mutate operation.
	AdGroupBidModifierOperation *GoogleAdsSearchads360V23Services__AdGroupBidModifierOperation `json:"adGroupBidModifierOperation,omitempty"`
	// AdGroupCriterionCustomizerOperation: An ad group criterion customizer mutate
	// operation.
	AdGroupCriterionCustomizerOperation *GoogleAdsSearchads360V23Services__AdGroupCriterionCustomizerOperation `json:"adGroupCriterionCustomizerOperation,omitempty"`
	// AdGroupCriterionLabelOperation: An ad group criterion label mutate
	// operation.
	AdGroupCriterionLabelOperation *GoogleAdsSearchads360V23Services__AdGroupCriterionLabelOperation `json:"adGroupCriterionLabelOperation,omitempty"`
	// AdGroupCriterionOperation: An ad group criterion mutate operation.
	AdGroupCriterionOperation *GoogleAdsSearchads360V23Services__AdGroupCriterionOperation `json:"adGroupCriterionOperation,omitempty"`
	// AdGroupCustomizerOperation: An ad group customizer mutate operation.
	AdGroupCustomizerOperation *GoogleAdsSearchads360V23Services__AdGroupCustomizerOperation `json:"adGroupCustomizerOperation,omitempty"`
	// AdGroupLabelOperation: An ad group label mutate operation.
	AdGroupLabelOperation *GoogleAdsSearchads360V23Services__AdGroupLabelOperation `json:"adGroupLabelOperation,omitempty"`
	// AdGroupOperation: An ad group mutate operation.
	AdGroupOperation *GoogleAdsSearchads360V23Services__AdGroupOperation `json:"adGroupOperation,omitempty"`
	// AdOperation: An ad mutate operation.
	AdOperation *GoogleAdsSearchads360V23Services__AdOperation `json:"adOperation,omitempty"`
	// AdParameterOperation: An ad parameter mutate operation.
	AdParameterOperation *GoogleAdsSearchads360V23Services__AdParameterOperation `json:"adParameterOperation,omitempty"`
	// AssetGroupAssetOperation: An asset group asset mutate operation.
	AssetGroupAssetOperation *GoogleAdsSearchads360V23Services__AssetGroupAssetOperation `json:"assetGroupAssetOperation,omitempty"`
	// AssetGroupListingGroupFilterOperation: An asset group listing group filter
	// mutate operation.
	AssetGroupListingGroupFilterOperation *GoogleAdsSearchads360V23Services__AssetGroupListingGroupFilterOperation `json:"assetGroupListingGroupFilterOperation,omitempty"`
	// AssetGroupOperation: An asset group mutate operation.
	AssetGroupOperation *GoogleAdsSearchads360V23Services__AssetGroupOperation `json:"assetGroupOperation,omitempty"`
	// AssetGroupSignalOperation: An asset group signal mutate operation.
	AssetGroupSignalOperation *GoogleAdsSearchads360V23Services__AssetGroupSignalOperation `json:"assetGroupSignalOperation,omitempty"`
	// AssetOperation: An asset mutate operation.
	AssetOperation *GoogleAdsSearchads360V23Services__AssetOperation `json:"assetOperation,omitempty"`
	// AssetSetAssetOperation: An asset set asset mutate operation.
	AssetSetAssetOperation *GoogleAdsSearchads360V23Services__AssetSetAssetOperation `json:"assetSetAssetOperation,omitempty"`
	// AssetSetOperation: An asset set mutate operation.
	AssetSetOperation *GoogleAdsSearchads360V23Services__AssetSetOperation `json:"assetSetOperation,omitempty"`
	// AudienceOperation: An audience mutate operation.
	AudienceOperation *GoogleAdsSearchads360V23Services__AudienceOperation `json:"audienceOperation,omitempty"`
	// BiddingDataExclusionOperation: A bidding data exclusion mutate operation.
	BiddingDataExclusionOperation *GoogleAdsSearchads360V23Services__BiddingDataExclusionOperation `json:"biddingDataExclusionOperation,omitempty"`
	// BiddingSeasonalityAdjustmentOperation: A bidding seasonality adjustment
	// mutate operation.
	BiddingSeasonalityAdjustmentOperation *GoogleAdsSearchads360V23Services__BiddingSeasonalityAdjustmentOperation `json:"biddingSeasonalityAdjustmentOperation,omitempty"`
	// BiddingStrategyOperation: A bidding strategy mutate operation.
	BiddingStrategyOperation *GoogleAdsSearchads360V23Services__BiddingStrategyOperation `json:"biddingStrategyOperation,omitempty"`
	// CampaignAssetOperation: A campaign asset mutate operation.
	CampaignAssetOperation *GoogleAdsSearchads360V23Services__CampaignAssetOperation `json:"campaignAssetOperation,omitempty"`
	// CampaignAssetSetOperation: A campaign asset mutate operation.
	CampaignAssetSetOperation *GoogleAdsSearchads360V23Services__CampaignAssetSetOperation `json:"campaignAssetSetOperation,omitempty"`
	// CampaignBidModifierOperation: A campaign bid modifier mutate operation.
	CampaignBidModifierOperation *GoogleAdsSearchads360V23Services__CampaignBidModifierOperation `json:"campaignBidModifierOperation,omitempty"`
	// CampaignBudgetOperation: A campaign budget mutate operation.
	CampaignBudgetOperation *GoogleAdsSearchads360V23Services__CampaignBudgetOperation `json:"campaignBudgetOperation,omitempty"`
	// CampaignConversionGoalOperation: A campaign conversion goal mutate
	// operation.
	CampaignConversionGoalOperation *GoogleAdsSearchads360V23Services__CampaignConversionGoalOperation `json:"campaignConversionGoalOperation,omitempty"`
	// CampaignCriterionOperation: A campaign criterion mutate operation.
	CampaignCriterionOperation *GoogleAdsSearchads360V23Services__CampaignCriterionOperation `json:"campaignCriterionOperation,omitempty"`
	// CampaignCustomizerOperation: A campaign customizer mutate operation.
	CampaignCustomizerOperation *GoogleAdsSearchads360V23Services__CampaignCustomizerOperation `json:"campaignCustomizerOperation,omitempty"`
	// CampaignDraftOperation: A campaign draft mutate operation.
	CampaignDraftOperation *GoogleAdsSearchads360V23Services__CampaignDraftOperation `json:"campaignDraftOperation,omitempty"`
	// CampaignGroupOperation: A campaign group mutate operation.
	CampaignGroupOperation *GoogleAdsSearchads360V23Services__CampaignGroupOperation `json:"campaignGroupOperation,omitempty"`
	// CampaignLabelOperation: A campaign label mutate operation.
	CampaignLabelOperation *GoogleAdsSearchads360V23Services__CampaignLabelOperation `json:"campaignLabelOperation,omitempty"`
	// CampaignOperation: A campaign mutate operation.
	CampaignOperation *GoogleAdsSearchads360V23Services__CampaignOperation `json:"campaignOperation,omitempty"`
	// CampaignSharedSetOperation: A campaign shared set mutate operation.
	CampaignSharedSetOperation *GoogleAdsSearchads360V23Services__CampaignSharedSetOperation `json:"campaignSharedSetOperation,omitempty"`
	// ConversionActionOperation: A conversion action mutate operation.
	ConversionActionOperation *GoogleAdsSearchads360V23Services__ConversionActionOperation `json:"conversionActionOperation,omitempty"`
	// ConversionCustomVariableOperation: A conversion custom variable mutate
	// operation.
	ConversionCustomVariableOperation *GoogleAdsSearchads360V23Services__ConversionCustomVariableOperation `json:"conversionCustomVariableOperation,omitempty"`
	// ConversionGoalCampaignConfigOperation: A conversion goal campaign config
	// mutate operation.
	ConversionGoalCampaignConfigOperation *GoogleAdsSearchads360V23Services__ConversionGoalCampaignConfigOperation `json:"conversionGoalCampaignConfigOperation,omitempty"`
	// ConversionValueRuleOperation: A conversion value rule mutate operation.
	ConversionValueRuleOperation *GoogleAdsSearchads360V23Services__ConversionValueRuleOperation `json:"conversionValueRuleOperation,omitempty"`
	// ConversionValueRuleSetOperation: A conversion value rule set mutate
	// operation.
	ConversionValueRuleSetOperation *GoogleAdsSearchads360V23Services__ConversionValueRuleSetOperation `json:"conversionValueRuleSetOperation,omitempty"`
	// CustomConversionGoalOperation: A custom conversion goal mutate operation.
	CustomConversionGoalOperation *GoogleAdsSearchads360V23Services__CustomConversionGoalOperation `json:"customConversionGoalOperation,omitempty"`
	// CustomerAssetOperation: A customer asset mutate operation.
	CustomerAssetOperation *GoogleAdsSearchads360V23Services__CustomerAssetOperation `json:"customerAssetOperation,omitempty"`
	// CustomerConversionGoalOperation: A customer conversion goal mutate
	// operation.
	CustomerConversionGoalOperation *GoogleAdsSearchads360V23Services__CustomerConversionGoalOperation `json:"customerConversionGoalOperation,omitempty"`
	// CustomerCustomizerOperation: A customer customizer mutate operation.
	CustomerCustomizerOperation *GoogleAdsSearchads360V23Services__CustomerCustomizerOperation `json:"customerCustomizerOperation,omitempty"`
	// CustomerLabelOperation: A customer label mutate operation.
	CustomerLabelOperation *GoogleAdsSearchads360V23Services__CustomerLabelOperation `json:"customerLabelOperation,omitempty"`
	// CustomerNegativeCriterionOperation: A customer negative criterion mutate
	// operation.
	CustomerNegativeCriterionOperation *GoogleAdsSearchads360V23Services__CustomerNegativeCriterionOperation `json:"customerNegativeCriterionOperation,omitempty"`
	// CustomerOperation: A customer mutate operation.
	CustomerOperation *GoogleAdsSearchads360V23Services__CustomerOperation `json:"customerOperation,omitempty"`
	// CustomizerAttributeOperation: A customizer attribute mutate operation.
	CustomizerAttributeOperation *GoogleAdsSearchads360V23Services__CustomizerAttributeOperation `json:"customizerAttributeOperation,omitempty"`
	// ExperimentArmOperation: An experiment arm mutate operation.
	ExperimentArmOperation *GoogleAdsSearchads360V23Services__ExperimentArmOperation `json:"experimentArmOperation,omitempty"`
	// ExperimentOperation: An experiment mutate operation.
	ExperimentOperation *GoogleAdsSearchads360V23Services__ExperimentOperation `json:"experimentOperation,omitempty"`
	// KeywordPlanAdGroupKeywordOperation: A keyword plan ad group keyword
	// operation.
	KeywordPlanAdGroupKeywordOperation *GoogleAdsSearchads360V23Services__KeywordPlanAdGroupKeywordOperation `json:"keywordPlanAdGroupKeywordOperation,omitempty"`
	// KeywordPlanAdGroupOperation: A keyword plan ad group operation.
	KeywordPlanAdGroupOperation *GoogleAdsSearchads360V23Services__KeywordPlanAdGroupOperation `json:"keywordPlanAdGroupOperation,omitempty"`
	// KeywordPlanCampaignKeywordOperation: A keyword plan campaign keyword
	// operation.
	KeywordPlanCampaignKeywordOperation *GoogleAdsSearchads360V23Services__KeywordPlanCampaignKeywordOperation `json:"keywordPlanCampaignKeywordOperation,omitempty"`
	// KeywordPlanCampaignOperation: A keyword plan campaign operation.
	KeywordPlanCampaignOperation *GoogleAdsSearchads360V23Services__KeywordPlanCampaignOperation `json:"keywordPlanCampaignOperation,omitempty"`
	// KeywordPlanOperation: A keyword plan operation.
	KeywordPlanOperation *GoogleAdsSearchads360V23Services__KeywordPlanOperation `json:"keywordPlanOperation,omitempty"`
	// LabelOperation: A label mutate operation.
	LabelOperation *GoogleAdsSearchads360V23Services__LabelOperation `json:"labelOperation,omitempty"`
	// RecommendationSubscriptionOperation: A recommendation subscription mutate
	// operation.
	RecommendationSubscriptionOperation *GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation `json:"recommendationSubscriptionOperation,omitempty"`
	// RemarketingActionOperation: A remarketing action mutate operation.
	RemarketingActionOperation *GoogleAdsSearchads360V23Services__RemarketingActionOperation `json:"remarketingActionOperation,omitempty"`
	// SearchAds360CampaignOperation: A Search Ads 360 campaign mutate operation.
	SearchAds360CampaignOperation *GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation `json:"searchAds360CampaignOperation,omitempty"`
	// SharedCriterionOperation: A shared criterion mutate operation.
	SharedCriterionOperation *GoogleAdsSearchads360V23Services__SharedCriterionOperation `json:"sharedCriterionOperation,omitempty"`
	// SharedSetOperation: A shared set mutate operation.
	SharedSetOperation *GoogleAdsSearchads360V23Services__SharedSetOperation `json:"sharedSetOperation,omitempty"`
	// SmartCampaignSettingOperation: A Smart campaign setting mutate operation.
	SmartCampaignSettingOperation *GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation `json:"smartCampaignSettingOperation,omitempty"`
	// UserListOperation: A user list mutate operation.
	UserListOperation *GoogleAdsSearchads360V23Services__UserListOperation `json:"userListOperation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAdLabelOperation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAdLabelOperation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateOperationResponse: Response message
// for the resource mutate.
type GoogleAdsSearchads360V23Services__MutateOperationResponse struct {
	// AdGroupAdLabelResult: The result for the ad group ad label mutate.
	AdGroupAdLabelResult *GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelResult `json:"adGroupAdLabelResult,omitempty"`
	// AdGroupAdResult: The result for the ad group ad mutate.
	AdGroupAdResult *GoogleAdsSearchads360V23Services__MutateAdGroupAdResult `json:"adGroupAdResult,omitempty"`
	// AdGroupAssetResult: The result for the ad group asset mutate.
	AdGroupAssetResult *GoogleAdsSearchads360V23Services__MutateAdGroupAssetResult `json:"adGroupAssetResult,omitempty"`
	// AdGroupBidModifierResult: The result for the ad group bid modifier mutate.
	AdGroupBidModifierResult *GoogleAdsSearchads360V23Services__MutateAdGroupBidModifierResult `json:"adGroupBidModifierResult,omitempty"`
	// AdGroupCriterionCustomizerResult: The result for the ad group criterion
	// customizer mutate.
	AdGroupCriterionCustomizerResult *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizerResult `json:"adGroupCriterionCustomizerResult,omitempty"`
	// AdGroupCriterionLabelResult: The result for the ad group criterion label
	// mutate.
	AdGroupCriterionLabelResult *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelResult `json:"adGroupCriterionLabelResult,omitempty"`
	// AdGroupCriterionResult: The result for the ad group criterion mutate.
	AdGroupCriterionResult *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionResult `json:"adGroupCriterionResult,omitempty"`
	// AdGroupCustomizerResult: The result for the ad group customizer mutate.
	AdGroupCustomizerResult *GoogleAdsSearchads360V23Services__MutateAdGroupCustomizerResult `json:"adGroupCustomizerResult,omitempty"`
	// AdGroupLabelResult: The result for the ad group label mutate.
	AdGroupLabelResult *GoogleAdsSearchads360V23Services__MutateAdGroupLabelResult `json:"adGroupLabelResult,omitempty"`
	// AdGroupResult: The result for the ad group mutate.
	AdGroupResult *GoogleAdsSearchads360V23Services__MutateAdGroupResult `json:"adGroupResult,omitempty"`
	// AdParameterResult: The result for the ad parameter mutate.
	AdParameterResult *GoogleAdsSearchads360V23Services__MutateAdParameterResult `json:"adParameterResult,omitempty"`
	// AdResult: The result for the ad mutate.
	AdResult *GoogleAdsSearchads360V23Services__MutateAdResult `json:"adResult,omitempty"`
	// AssetGroupAssetResult: The result for the asset group asset mutate.
	AssetGroupAssetResult *GoogleAdsSearchads360V23Services__MutateAssetGroupAssetResult `json:"assetGroupAssetResult,omitempty"`
	// AssetGroupListingGroupFilterResult: The result for the asset group listing
	// group filter mutate.
	AssetGroupListingGroupFilterResult *GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFilterResult `json:"assetGroupListingGroupFilterResult,omitempty"`
	// AssetGroupResult: The result for the asset group mutate.
	AssetGroupResult *GoogleAdsSearchads360V23Services__MutateAssetGroupResult `json:"assetGroupResult,omitempty"`
	// AssetGroupSignalResult: The result for the asset group signal mutate.
	AssetGroupSignalResult *GoogleAdsSearchads360V23Services__MutateAssetGroupSignalResult `json:"assetGroupSignalResult,omitempty"`
	// AssetResult: The result for the asset mutate.
	AssetResult *GoogleAdsSearchads360V23Services__MutateAssetResult `json:"assetResult,omitempty"`
	// AssetSetAssetResult: The result for the asset set asset mutate.
	AssetSetAssetResult *GoogleAdsSearchads360V23Services__MutateAssetSetAssetResult `json:"assetSetAssetResult,omitempty"`
	// AssetSetResult: The result for the asset set mutate.
	AssetSetResult *GoogleAdsSearchads360V23Services__MutateAssetSetResult `json:"assetSetResult,omitempty"`
	// AudienceResult: The result for the audience mutate.
	AudienceResult *GoogleAdsSearchads360V23Services__MutateAudienceResult `json:"audienceResult,omitempty"`
	// BiddingDataExclusionResult: The result for the bidding data exclusion
	// mutate.
	BiddingDataExclusionResult *GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResult `json:"biddingDataExclusionResult,omitempty"`
	// BiddingSeasonalityAdjustmentResult: The result for the bidding seasonality
	// adjustment mutate.
	BiddingSeasonalityAdjustmentResult *GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResult `json:"biddingSeasonalityAdjustmentResult,omitempty"`
	// BiddingStrategyResult: The result for the bidding strategy mutate.
	BiddingStrategyResult *GoogleAdsSearchads360V23Services__MutateBiddingStrategyResult `json:"biddingStrategyResult,omitempty"`
	// CampaignAssetResult: The result for the campaign asset mutate.
	CampaignAssetResult *GoogleAdsSearchads360V23Services__MutateCampaignAssetResult `json:"campaignAssetResult,omitempty"`
	// CampaignAssetSetResult: The result for the campaign asset set mutate.
	CampaignAssetSetResult *GoogleAdsSearchads360V23Services__MutateCampaignAssetSetResult `json:"campaignAssetSetResult,omitempty"`
	// CampaignBidModifierResult: The result for the campaign bid modifier mutate.
	CampaignBidModifierResult *GoogleAdsSearchads360V23Services__MutateCampaignBidModifierResult `json:"campaignBidModifierResult,omitempty"`
	// CampaignBudgetResult: The result for the campaign budget mutate.
	CampaignBudgetResult *GoogleAdsSearchads360V23Services__MutateCampaignBudgetResult `json:"campaignBudgetResult,omitempty"`
	// CampaignConversionGoalResult: The result for the campaign conversion goal
	// mutate.
	CampaignConversionGoalResult *GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalResult `json:"campaignConversionGoalResult,omitempty"`
	// CampaignCriterionResult: The result for the campaign criterion mutate.
	CampaignCriterionResult *GoogleAdsSearchads360V23Services__MutateCampaignCriterionResult `json:"campaignCriterionResult,omitempty"`
	// CampaignCustomizerResult: The result for the campaign customizer mutate.
	CampaignCustomizerResult *GoogleAdsSearchads360V23Services__MutateCampaignCustomizerResult `json:"campaignCustomizerResult,omitempty"`
	// CampaignDraftResult: The result for the campaign draft mutate.
	CampaignDraftResult *GoogleAdsSearchads360V23Services__MutateCampaignDraftResult `json:"campaignDraftResult,omitempty"`
	// CampaignGroupResult: The result for the campaign group mutate.
	CampaignGroupResult *GoogleAdsSearchads360V23Services__MutateCampaignGroupResult `json:"campaignGroupResult,omitempty"`
	// CampaignLabelResult: The result for the campaign label mutate.
	CampaignLabelResult *GoogleAdsSearchads360V23Services__MutateCampaignLabelResult `json:"campaignLabelResult,omitempty"`
	// CampaignResult: The result for the campaign mutate.
	CampaignResult *GoogleAdsSearchads360V23Services__MutateCampaignResult `json:"campaignResult,omitempty"`
	// CampaignSharedSetResult: The result for the campaign shared set mutate.
	CampaignSharedSetResult *GoogleAdsSearchads360V23Services__MutateCampaignSharedSetResult `json:"campaignSharedSetResult,omitempty"`
	// ConversionActionResult: The result for the conversion action mutate.
	ConversionActionResult *GoogleAdsSearchads360V23Services__MutateConversionActionResult `json:"conversionActionResult,omitempty"`
	// ConversionCustomVariableResult: The result for the conversion custom
	// variable mutate.
	ConversionCustomVariableResult *GoogleAdsSearchads360V23Services__MutateConversionCustomVariableResult `json:"conversionCustomVariableResult,omitempty"`
	// ConversionGoalCampaignConfigResult: The result for the conversion goal
	// campaign config mutate.
	ConversionGoalCampaignConfigResult *GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigResult `json:"conversionGoalCampaignConfigResult,omitempty"`
	// ConversionValueRuleResult: The result for the conversion value rule mutate.
	ConversionValueRuleResult *GoogleAdsSearchads360V23Services__MutateConversionValueRuleResult `json:"conversionValueRuleResult,omitempty"`
	// ConversionValueRuleSetResult: The result for the conversion value rule set
	// mutate.
	ConversionValueRuleSetResult *GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetResult `json:"conversionValueRuleSetResult,omitempty"`
	// CustomConversionGoalResult: The result for the custom conversion goal
	// mutate.
	CustomConversionGoalResult *GoogleAdsSearchads360V23Services__MutateCustomConversionGoalResult `json:"customConversionGoalResult,omitempty"`
	// CustomerAssetResult: The result for the customer asset mutate.
	CustomerAssetResult *GoogleAdsSearchads360V23Services__MutateCustomerAssetResult `json:"customerAssetResult,omitempty"`
	// CustomerConversionGoalResult: The result for the customer conversion goal
	// mutate.
	CustomerConversionGoalResult *GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalResult `json:"customerConversionGoalResult,omitempty"`
	// CustomerCustomizerResult: The result for the customer customizer mutate.
	CustomerCustomizerResult *GoogleAdsSearchads360V23Services__MutateCustomerCustomizerResult `json:"customerCustomizerResult,omitempty"`
	// CustomerLabelResult: The result for the customer label mutate.
	CustomerLabelResult *GoogleAdsSearchads360V23Services__MutateCustomerLabelResult `json:"customerLabelResult,omitempty"`
	// CustomerNegativeCriterionResult: The result for the customer negative
	// criterion mutate.
	CustomerNegativeCriterionResult *GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResult `json:"customerNegativeCriterionResult,omitempty"`
	// CustomerResult: The result for the customer mutate.
	CustomerResult *GoogleAdsSearchads360V23Services__MutateCustomerResult `json:"customerResult,omitempty"`
	// CustomizerAttributeResult: The result for the customizer attribute mutate.
	CustomizerAttributeResult *GoogleAdsSearchads360V23Services__MutateCustomizerAttributeResult `json:"customizerAttributeResult,omitempty"`
	// ExperimentArmResult: The result for the experiment arm mutate.
	ExperimentArmResult *GoogleAdsSearchads360V23Services__MutateExperimentArmResult `json:"experimentArmResult,omitempty"`
	// ExperimentResult: The result for the experiment mutate.
	ExperimentResult *GoogleAdsSearchads360V23Services__MutateExperimentResult `json:"experimentResult,omitempty"`
	// KeywordPlanAdGroupKeywordResult: The result for the keyword plan ad group
	// keyword mutate.
	KeywordPlanAdGroupKeywordResult *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordResult `json:"keywordPlanAdGroupKeywordResult,omitempty"`
	// KeywordPlanAdGroupResult: The result for the keyword plan ad group mutate.
	KeywordPlanAdGroupResult *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupResult `json:"keywordPlanAdGroupResult,omitempty"`
	// KeywordPlanCampaignKeywordResult: The result for the keyword plan campaign
	// keyword mutate.
	KeywordPlanCampaignKeywordResult *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordResult `json:"keywordPlanCampaignKeywordResult,omitempty"`
	// KeywordPlanCampaignResult: The result for the keyword plan campaign mutate.
	KeywordPlanCampaignResult *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignResult `json:"keywordPlanCampaignResult,omitempty"`
	// KeywordPlanResult: The result for the keyword plan mutate.
	KeywordPlanResult *GoogleAdsSearchads360V23Services__MutateKeywordPlansResult `json:"keywordPlanResult,omitempty"`
	// LabelResult: The result for the label mutate.
	LabelResult *GoogleAdsSearchads360V23Services__MutateLabelResult `json:"labelResult,omitempty"`
	// RecommendationSubscriptionResult: The result for the recommendation
	// subscription mutate.
	RecommendationSubscriptionResult *GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult `json:"recommendationSubscriptionResult,omitempty"`
	// RemarketingActionResult: The result for the remarketing action mutate.
	RemarketingActionResult *GoogleAdsSearchads360V23Services__MutateRemarketingActionResult `json:"remarketingActionResult,omitempty"`
	// SearchAds360CampaignResult: The result for the Search Ads 360 campaign
	// mutate.
	SearchAds360CampaignResult *GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult `json:"searchAds360CampaignResult,omitempty"`
	// SharedCriterionResult: The result for the shared criterion mutate.
	SharedCriterionResult *GoogleAdsSearchads360V23Services__MutateSharedCriterionResult `json:"sharedCriterionResult,omitempty"`
	// SharedSetResult: The result for the shared set mutate.
	SharedSetResult *GoogleAdsSearchads360V23Services__MutateSharedSetResult `json:"sharedSetResult,omitempty"`
	// SmartCampaignSettingResult: The result for the Smart campaign setting
	// mutate.
	SmartCampaignSettingResult *GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult `json:"smartCampaignSettingResult,omitempty"`
	// UserListResult: The result for the user list mutate.
	UserListResult *GoogleAdsSearchads360V23Services__MutateUserListResult `json:"userListResult,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroupAdLabelResult") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroupAdLabelResult") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateOperationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateOperationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest:
// Request message for
// RecommendationSubscriptionService.MutateRecommendationSubscription
type GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest struct {
	// Operations: Required. The list of create or update operations.
	Operations []*GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation. The mutable resource will only be returned if the resource has the
	// appropriate response field. For example, MutateCampaignResult.campaign.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse:
// Response message for
// RecommendationSubscriptionService.MutateRecommendationSubscription
type GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors) we return the RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: Results, one per operation.
	Results []*GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult:
// Result message for
// RecommendationSubscriptionService.MutateRecommendationSubscription
type GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult struct {
	// RecommendationSubscription: The mutated recommendation subscription with
	// only mutable fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	RecommendationSubscription *GoogleAdsSearchads360V23Resources__RecommendationSubscription `json:"recommendationSubscription,omitempty"`
	// ResourceName: Resource name of the subscription that was modified.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RecommendationSubscription")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecommendationSubscription") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRemarketingActionResult: The result
// for the remarketing action mutate.
type GoogleAdsSearchads360V23Services__MutateRemarketingActionResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRemarketingActionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRemarketingActionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest: Request
// message for RemarketingActionService.MutateRemarketingActions.
type GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest struct {
	// Operations: Required. The list of operations to perform on individual
	// remarketing actions.
	Operations []*GoogleAdsSearchads360V23Services__RemarketingActionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse: Response
// message for remarketing action mutate.
type GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateRemarketingActionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult: The
// result for the Search Ads 360 campaign mutate.
type GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// SearchAds360Campaign: The mutated Search Ads 360 campaign with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	SearchAds360Campaign *GoogleAdsSearchads360V23Resources__SearchAds360Campaign `json:"searchAds360Campaign,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSearchAds360CampaignResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSearchAds360Request: Request message
// for Service.Mutate.
type GoogleAdsSearchads360V23Services__MutateSearchAds360Request struct {
	// MutateOperations: Required. The list of operations to perform on individual
	// resources.
	MutateOperations []*GoogleAdsSearchads360V23Services__MutateOperation `json:"mutateOperations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation. The mutable resource will only be returned if the resource has the
	// appropriate response field. For example, .
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	ValidateOnly        bool   `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MutateOperations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MutateOperations") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSearchAds360Request) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSearchAds360Request
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSearchAds360Response: Response
// message for Service.Mutate.
type GoogleAdsSearchads360V23Services__MutateSearchAds360Response struct {
	// MutateOperationResponses: All responses for the mutate.
	MutateOperationResponses []*GoogleAdsSearchads360V23Services__MutateOperationResponse `json:"mutateOperationResponses,omitempty"`
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "MutateOperationResponses")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MutateOperationResponses") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSearchAds360Response) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSearchAds360Response
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest: Request
// message for SharedCriterionService.MutateSharedCriteria.
type GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest struct {
	// Operations: Required. The list of operations to perform on individual shared
	// criteria.
	Operations []*GoogleAdsSearchads360V23Services__SharedCriterionOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse: Response
// message for a shared criterion mutate.
type GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateSharedCriterionResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedCriterionResult: The result
// for the shared criterion mutate.
type GoogleAdsSearchads360V23Services__MutateSharedCriterionResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// SharedCriterion: The mutated shared criterion with only mutable fields after
	// mutate. The field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	SharedCriterion *GoogleAdsSearchads360V23Resources__SharedCriterion `json:"sharedCriterion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedCriterionResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedCriterionResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedSetResult: The result for the
// shared set mutate.
type GoogleAdsSearchads360V23Services__MutateSharedSetResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// SharedSet: The mutated shared set with only mutable fields after mutate. The
	// field will only be returned when response_content_type is set to
	// "MUTABLE_RESOURCE".
	SharedSet *GoogleAdsSearchads360V23Resources__SharedSet `json:"sharedSet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedSetResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedSetResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedSetsRequest: Request message
// for SharedSetService.MutateSharedSets.
type GoogleAdsSearchads360V23Services__MutateSharedSetsRequest struct {
	// Operations: Required. The list of operations to perform on individual shared
	// sets.
	Operations []*GoogleAdsSearchads360V23Services__SharedSetOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedSetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedSetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSharedSetsResponse: Response message
// for a shared set mutate.
type GoogleAdsSearchads360V23Services__MutateSharedSetsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateSharedSetResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSharedSetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSharedSetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult: The
// result for the Smart campaign setting mutate.
type GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// SmartCampaignSetting: The mutated Smart campaign setting with only mutable
	// fields after mutate. The field will only be returned when
	// response_content_type is set to "MUTABLE_RESOURCE".
	SmartCampaignSetting *GoogleAdsSearchads360V23Resources__SmartCampaignSetting `json:"smartCampaignSetting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest:
// Request message for SmartCampaignSettingService.MutateSmartCampaignSettings.
type GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest struct {
	// Operations: Required. The list of operations to perform on individual Smart
	// campaign settings.
	Operations []*GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ResponseContentType: The response content type setting. Determines whether
	// the mutable resource or just the resource name should be returned post
	// mutation.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified. Will return the resource name only in the
	// response.
	//   "RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
	//   "MUTABLE_RESOURCE" - The mutate response will contain the resource name
	// and the resource with mutable fields if possible. Otherwise, only the
	// resource name will be returned.
	ResponseContentType string `json:"responseContentType,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse:
// Response message for campaign mutate.
type GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult: The
// result for the user list customer type mutate.
type GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest:
// Request message for UserListCustomerTypeService.MutateUserListCustomerTypes.
type GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest struct {
	// Operations: Required. The list of operations to perform on the user list
	// customer types.
	Operations []*GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation `json:"operations,omitempty"`
	// PartialFailure: Optional. If true, successful operations will be carried out
	// and invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: Optional. If true, the request is validated but not executed.
	// Only errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse:
// Response message for a user list customer type mutate.
type GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateUserListCustomerTypeResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListResult: The result for the
// user list mutate.
type GoogleAdsSearchads360V23Services__MutateUserListResult struct {
	// ResourceName: Returned for successful operations.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListsRequest: Request message
// for UserListService.MutateUserLists.
type GoogleAdsSearchads360V23Services__MutateUserListsRequest struct {
	// Operations: Required. The list of operations to perform on individual user
	// lists.
	Operations []*GoogleAdsSearchads360V23Services__UserListOperation `json:"operations,omitempty"`
	// PartialFailure: If true, successful operations will be carried out and
	// invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid. Default is
	// false.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__MutateUserListsResponse: Response message
// for user list mutate.
type GoogleAdsSearchads360V23Services__MutateUserListsResponse struct {
	// PartialFailureError: Errors that pertain to operation failures in the
	// partial failure mode. Returned only when partial_failure = true and all
	// errors occur inside the operations. If any errors occur outside the
	// operations (for example, auth errors), we return an RPC level error.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`
	// Results: All results for the mutate.
	Results []*GoogleAdsSearchads360V23Services__MutateUserListResult `json:"results,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__MutateUserListsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__MutateUserListsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation: Operation to
// be made for the AddOfflineUserDataJobOperationsRequest.
type GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation struct {
	// Create: Add the provided data to the transaction. Data cannot be retrieved
	// after being uploaded.
	Create *GoogleAdsSearchads360V23Common__UserData `json:"create,omitempty"`
	// Remove: Remove the provided data from the transaction. Data cannot be
	// retrieved after being uploaded.
	Remove *GoogleAdsSearchads360V23Common__UserData `json:"remove,omitempty"`
	// RemoveAll: Remove all previously provided data. This is only supported for
	// Customer Match.
	RemoveAll bool `json:"removeAll,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__OfflineUserDataJobOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics: Audience metrics
// for the planned products. These metrics consider the following targeting
// dimensions: - Location - PlannableAgeRange - Gender - AudienceTargeting
// (only for youtube_audience_size)
type GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics struct {
	// CensusAudienceSize: Reference audience size matching the considered
	// targeting for Census.
	CensusAudienceSize int64 `json:"censusAudienceSize,omitempty,string"`
	// YoutubeAudienceSize: Reference audience size matching the considered
	// targeting for YouTube.
	YoutubeAudienceSize int64 `json:"youtubeAudienceSize,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CensusAudienceSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CensusAudienceSize") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__OnTargetAudienceMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannableLocation: A plannable location:
// country, metro region, province, etc.
type GoogleAdsSearchads360V23Services__PlannableLocation struct {
	// CountryCode: The ISO-3166-1 alpha-2 country code that is associated with the
	// location.
	CountryCode string `json:"countryCode,omitempty"`
	// Id: The location identifier.
	Id string `json:"id,omitempty"`
	// LocationType: The location's type. Location types correspond to target_type
	// returned by .
	LocationType string `json:"locationType,omitempty"`
	// Name: The unique location name in English.
	Name string `json:"name,omitempty"`
	// ParentCountryId: The parent country (not present if location is a country).
	// If present, will always be a GeoTargetConstant ID. Additional information
	// such as country name is provided by ReachPlanService.ListPlannableLocations
	// or
	ParentCountryId int64 `json:"parentCountryId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannableLocation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannableLocation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannableTargeting: The targeting for
// which traffic metrics will be reported.
type GoogleAdsSearchads360V23Services__PlannableTargeting struct {
	// AgeRanges: Allowed plannable age ranges for the product for which metrics
	// will be reported. Actual targeting is computed by mapping this age range
	// onto standard Google common.AgeRangeInfo values.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AGE_RANGE_18_24" - Between 18 and 24 years old.
	//   "AGE_RANGE_18_34" - Between 18 and 34 years old.
	//   "AGE_RANGE_18_44" - Between 18 and 44 years old.
	//   "AGE_RANGE_18_49" - Between 18 and 49 years old.
	//   "AGE_RANGE_18_54" - Between 18 and 54 years old.
	//   "AGE_RANGE_18_64" - Between 18 and 64 years old.
	//   "AGE_RANGE_18_65_UP" - Between 18 and 65+ years old.
	//   "AGE_RANGE_21_34" - Between 21 and 34 years old.
	//   "AGE_RANGE_25_34" - Between 25 and 34 years old.
	//   "AGE_RANGE_25_44" - Between 25 and 44 years old.
	//   "AGE_RANGE_25_49" - Between 25 and 49 years old.
	//   "AGE_RANGE_25_54" - Between 25 and 54 years old.
	//   "AGE_RANGE_25_64" - Between 25 and 64 years old.
	//   "AGE_RANGE_25_65_UP" - Between 25 and 65+ years old.
	//   "AGE_RANGE_35_44" - Between 35 and 44 years old.
	//   "AGE_RANGE_35_49" - Between 35 and 49 years old.
	//   "AGE_RANGE_35_54" - Between 35 and 54 years old.
	//   "AGE_RANGE_35_64" - Between 35 and 64 years old.
	//   "AGE_RANGE_35_65_UP" - Between 35 and 65+ years old.
	//   "AGE_RANGE_45_54" - Between 45 and 54 years old.
	//   "AGE_RANGE_45_64" - Between 45 and 64 years old.
	//   "AGE_RANGE_45_65_UP" - Between 45 and 65+ years old.
	//   "AGE_RANGE_50_65_UP" - Between 50 and 65+ years old.
	//   "AGE_RANGE_55_64" - Between 55 and 64 years old.
	//   "AGE_RANGE_55_65_UP" - Between 55 and 65+ years old.
	//   "AGE_RANGE_65_UP" - 65 years old and beyond.
	AgeRanges []string `json:"ageRanges,omitempty"`
	// Devices: Targetable devices for the ad product. TABLET device targeting is
	// automatically applied to reported metrics when MOBILE targeting is selected
	// for CPM_MASTHEAD, GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT
	// products.
	Devices []*GoogleAdsSearchads360V23Common__DeviceInfo `json:"devices,omitempty"`
	// Genders: Targetable genders for the ad product.
	Genders []*GoogleAdsSearchads360V23Common__GenderInfo `json:"genders,omitempty"`
	// Networks: Targetable networks for the ad product.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "YOUTUBE" - YouTube network.
	//   "GOOGLE_VIDEO_PARTNERS" - Google Video Partners (GVP) network.
	//   "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS" - A combination of the YouTube network
	// and the Google Video Partners network.
	Networks []string `json:"networks,omitempty"`
	// SurfaceTargeting: Targetable surface combinations for the ad product.
	SurfaceTargeting *GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations `json:"surfaceTargeting,omitempty"`
	// YoutubeSelectLineups: Targetable YouTube Select Lineups for the ad product.
	YoutubeSelectLineups []*GoogleAdsSearchads360V23Services__YouTubeSelectLineUp `json:"youtubeSelectLineups,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannableTargeting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannableTargeting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannableUserInterest: A plannable user
// interest that can be targeted in a reach forecast using
// ReachPlanService.GenerateReachForecast.
type GoogleAdsSearchads360V23Services__PlannableUserInterest struct {
	// UserInterest: The user interest id.
	UserInterest *GoogleAdsSearchads360V23Common__UserInterestInfo `json:"userInterest,omitempty"`
	// UserInterestDisplayName: The user interest display name. For example, "Autos
	// & Vehicles"
	UserInterestDisplayName string `json:"userInterestDisplayName,omitempty"`
	// UserInterestPath: The user interest path. For example, "/Autos &
	// Vehicles/Motor Vehicles/Motor Vehicles by Type/Off-Road Vehicles"
	UserInterestPath string `json:"userInterestPath,omitempty"`
	// UserInterestType: The user interest type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "AFFINITY" - The affinity for this user interest.
	//   "IN_MARKET" - The market for this user interest.
	//   "MOBILE_APP_INSTALL_USER" - Users known to have installed applications in
	// the specified categories.
	//   "VERTICAL_GEO" - The geographical location of the interest-based vertical.
	//   "NEW_SMART_PHONE_USER" - User interest criteria for new smart phone users.
	UserInterestType string `json:"userInterestType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserInterest") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserInterest") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannableUserInterest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannableUserInterest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannableUserList: A plannable user list.
type GoogleAdsSearchads360V23Services__PlannableUserList struct {
	// DisplayName: The name of the user list.
	DisplayName string `json:"displayName,omitempty"`
	// PlannableStatus: The plannable status of the user list.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "PLANNABLE" - The user list is plannable.
	//   "UNPLANNABLE" - The user list is not plannable.
	PlannableStatus string `json:"plannableStatus,omitempty"`
	// PlannableUserListMetadata: The relevant metadata for this user list.
	PlannableUserListMetadata *GoogleAdsSearchads360V23Services__PlannableUserListMetadata `json:"plannableUserListMetadata,omitempty"`
	// UserListInfo: The user list ID.
	UserListInfo *GoogleAdsSearchads360V23Common__UserListInfo `json:"userListInfo,omitempty"`
	// UserListType: The user list type.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "REMARKETING" - UserList represented as a collection of conversion types.
	//   "LOGICAL" - UserList represented as a combination of other user
	// lists/interests.
	//   "EXTERNAL_REMARKETING" - UserList created in the Google Ad Manager
	// platform.
	//   "RULE_BASED" - UserList associated with a rule.
	//   "SIMILAR" - UserList with users similar to users of another UserList.
	//   "CRM_BASED" - UserList of first-party CRM data provided by advertiser in
	// the form of emails or other formats.
	//   "LOOKALIKE" - LookalikeUserlist, composed of users similar to those of a
	// configurable seed (set of UserLists)
	UserListType string `json:"userListType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisplayName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannableUserList) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannableUserList
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannableUserListMetadata: The metadata
// associated with a plannable user list.
type GoogleAdsSearchads360V23Services__PlannableUserListMetadata struct {
	// UserListCrmDataSourceType: The data source type of a CRM based user list.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "FIRST_PARTY" - The uploaded data is first-party data.
	//   "THIRD_PARTY_CREDIT_BUREAU" - The uploaded data is from a third-party
	// credit bureau.
	//   "THIRD_PARTY_VOTER_FILE" - The uploaded data is from a third-party voter
	// file.
	//   "THIRD_PARTY_PARTNER_DATA" - The uploaded data is third party partner
	// data.
	UserListCrmDataSourceType string `json:"userListCrmDataSourceType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserListCrmDataSourceType")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserListCrmDataSourceType") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannableUserListMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannableUserListMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PlannedProduct: A product being planned
// for reach.
type GoogleAdsSearchads360V23Services__PlannedProduct struct {
	// AdvancedProductTargeting: Targeting settings for the selected product. To
	// list the available targeting for each product use
	// ReachPlanService.ListPlannableProducts.
	AdvancedProductTargeting *GoogleAdsSearchads360V23Services__AdvancedProductTargeting `json:"advancedProductTargeting,omitempty"`
	// BudgetMicros: Required. Maximum budget allocation in micros for the selected
	// product. The value is specified in the selected planning currency_code. For
	// example: 1 000 000$ = 1 000 000 000 000 micros.
	BudgetMicros int64 `json:"budgetMicros,omitempty,string"`
	// ConversionRate: Conversion rate as a decimal between 0 and 1, exclusive. For
	// example: if 2% of ad interactions are expected to lead to conversions,
	// conversion_rate should be 0.02. This field is required for DEMAND_GEN
	// plannable products. It is not supported for other plannable products.
	ConversionRate float64 `json:"conversionRate,omitempty"`
	// PlannableProductCode: Required. Selected product for planning. The code
	// associated with the ad product (for example: Trueview, Bumper). To list the
	// available plannable product codes use
	// ReachPlanService.ListPlannableProducts.
	PlannableProductCode string `json:"plannableProductCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdvancedProductTargeting")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvancedProductTargeting") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannedProduct) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannedProduct
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__PlannedProduct) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__PlannedProduct
	var s1 struct {
		ConversionRate gensupport.JSONFloat64 `json:"conversionRate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ConversionRate = float64(s1.ConversionRate)
	return nil
}

// GoogleAdsSearchads360V23Services__PlannedProductForecast: Forecasted traffic
// metrics for a planned product.
type GoogleAdsSearchads360V23Services__PlannedProductForecast struct {
	// AverageFrequency: The number of times per selected time unit a user will see
	// an ad, averaged over the number of time units in the forecast length. This
	// field will only be populated for a Target Frequency campaign. See
	// https://support.google.com/google-ads/answer/12400225 for more information
	// about Target Frequency campaigns.
	AverageFrequency float64 `json:"averageFrequency,omitempty"`
	// Conversions: The number of conversions. This metric is only available for
	// DEMAND_GEN plannable products. See
	// https://support.google.com/google-ads/answer/2375431 for more information on
	// conversions.
	Conversions float64 `json:"conversions,omitempty"`
	// OnTargetCoviewImpressions: Number of ad impressions that exactly matches the
	// Targeting including co-viewers.
	OnTargetCoviewImpressions int64 `json:"onTargetCoviewImpressions,omitempty,string"`
	// OnTargetCoviewReach: Number of unique people reached that exactly matches
	// the Targeting including co-viewers.
	OnTargetCoviewReach int64 `json:"onTargetCoviewReach,omitempty,string"`
	// OnTargetImpressions: Number of ad impressions that exactly matches the
	// Targeting.
	OnTargetImpressions int64 `json:"onTargetImpressions,omitempty,string"`
	// OnTargetReach: Number of unique people reached that exactly matches the
	// Targeting. Note that a minimum number of unique people must be reached in
	// order for data to be reported. If the minimum number is not met, the
	// on_target_reach value will be rounded to 0.
	OnTargetReach int64 `json:"onTargetReach,omitempty,string"`
	// TotalCoviewImpressions: Total number of ad impressions including co-viewers.
	// This includes impressions that may fall outside the specified Targeting, due
	// to insufficient information on signed-in users.
	TotalCoviewImpressions int64 `json:"totalCoviewImpressions,omitempty,string"`
	// TotalCoviewReach: Number of unique people reached including co-viewers. This
	// includes people that may fall outside the specified Targeting.
	TotalCoviewReach int64 `json:"totalCoviewReach,omitempty,string"`
	// TotalImpressions: Total number of ad impressions. This includes impressions
	// that may fall outside the specified Targeting, due to insufficient
	// information on signed-in users.
	TotalImpressions int64 `json:"totalImpressions,omitempty,string"`
	// TotalReach: Number of unique people reached. This includes people that may
	// fall outside the specified Targeting. Note that a minimum number of unique
	// people must be reached in order for data to be reported. If the minimum
	// number is not met, the total_reach value will be rounded to 0.
	TotalReach int64 `json:"totalReach,omitempty,string"`
	// TrueviewViews: Number of ad views forecasted for the specified product and
	// targeting. A TrueView View is counted when a viewer views a larger portion
	// or the entirety of an ad beyond an impression. See
	// https://support.google.com/google-ads/answer/2375431 for more information on
	// TrueView Views.
	TrueviewViews int64 `json:"trueviewViews,omitempty,string"`
	// ViewableImpressions: Number of times the ad's impressions were considered
	// viewable. See https://support.google.com/google-ads/answer/7029393 for more
	// information about what makes an ad viewable and how viewability is measured.
	ViewableImpressions int64 `json:"viewableImpressions,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "AverageFrequency") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageFrequency") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannedProductForecast) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannedProductForecast
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__PlannedProductForecast) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__PlannedProductForecast
	var s1 struct {
		AverageFrequency gensupport.JSONFloat64 `json:"averageFrequency"`
		Conversions      gensupport.JSONFloat64 `json:"conversions"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.AverageFrequency = float64(s1.AverageFrequency)
	s.Conversions = float64(s1.Conversions)
	return nil
}

// GoogleAdsSearchads360V23Services__PlannedProductReachForecast: The
// forecasted allocation and traffic metrics for a specific product at a point
// on the reach curve.
type GoogleAdsSearchads360V23Services__PlannedProductReachForecast struct {
	// CostMicros: The cost in micros. This may differ from the product's input
	// allocation if one or more planned products cannot fulfill the budget because
	// of limited inventory.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// PlannableProductCode: Selected product for planning. The product codes
	// returned are within the set of the ones returned by ListPlannableProducts
	// when using the same location ID.
	PlannableProductCode string `json:"plannableProductCode,omitempty"`
	// PlannedProductForecast: Forecasted traffic metrics for this product.
	PlannedProductForecast *GoogleAdsSearchads360V23Services__PlannedProductForecast `json:"plannedProductForecast,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CostMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CostMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PlannedProductReachForecast) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PlannedProductReachForecast
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ProductFilter: The type and list of
// products to aggregate benchmarks metrics over.
type GoogleAdsSearchads360V23Services__ProductFilter struct {
	// MarketingObjectiveList: The list of marketing goals. Marketing objective is
	// a broader product classification of products.
	MarketingObjectiveList *GoogleAdsSearchads360V23ServicesProductFilterMarketingObjectiveList `json:"marketingObjectiveList,omitempty"`
	// ProductList: The list of products.
	ProductList *GoogleAdsSearchads360V23ServicesProductFilterProductList `json:"productList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MarketingObjectiveList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MarketingObjectiveList") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ProductFilter) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ProductFilter
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ProductMetadata: The metadata associated
// with an available plannable product.
type GoogleAdsSearchads360V23Services__ProductMetadata struct {
	// PlannableProductCode: The code associated with the ad product (for example:
	// BUMPER, TRUEVIEW_IN_STREAM). To list the available plannable product codes
	// use ReachPlanService.ListPlannableProducts.
	PlannableProductCode string `json:"plannableProductCode,omitempty"`
	// PlannableProductName: The name associated with the ad product.
	PlannableProductName string `json:"plannableProductName,omitempty"`
	// PlannableTargeting: The allowed plannable targeting for this product.
	PlannableTargeting *GoogleAdsSearchads360V23Services__PlannableTargeting `json:"plannableTargeting,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PlannableProductCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PlannableProductCode") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ProductMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ProductMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest: Request
// message for CampaignDraftService.PromoteCampaignDraft.
type GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest struct {
	// ValidateOnly: If true, the request is validated but no Long Running
	// Operation is created. Only errors are returned.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidateOnly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidateOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PromoteExperimentMetadata: The metadata of
// the promoted experiment.
type GoogleAdsSearchads360V23Services__PromoteExperimentMetadata struct {
	// Experiment: Required. The promoted experiment.
	Experiment string `json:"experiment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Experiment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Experiment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PromoteExperimentMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PromoteExperimentMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__PromoteExperimentRequest: Request message
// for ExperimentService.PromoteExperiment.
type GoogleAdsSearchads360V23Services__PromoteExperimentRequest struct {
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidateOnly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidateOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__PromoteExperimentRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__PromoteExperimentRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest: Request
// message for LocalServicesLeadService.ProvideLeadFeedback.
type GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest struct {
	// SurveyAnswer: Required. Survey answer for Local Services Ads Lead.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "VERY_SATISFIED" - Very satisfied with the lead.
	//   "SATISFIED" - Satisfied with the lead.
	//   "NEUTRAL" - Neutral with the lead.
	//   "DISSATISFIED" - Dissatisfied with the lead.
	//   "VERY_DISSATISFIED" - Very dissatisfied with the lead.
	SurveyAnswer string `json:"surveyAnswer,omitempty"`
	// SurveyDissatisfied: Details about various factors for not being satisfied
	// with the lead.
	SurveyDissatisfied *GoogleAdsSearchads360V23Services__SurveyDissatisfied `json:"surveyDissatisfied,omitempty"`
	// SurveySatisfied: Details about various factors for being satisfied with the
	// lead.
	SurveySatisfied *GoogleAdsSearchads360V23Services__SurveySatisfied `json:"surveySatisfied,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SurveyAnswer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SurveyAnswer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse: Response
// message for LocalServicesLeadService.ProvideLeadFeedback.
type GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse struct {
	// CreditIssuanceDecision: Required. Decision of bonus credit issued or
	// rejected. If a bonus credit is issued, it will be available for use in about
	// two months.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "SUCCESS_NOT_REACHED_THRESHOLD" - Bonus credit is issued successfully and
	// bonus credit cap has not reached the threshold after issuing this bonus
	// credit.
	//   "SUCCESS_REACHED_THRESHOLD" - Bonus credit is issued successfully and
	// bonus credit cap has reached the threshold after issuing this bonus credit.
	//   "FAIL_OVER_THRESHOLD" - Bonus credit is not issued because the provider
	// has reached the bonus credit cap.
	//   "FAIL_NOT_ELIGIBLE" - Bonus credit is not issued because this lead is not
	// eligible for bonus credit.
	CreditIssuanceDecision string `json:"creditIssuanceDecision,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreditIssuanceDecision") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreditIssuanceDecision") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RateMetrics: Average rate metrics. Metrics
// that represent monetary values are returned in USD by default, if
// unspecified in the request.
type GoogleAdsSearchads360V23Services__RateMetrics struct {
	// ActiveViewViewability: The percentage of time when your ad appeared on an
	// Active View enabled site (measurable impressions) and was viewable (viewable
	// impressions).
	ActiveViewViewability float64 `json:"activeViewViewability,omitempty"`
	// AverageActiveViewCpm: Average cost-per-thousand viewable impressions.
	AverageActiveViewCpm float64 `json:"averageActiveViewCpm,omitempty"`
	// AverageCpc: The average cost-per-click (CPC) is defined by the total cost of
	// all clicks divided by the total number of clicks received.
	AverageCpc float64 `json:"averageCpc,omitempty"`
	// AverageCpe: The average cost-per-engagement (CPE) is defined by the total
	// cost of all ad engagements divided by the total number of ad engagements.
	AverageCpe float64 `json:"averageCpe,omitempty"`
	// AverageCpi: The average cost-per-interaction (CPI) is defined by the total
	// cost of all interactions divided by the total number of interactions.
	AverageCpi float64 `json:"averageCpi,omitempty"`
	// AverageCpm: Average cost-per-thousand impressions (CPM).
	AverageCpm float64 `json:"averageCpm,omitempty"`
	// ClickThroughRate: The number of clicks your ad receives (Clicks) divided by
	// the number of times your ad is shown (Impressions).
	ClickThroughRate float64 `json:"clickThroughRate,omitempty"`
	// EngagementRate: How often people engage with your ad after it's shown to
	// them. This is the number of ad expansions divided by the number of times
	// your ad is shown.
	EngagementRate float64 `json:"engagementRate,omitempty"`
	// InteractionRate: How often people interact with your ad after it is shown to
	// them. This is the number of interactions divided by the number of times your
	// ad is shown.
	InteractionRate float64 `json:"interactionRate,omitempty"`
	// TrueviewAverageCpv: The average TrueView cost-per-view (CPV) is defined by
	// the total cost of all ad TrueView views divided by the number of TrueView
	// views.
	TrueviewAverageCpv float64 `json:"trueviewAverageCpv,omitempty"`
	// TrueviewViewRate: Number of completed TrueView views divided by the number
	// of impressions.
	TrueviewViewRate float64 `json:"trueviewViewRate,omitempty"`
	// VideoCompletionP100Rate: Percentage of impressions where the viewer watched
	// all of your video.
	VideoCompletionP100Rate float64 `json:"videoCompletionP100Rate,omitempty"`
	// VideoCompletionP25Rate: Percentage of impressions where the viewer watched
	// 25% of your video.
	VideoCompletionP25Rate float64 `json:"videoCompletionP25Rate,omitempty"`
	// VideoCompletionP50Rate: Percentage of impressions where the viewer watched
	// 50% of your video.
	VideoCompletionP50Rate float64 `json:"videoCompletionP50Rate,omitempty"`
	// VideoCompletionP75Rate: Percentage of impressions where the viewer watched
	// 75% of your video.
	VideoCompletionP75Rate float64 `json:"videoCompletionP75Rate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveViewViewability") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveViewViewability") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RateMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RateMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__RateMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__RateMetrics
	var s1 struct {
		ActiveViewViewability   gensupport.JSONFloat64 `json:"activeViewViewability"`
		AverageActiveViewCpm    gensupport.JSONFloat64 `json:"averageActiveViewCpm"`
		AverageCpc              gensupport.JSONFloat64 `json:"averageCpc"`
		AverageCpe              gensupport.JSONFloat64 `json:"averageCpe"`
		AverageCpi              gensupport.JSONFloat64 `json:"averageCpi"`
		AverageCpm              gensupport.JSONFloat64 `json:"averageCpm"`
		ClickThroughRate        gensupport.JSONFloat64 `json:"clickThroughRate"`
		EngagementRate          gensupport.JSONFloat64 `json:"engagementRate"`
		InteractionRate         gensupport.JSONFloat64 `json:"interactionRate"`
		TrueviewAverageCpv      gensupport.JSONFloat64 `json:"trueviewAverageCpv"`
		TrueviewViewRate        gensupport.JSONFloat64 `json:"trueviewViewRate"`
		VideoCompletionP100Rate gensupport.JSONFloat64 `json:"videoCompletionP100Rate"`
		VideoCompletionP25Rate  gensupport.JSONFloat64 `json:"videoCompletionP25Rate"`
		VideoCompletionP50Rate  gensupport.JSONFloat64 `json:"videoCompletionP50Rate"`
		VideoCompletionP75Rate  gensupport.JSONFloat64 `json:"videoCompletionP75Rate"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ActiveViewViewability = float64(s1.ActiveViewViewability)
	s.AverageActiveViewCpm = float64(s1.AverageActiveViewCpm)
	s.AverageCpc = float64(s1.AverageCpc)
	s.AverageCpe = float64(s1.AverageCpe)
	s.AverageCpi = float64(s1.AverageCpi)
	s.AverageCpm = float64(s1.AverageCpm)
	s.ClickThroughRate = float64(s1.ClickThroughRate)
	s.EngagementRate = float64(s1.EngagementRate)
	s.InteractionRate = float64(s1.InteractionRate)
	s.TrueviewAverageCpv = float64(s1.TrueviewAverageCpv)
	s.TrueviewViewRate = float64(s1.TrueviewViewRate)
	s.VideoCompletionP100Rate = float64(s1.VideoCompletionP100Rate)
	s.VideoCompletionP25Rate = float64(s1.VideoCompletionP25Rate)
	s.VideoCompletionP50Rate = float64(s1.VideoCompletionP50Rate)
	s.VideoCompletionP75Rate = float64(s1.VideoCompletionP75Rate)
	return nil
}

// GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader: Message
// for raw event conversion dimension header.
type GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader struct {
	// Id: The conversion custom variable ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the raw event dimension.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader: Message
// for raw event conversion metric header.
type GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader struct {
	// Id: The conversion custom variable ID.
	Id int64 `json:"id,omitempty,string"`
	// Name: The user defined name of the raw event metric.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Id") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ReachCurve: The reach curve for the
// planned products.
type GoogleAdsSearchads360V23Services__ReachCurve struct {
	// ReachForecasts: All points on the reach curve.
	ReachForecasts []*GoogleAdsSearchads360V23Services__ReachForecast `json:"reachForecasts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReachForecasts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReachForecasts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ReachCurve) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ReachCurve
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ReachForecast: A point on reach curve.
type GoogleAdsSearchads360V23Services__ReachForecast struct {
	// CostMicros: The cost in micros.
	CostMicros int64 `json:"costMicros,omitempty,string"`
	// Forecast: Forecasted traffic metrics for this point.
	Forecast *GoogleAdsSearchads360V23Services__Forecast `json:"forecast,omitempty"`
	// PlannedProductReachForecasts: The forecasted allocation and traffic metrics
	// for each planned product at this point on the reach curve.
	PlannedProductReachForecasts []*GoogleAdsSearchads360V23Services__PlannedProductReachForecast `json:"plannedProductReachForecasts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CostMicros") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CostMicros") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ReachForecast) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ReachForecast
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation: A
// single operation (create, update) on a recommendation subscription.
// RecommendationSubscriptionService.MutateRecommendationSubscription
type GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// subscription.
	Create *GoogleAdsSearchads360V23Resources__RecommendationSubscription `json:"create,omitempty"`
	// Update: Update operation: The subscription is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__RecommendationSubscription `json:"update,omitempty"`
	// UpdateMask: Optional. FieldMask that determines which resource fields are
	// modified in an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RecommendationSubscriptionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest: Request
// message for ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.
type GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest struct {
}

// GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse:
// Response message for
// ThirdPartyAppAnalyticsLinkService.RegenerateShareableLinkId.
type GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// GoogleAdsSearchads360V23Services__RemarketingActionOperation: A single
// operation (create, update) on a remarketing action.
type GoogleAdsSearchads360V23Services__RemarketingActionOperation struct {
	// Create: Create operation: No resource name is expected for the new
	// remarketing action.
	Create *GoogleAdsSearchads360V23Resources__RemarketingAction `json:"create,omitempty"`
	// Update: Update operation: The remarketing action is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__RemarketingAction `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemarketingActionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemarketingActionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest:
// Request message for AdGroupAdService.RemoveAutomaticallyCreatedAssets.
type GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest struct {
	// AssetsWithFieldType: Required. List of assets with field type to be removed
	// from the AdGroupAd.
	AssetsWithFieldType []*GoogleAdsSearchads360V23Services__AssetsWithFieldType `json:"assetsWithFieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssetsWithFieldType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssetsWithFieldType") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOper
// ation: A single operation to remove an automatically created asset from a
// campaign.
type GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation struct {
	// Asset: Required. The resource name of the asset to remove.
	Asset string `json:"asset,omitempty"`
	// Campaign: Required. The resource name of the campaign.
	Campaign string `json:"campaign,omitempty"`
	// FieldType: Required. The field type of the asset to remove.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "HEADLINE" - The asset is linked for use as a headline.
	//   "DESCRIPTION" - The asset is linked for use as a description.
	//   "MANDATORY_AD_TEXT" - The asset is linked for use as mandatory ad text.
	//   "MARKETING_IMAGE" - The asset is linked for use as a marketing image.
	//   "MEDIA_BUNDLE" - The asset is linked for use as a media bundle.
	//   "YOUTUBE_VIDEO" - The asset is linked for use as a YouTube video.
	//   "BOOK_ON_GOOGLE" - The asset is linked to indicate that a hotels campaign
	// is "Book on Google" enabled.
	//   "LEAD_FORM" - The asset is linked for use as a Lead Form extension.
	//   "PROMOTION" - The asset is linked for use as a Promotion extension.
	//   "CALLOUT" - The asset is linked for use as a Callout extension.
	//   "STRUCTURED_SNIPPET" - The asset is linked for use as a Structured Snippet
	// extension.
	//   "SITELINK" - The asset is linked for use as a Sitelink.
	//   "MOBILE_APP" - The asset is linked for use as a Mobile App extension.
	//   "HOTEL_CALLOUT" - The asset is linked for use as a Hotel Callout
	// extension.
	//   "CALL" - The asset is linked for use as a Call extension.
	//   "PRICE" - The asset is linked for use as a Price extension.
	//   "LONG_HEADLINE" - The asset is linked for use as a long headline.
	//   "BUSINESS_NAME" - The asset is linked for use as a business name.
	//   "SQUARE_MARKETING_IMAGE" - The asset is linked for use as a square
	// marketing image.
	//   "PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a portrait
	// marketing image.
	//   "LOGO" - The asset is linked for use as a logo.
	//   "LANDSCAPE_LOGO" - The asset is linked for use as a landscape logo.
	//   "VIDEO" - The asset is linked for use as a non YouTube logo.
	//   "CALL_TO_ACTION_SELECTION" - The asset is linked for use to select a
	// call-to-action.
	//   "AD_IMAGE" - The asset is linked for use to select an ad image.
	//   "BUSINESS_LOGO" - The asset is linked for use as a business logo.
	//   "HOTEL_PROPERTY" - The asset is linked for use as a hotel property in a
	// Performance Max for travel goals campaign.
	//   "DEMAND_GEN_CAROUSEL_CARD" - The asset is linked for use as a Demand Gen
	// carousel card.
	//   "BUSINESS_MESSAGE" - The asset is linked for use as a Business Message.
	//   "TALL_PORTRAIT_MARKETING_IMAGE" - The asset is linked for use as a tall
	// portrait marketing image.
	//   "LANDING_PAGE_PREVIEW" - The asset is linked for use as a landing page
	// preview image.
	//   "LONG_DESCRIPTION" - The asset is linked for use as a long description.
	//   "CALL_TO_ACTION" - The asset is linked for use as a call-to-action.
	FieldType string `json:"fieldType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Asset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Asset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequ
// est: Request message for
// AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAss
// et.
type GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest struct {
	// Operations: Required. The list of operations.
	Operations []*GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetOperation `json:"operations,omitempty"`
	// PartialFailure: Required. If true, successful operations will be carried out
	// and invalid operations will return errors. If false, all operations will be
	// carried out in one transaction if and only if they are all valid.
	PartialFailure bool `json:"partialFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Operations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Operations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResp
// onse: Response message for
// AutomaticallyCreatedAssetRemovalService.RemoveCampaignAutomaticallyCreatedAss
// et.
type GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse struct {
	// PartialFailureError: Errors that pertain to AutomaticallyCreatedAssetRemoval
	// failures in the partial failure mode. Returned when all errors occur inside
	// the operations. If any errors occur outside the operations (for example,
	// auth errors), RPC level error will be returned. See
	// https://developers.google.com/google-ads/api/docs/best-practices/partial-failures
	// for more information about partial failure.
	PartialFailureError *GoogleRpc__Status `json:"partialFailureError,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "PartialFailureError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PartialFailureError") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveDataLinkRequest: Request message for
// DataLinkService.RemoveDataLink.
type GoogleAdsSearchads360V23Services__RemoveDataLinkRequest struct {
	// ResourceName: Required. The data link is expected to have a valid resource
	// name.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveDataLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveDataLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveDataLinkResponse: Response message
// for DataLinkService.RemoveDataLink.
type GoogleAdsSearchads360V23Services__RemoveDataLinkResponse struct {
	// ResourceName: Result for the remove request.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveDataLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveDataLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest:
// Request message for
// ProductLinkInvitationService.RemoveProductLinkInvitation.
type GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest struct {
	// ResourceName: Required. The resource name of the product link invitation
	// being removed. expected, in this format: ` `
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse:
// Response message for product link invitation removeal.
type GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse struct {
	// ResourceName: Result for the remove request.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveProductLinkRequest: Request message
// for ProductLinkService.RemoveProductLink.
type GoogleAdsSearchads360V23Services__RemoveProductLinkRequest struct {
	// ResourceName: Required. Remove operation: A resource name for the product
	// link to remove is expected, in this format: ` `
	ResourceName string `json:"resourceName,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveProductLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveProductLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RemoveProductLinkResponse: Response
// message for product link removal.
type GoogleAdsSearchads360V23Services__RemoveProductLinkResponse struct {
	// ResourceName: Result for the remove request.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RemoveProductLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RemoveProductLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__RunBatchJobRequest: Request message for
// BatchJobService.RunBatchJob.
type GoogleAdsSearchads360V23Services__RunBatchJobRequest struct {
}

// GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest: Request
// message for OfflineUserDataJobService.RunOfflineUserDataJob.
type GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest struct {
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidateOnly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidateOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata: The metadata
// of the scheduled experiment.
type GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata struct {
	// Experiment: Required. The scheduled experiment.
	Experiment string `json:"experiment,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Experiment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Experiment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ScheduleExperimentMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__ScheduleExperimentRequest: Request message
// for ExperimentService.ScheduleExperiment.
type GoogleAdsSearchads360V23Services__ScheduleExperimentRequest struct {
	// ValidateOnly: If true, the request is validated but not executed. Only
	// errors are returned, not results.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ValidateOnly") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ValidateOnly") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__ScheduleExperimentRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__ScheduleExperimentRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation: A single
// operation (update) on a Search Ads 360 campaign.
type GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation struct {
	// Update: Update operation: The Search Ads 360 campaign is expected to have a
	// valid resource name.
	Update *GoogleAdsSearchads360V23Resources__SearchAds360Campaign `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchAds360CampaignOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchAds360Row: A returned row from the
// query.
type GoogleAdsSearchads360V23Services__SearchAds360Row struct {
	// AccessibleBiddingStrategy: The accessible bidding strategy referenced in the
	// query.
	AccessibleBiddingStrategy *GoogleAdsSearchads360V23Resources__AccessibleBiddingStrategy `json:"accessibleBiddingStrategy,omitempty"`
	// AccountBudget: The account budget in the query.
	AccountBudget *GoogleAdsSearchads360V23Resources__AccountBudget `json:"accountBudget,omitempty"`
	// AccountBudgetProposal: The account budget proposal referenced in the query.
	AccountBudgetProposal *GoogleAdsSearchads360V23Resources__AccountBudgetProposal `json:"accountBudgetProposal,omitempty"`
	// AccountLink: The AccountLink referenced in the query.
	AccountLink *GoogleAdsSearchads360V23Resources__AccountLink `json:"accountLink,omitempty"`
	// Ad: The Ad referenced in the query.
	Ad *GoogleAdsSearchads360V23Resources__Ad `json:"ad,omitempty"`
	// AdGroup: The ad group referenced in the query.
	AdGroup *GoogleAdsSearchads360V23Resources__AdGroup `json:"adGroup,omitempty"`
	// AdGroupAd: The ad referenced in the query.
	AdGroupAd *GoogleAdsSearchads360V23Resources__AdGroupAd `json:"adGroupAd,omitempty"`
	// AdGroupAdAssetCombinationView: The ad group ad asset combination view in the
	// query.
	AdGroupAdAssetCombinationView *GoogleAdsSearchads360V23Resources__AdGroupAdAssetCombinationView `json:"adGroupAdAssetCombinationView,omitempty"`
	// AdGroupAdAssetView: The ad group ad asset view in the query.
	AdGroupAdAssetView *GoogleAdsSearchads360V23Resources__AdGroupAdAssetView `json:"adGroupAdAssetView,omitempty"`
	// AdGroupAdEffectiveLabel: The ad group ad effective label referenced in the
	// query.
	AdGroupAdEffectiveLabel *GoogleAdsSearchads360V23Resources__AdGroupAdEffectiveLabel `json:"adGroupAdEffectiveLabel,omitempty"`
	// AdGroupAdLabel: The ad group ad label referenced in the query.
	AdGroupAdLabel *GoogleAdsSearchads360V23Resources__AdGroupAdLabel `json:"adGroupAdLabel,omitempty"`
	// AdGroupAsset: The ad group asset referenced in the query.
	AdGroupAsset *GoogleAdsSearchads360V23Resources__AdGroupAsset `json:"adGroupAsset,omitempty"`
	// AdGroupAssetSet: The ad group asset set referenced in the query.
	AdGroupAssetSet *GoogleAdsSearchads360V23Resources__AdGroupAssetSet `json:"adGroupAssetSet,omitempty"`
	// AdGroupAudienceView: The ad group audience view referenced in the query.
	AdGroupAudienceView *GoogleAdsSearchads360V23Resources__AdGroupAudienceView `json:"adGroupAudienceView,omitempty"`
	// AdGroupBidModifier: The bid modifier referenced in the query.
	AdGroupBidModifier *GoogleAdsSearchads360V23Resources__AdGroupBidModifier `json:"adGroupBidModifier,omitempty"`
	// AdGroupCriterion: The criterion referenced in the query.
	AdGroupCriterion *GoogleAdsSearchads360V23Resources__AdGroupCriterion `json:"adGroupCriterion,omitempty"`
	// AdGroupCriterionCustomizer: The ad group criterion customizer referenced in
	// the query.
	AdGroupCriterionCustomizer *GoogleAdsSearchads360V23Resources__AdGroupCriterionCustomizer `json:"adGroupCriterionCustomizer,omitempty"`
	// AdGroupCriterionEffectiveLabel: The ad group criterion effective label
	// referenced in the query.
	AdGroupCriterionEffectiveLabel *GoogleAdsSearchads360V23Resources__AdGroupCriterionEffectiveLabel `json:"adGroupCriterionEffectiveLabel,omitempty"`
	// AdGroupCriterionLabel: The ad group criterion label referenced in the query.
	AdGroupCriterionLabel *GoogleAdsSearchads360V23Resources__AdGroupCriterionLabel `json:"adGroupCriterionLabel,omitempty"`
	// AdGroupCriterionSimulation: The ad group criterion simulation referenced in
	// the query.
	AdGroupCriterionSimulation *GoogleAdsSearchads360V23Resources__AdGroupCriterionSimulation `json:"adGroupCriterionSimulation,omitempty"`
	// AdGroupCustomizer: The ad group customizer referenced in the query.
	AdGroupCustomizer *GoogleAdsSearchads360V23Resources__AdGroupCustomizer `json:"adGroupCustomizer,omitempty"`
	// AdGroupEffectiveLabel: The ad group effective label referenced in the query.
	AdGroupEffectiveLabel *GoogleAdsSearchads360V23Resources__AdGroupEffectiveLabel `json:"adGroupEffectiveLabel,omitempty"`
	// AdGroupLabel: The ad group label referenced in the query.
	AdGroupLabel *GoogleAdsSearchads360V23Resources__AdGroupLabel `json:"adGroupLabel,omitempty"`
	// AdGroupSimulation: The ad group simulation referenced in the query.
	AdGroupSimulation *GoogleAdsSearchads360V23Resources__AdGroupSimulation `json:"adGroupSimulation,omitempty"`
	// AdParameter: The ad parameter referenced in the query.
	AdParameter *GoogleAdsSearchads360V23Resources__AdParameter `json:"adParameter,omitempty"`
	// AdScheduleView: The ad schedule view referenced in the query.
	AdScheduleView *GoogleAdsSearchads360V23Resources__AdScheduleView `json:"adScheduleView,omitempty"`
	// AgeRangeView: The age range view referenced in the query.
	AgeRangeView *GoogleAdsSearchads360V23Resources__AgeRangeView `json:"ageRangeView,omitempty"`
	// AiMaxSearchTermAdCombinationView: The AI Max search term ad combination view
	// referenced in the query.
	AiMaxSearchTermAdCombinationView *GoogleAdsSearchads360V23Resources__AiMaxSearchTermAdCombinationView `json:"aiMaxSearchTermAdCombinationView,omitempty"`
	// AndroidPrivacySharedKeyGoogleAdGroup: The android privacy shared key google
	// ad group referenced in the query.
	AndroidPrivacySharedKeyGoogleAdGroup *GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleAdGroup `json:"androidPrivacySharedKeyGoogleAdGroup,omitempty"`
	// AndroidPrivacySharedKeyGoogleCampaign: The android privacy shared key google
	// campaign referenced in the query.
	AndroidPrivacySharedKeyGoogleCampaign *GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleCampaign `json:"androidPrivacySharedKeyGoogleCampaign,omitempty"`
	// AndroidPrivacySharedKeyGoogleNetworkType: The android privacy shared key
	// google network type referenced in the query.
	AndroidPrivacySharedKeyGoogleNetworkType *GoogleAdsSearchads360V23Resources__AndroidPrivacySharedKeyGoogleNetworkType `json:"androidPrivacySharedKeyGoogleNetworkType,omitempty"`
	// Asset: The asset referenced in the query.
	Asset *GoogleAdsSearchads360V23Resources__Asset `json:"asset,omitempty"`
	// AssetFieldTypeView: The asset field type view referenced in the query.
	AssetFieldTypeView *GoogleAdsSearchads360V23Resources__AssetFieldTypeView `json:"assetFieldTypeView,omitempty"`
	// AssetGroup: The asset group referenced in the query.
	AssetGroup *GoogleAdsSearchads360V23Resources__AssetGroup `json:"assetGroup,omitempty"`
	// AssetGroupAsset: The asset group asset referenced in the query.
	AssetGroupAsset *GoogleAdsSearchads360V23Resources__AssetGroupAsset `json:"assetGroupAsset,omitempty"`
	// AssetGroupListingGroupFilter: The asset group listing group filter
	// referenced in the query.
	AssetGroupListingGroupFilter *GoogleAdsSearchads360V23Resources__AssetGroupListingGroupFilter `json:"assetGroupListingGroupFilter,omitempty"`
	// AssetGroupProductGroupView: The asset group product group view referenced in
	// the query.
	AssetGroupProductGroupView *GoogleAdsSearchads360V23Resources__AssetGroupProductGroupView `json:"assetGroupProductGroupView,omitempty"`
	// AssetGroupSignal: The asset group signal referenced in the query.
	AssetGroupSignal *GoogleAdsSearchads360V23Resources__AssetGroupSignal `json:"assetGroupSignal,omitempty"`
	// AssetGroupTopCombinationView: The asset group top combination view
	// referenced in the query.
	AssetGroupTopCombinationView *GoogleAdsSearchads360V23Resources__AssetGroupTopCombinationView `json:"assetGroupTopCombinationView,omitempty"`
	// AssetSet: The asset set referenced in the query.
	AssetSet *GoogleAdsSearchads360V23Resources__AssetSet `json:"assetSet,omitempty"`
	// AssetSetAsset: The asset set asset referenced in the query.
	AssetSetAsset *GoogleAdsSearchads360V23Resources__AssetSetAsset `json:"assetSetAsset,omitempty"`
	// AssetSetTypeView: The asset set type view referenced in the query.
	AssetSetTypeView *GoogleAdsSearchads360V23Resources__AssetSetTypeView `json:"assetSetTypeView,omitempty"`
	// Audience: The Audience referenced in the query.
	Audience *GoogleAdsSearchads360V23Resources__Audience `json:"audience,omitempty"`
	// BatchJob: The batch job referenced in the query.
	BatchJob *GoogleAdsSearchads360V23Resources__BatchJob `json:"batchJob,omitempty"`
	// BiddingDataExclusion: The bidding data exclusion referenced in the query.
	BiddingDataExclusion *GoogleAdsSearchads360V23Resources__BiddingDataExclusion `json:"biddingDataExclusion,omitempty"`
	// BiddingSeasonalityAdjustment: The bidding seasonality adjustment referenced
	// in the query.
	BiddingSeasonalityAdjustment *GoogleAdsSearchads360V23Resources__BiddingSeasonalityAdjustment `json:"biddingSeasonalityAdjustment,omitempty"`
	// BiddingStrategy: The bidding strategy referenced in the query.
	BiddingStrategy *GoogleAdsSearchads360V23Resources__BiddingStrategy `json:"biddingStrategy,omitempty"`
	// BiddingStrategySimulation: The bidding strategy simulation referenced in the
	// query.
	BiddingStrategySimulation *GoogleAdsSearchads360V23Resources__BiddingStrategySimulation `json:"biddingStrategySimulation,omitempty"`
	// BillingSetup: The billing setup referenced in the query.
	BillingSetup *GoogleAdsSearchads360V23Resources__BillingSetup `json:"billingSetup,omitempty"`
	// CallView: The call view referenced in the query.
	CallView *GoogleAdsSearchads360V23Resources__CallView `json:"callView,omitempty"`
	// Campaign: The campaign referenced in the query.
	Campaign *GoogleAdsSearchads360V23Resources__Campaign `json:"campaign,omitempty"`
	// CampaignAsset: The campaign asset referenced in the query.
	CampaignAsset *GoogleAdsSearchads360V23Resources__CampaignAsset `json:"campaignAsset,omitempty"`
	// CampaignAssetSet: The campaign asset set referenced in the query.
	CampaignAssetSet *GoogleAdsSearchads360V23Resources__CampaignAssetSet `json:"campaignAssetSet,omitempty"`
	// CampaignAudienceView: The campaign audience view referenced in the query.
	CampaignAudienceView *GoogleAdsSearchads360V23Resources__CampaignAudienceView `json:"campaignAudienceView,omitempty"`
	// CampaignBidModifier: The campaign bid modifier referenced in the query.
	CampaignBidModifier *GoogleAdsSearchads360V23Resources__CampaignBidModifier `json:"campaignBidModifier,omitempty"`
	// CampaignBudget: The campaign budget referenced in the query.
	CampaignBudget *GoogleAdsSearchads360V23Resources__CampaignBudget `json:"campaignBudget,omitempty"`
	// CampaignConversionGoal: The CampaignConversionGoal referenced in the query.
	CampaignConversionGoal *GoogleAdsSearchads360V23Resources__CampaignConversionGoal `json:"campaignConversionGoal,omitempty"`
	// CampaignCriterion: The campaign criterion referenced in the query.
	CampaignCriterion *GoogleAdsSearchads360V23Resources__CampaignCriterion `json:"campaignCriterion,omitempty"`
	// CampaignCustomizer: The campaign customizer referenced in the query.
	CampaignCustomizer *GoogleAdsSearchads360V23Resources__CampaignCustomizer `json:"campaignCustomizer,omitempty"`
	// CampaignDraft: The campaign draft referenced in the query.
	CampaignDraft *GoogleAdsSearchads360V23Resources__CampaignDraft `json:"campaignDraft,omitempty"`
	// CampaignEffectiveLabel: The campaign effective label referenced in the
	// query.
	CampaignEffectiveLabel *GoogleAdsSearchads360V23Resources__CampaignEffectiveLabel `json:"campaignEffectiveLabel,omitempty"`
	// CampaignGoalConfig: The campaign goal config referenced in the query.
	CampaignGoalConfig *GoogleAdsSearchads360V23Resources__CampaignGoalConfig `json:"campaignGoalConfig,omitempty"`
	// CampaignGroup: Campaign Group referenced in AWQL query.
	CampaignGroup *GoogleAdsSearchads360V23Resources__CampaignGroup `json:"campaignGroup,omitempty"`
	// CampaignLabel: The campaign label referenced in the query.
	CampaignLabel *GoogleAdsSearchads360V23Resources__CampaignLabel `json:"campaignLabel,omitempty"`
	// CampaignLifecycleGoal: The campaign lifecycle goal referenced in the query.
	CampaignLifecycleGoal *GoogleAdsSearchads360V23Resources__CampaignLifecycleGoal `json:"campaignLifecycleGoal,omitempty"`
	// CampaignSearchTermInsight: The campaign search term insight referenced in
	// the query.
	CampaignSearchTermInsight *GoogleAdsSearchads360V23Resources__CampaignSearchTermInsight `json:"campaignSearchTermInsight,omitempty"`
	// CampaignSearchTermView: The campaign-level search term view referenced in
	// the query.
	CampaignSearchTermView *GoogleAdsSearchads360V23Resources__CampaignSearchTermView `json:"campaignSearchTermView,omitempty"`
	// CampaignSharedSet: Campaign Shared Set referenced in AWQL query.
	CampaignSharedSet *GoogleAdsSearchads360V23Resources__CampaignSharedSet `json:"campaignSharedSet,omitempty"`
	// CampaignSimulation: The campaign simulation referenced in the query.
	CampaignSimulation *GoogleAdsSearchads360V23Resources__CampaignSimulation `json:"campaignSimulation,omitempty"`
	// CarrierConstant: The carrier constant referenced in the query.
	CarrierConstant *GoogleAdsSearchads360V23Resources__CarrierConstant `json:"carrierConstant,omitempty"`
	// CartDataSalesView: The cart data sales view referenced in the query.
	CartDataSalesView *GoogleAdsSearchads360V23Resources__CartDataSalesView `json:"cartDataSalesView,omitempty"`
	// ChangeEvent: The ChangeEvent referenced in the query.
	ChangeEvent *GoogleAdsSearchads360V23Resources__ChangeEvent `json:"changeEvent,omitempty"`
	// ChangeStatus: The ChangeStatus referenced in the query.
	ChangeStatus *GoogleAdsSearchads360V23Resources__ChangeStatus `json:"changeStatus,omitempty"`
	// ClickView: The ClickView referenced in the query.
	ClickView *GoogleAdsSearchads360V23Resources__ClickView `json:"clickView,omitempty"`
	// CombinedAudience: The CombinedAudience referenced in the query.
	CombinedAudience *GoogleAdsSearchads360V23Resources__CombinedAudience `json:"combinedAudience,omitempty"`
	// ContentCriterionView: The content criterion view referenced in the query.
	ContentCriterionView *GoogleAdsSearchads360V23Resources__ContentCriterionView `json:"contentCriterionView,omitempty"`
	// Conversion: The event level conversion referenced in the query.
	Conversion *GoogleAdsSearchads360V23Resources__Conversion `json:"conversion,omitempty"`
	// ConversionAction: The conversion action referenced in the query.
	ConversionAction *GoogleAdsSearchads360V23Resources__ConversionAction `json:"conversionAction,omitempty"`
	// ConversionCustomVariable: The conversion custom variable referenced in the
	// query.
	ConversionCustomVariable *GoogleAdsSearchads360V23Resources__ConversionCustomVariable `json:"conversionCustomVariable,omitempty"`
	// ConversionGoalCampaignConfig: The ConversionGoalCampaignConfig referenced in
	// the query.
	ConversionGoalCampaignConfig *GoogleAdsSearchads360V23Resources__ConversionGoalCampaignConfig `json:"conversionGoalCampaignConfig,omitempty"`
	// ConversionValueRule: The conversion value rule referenced in the query.
	ConversionValueRule *GoogleAdsSearchads360V23Resources__ConversionValueRule `json:"conversionValueRule,omitempty"`
	// ConversionValueRuleSet: The conversion value rule set referenced in the
	// query.
	ConversionValueRuleSet *GoogleAdsSearchads360V23Resources__ConversionValueRuleSet `json:"conversionValueRuleSet,omitempty"`
	// CurrencyConstant: The currency constant referenced in the query.
	CurrencyConstant *GoogleAdsSearchads360V23Resources__CurrencyConstant `json:"currencyConstant,omitempty"`
	// CustomAudience: The CustomAudience referenced in the query.
	CustomAudience *GoogleAdsSearchads360V23Resources__CustomAudience `json:"customAudience,omitempty"`
	// CustomColumns: The custom columns.
	CustomColumns []*GoogleAdsSearchads360V23Common__Value `json:"customColumns,omitempty"`
	// CustomConversionGoal: The CustomConversionGoal referenced in the query.
	CustomConversionGoal *GoogleAdsSearchads360V23Resources__CustomConversionGoal `json:"customConversionGoal,omitempty"`
	// CustomInterest: The CustomInterest referenced in the query.
	CustomInterest *GoogleAdsSearchads360V23Resources__CustomInterest `json:"customInterest,omitempty"`
	// Customer: The customer referenced in the query.
	Customer *GoogleAdsSearchads360V23Resources__Customer `json:"customer,omitempty"`
	// CustomerAsset: The customer asset referenced in the query.
	CustomerAsset *GoogleAdsSearchads360V23Resources__CustomerAsset `json:"customerAsset,omitempty"`
	// CustomerAssetSet: The customer asset set referenced in the query.
	CustomerAssetSet *GoogleAdsSearchads360V23Resources__CustomerAssetSet `json:"customerAssetSet,omitempty"`
	// CustomerClient: The CustomerClient referenced in the query.
	CustomerClient *GoogleAdsSearchads360V23Resources__CustomerClient `json:"customerClient,omitempty"`
	// CustomerClientLink: The CustomerClientLink referenced in the query.
	CustomerClientLink *GoogleAdsSearchads360V23Resources__CustomerClientLink `json:"customerClientLink,omitempty"`
	// CustomerConversionGoal: The CustomerConversionGoal referenced in the query.
	CustomerConversionGoal *GoogleAdsSearchads360V23Resources__CustomerConversionGoal `json:"customerConversionGoal,omitempty"`
	// CustomerCustomizer: The customer customizer referenced in the query.
	CustomerCustomizer *GoogleAdsSearchads360V23Resources__CustomerCustomizer `json:"customerCustomizer,omitempty"`
	// CustomerLabel: The customer label referenced in the query.
	CustomerLabel *GoogleAdsSearchads360V23Resources__CustomerLabel `json:"customerLabel,omitempty"`
	// CustomerLifecycleGoal: The customer lifecycle goal referenced in the query.
	CustomerLifecycleGoal *GoogleAdsSearchads360V23Resources__CustomerLifecycleGoal `json:"customerLifecycleGoal,omitempty"`
	// CustomerManagerLink: The CustomerManagerLink referenced in the query.
	CustomerManagerLink *GoogleAdsSearchads360V23Resources__CustomerManagerLink `json:"customerManagerLink,omitempty"`
	// CustomerNegativeCriterion: The customer negative criterion referenced in the
	// query.
	CustomerNegativeCriterion *GoogleAdsSearchads360V23Resources__CustomerNegativeCriterion `json:"customerNegativeCriterion,omitempty"`
	// CustomerSearchTermInsight: The customer search term insight referenced in
	// the query.
	CustomerSearchTermInsight *GoogleAdsSearchads360V23Resources__CustomerSearchTermInsight `json:"customerSearchTermInsight,omitempty"`
	// CustomerUserAccess: The CustomerUserAccess referenced in the query.
	CustomerUserAccess *GoogleAdsSearchads360V23Resources__CustomerUserAccess `json:"customerUserAccess,omitempty"`
	// CustomerUserAccessInvitation: The CustomerUserAccessInvitation referenced in
	// the query.
	CustomerUserAccessInvitation *GoogleAdsSearchads360V23Resources__CustomerUserAccessInvitation `json:"customerUserAccessInvitation,omitempty"`
	// CustomizerAttribute: The customizer attribute referenced in the query.
	CustomizerAttribute *GoogleAdsSearchads360V23Resources__CustomizerAttribute `json:"customizerAttribute,omitempty"`
	// DataLink: The data link referenced in the query.
	DataLink *GoogleAdsSearchads360V23Resources__DataLink `json:"dataLink,omitempty"`
	// DetailContentSuitabilityPlacementView: The detail content suitability
	// placement view referenced in the query.
	DetailContentSuitabilityPlacementView *GoogleAdsSearchads360V23Resources__DetailContentSuitabilityPlacementView `json:"detailContentSuitabilityPlacementView,omitempty"`
	// DetailPlacementView: The detail placement view referenced in the query.
	DetailPlacementView *GoogleAdsSearchads360V23Resources__DetailPlacementView `json:"detailPlacementView,omitempty"`
	// DetailedDemographic: The detailed demographic referenced in the query.
	DetailedDemographic *GoogleAdsSearchads360V23Resources__DetailedDemographic `json:"detailedDemographic,omitempty"`
	// DisplayKeywordView: The display keyword view referenced in the query.
	DisplayKeywordView *GoogleAdsSearchads360V23Resources__DisplayKeywordView `json:"displayKeywordView,omitempty"`
	// DistanceView: The distance view referenced in the query.
	DistanceView *GoogleAdsSearchads360V23Resources__DistanceView `json:"distanceView,omitempty"`
	// DynamicSearchAdsSearchTermView: The dynamic search ads search term view
	// referenced in the query.
	DynamicSearchAdsSearchTermView *GoogleAdsSearchads360V23Resources__DynamicSearchAdsSearchTermView `json:"dynamicSearchAdsSearchTermView,omitempty"`
	// ExpandedLandingPageView: The expanded landing page view referenced in the
	// query.
	ExpandedLandingPageView *GoogleAdsSearchads360V23Resources__ExpandedLandingPageView `json:"expandedLandingPageView,omitempty"`
	// Experiment: The experiment referenced in the query.
	Experiment *GoogleAdsSearchads360V23Resources__Experiment `json:"experiment,omitempty"`
	// ExperimentArm: The experiment arm referenced in the query.
	ExperimentArm *GoogleAdsSearchads360V23Resources__ExperimentArm `json:"experimentArm,omitempty"`
	// FinalUrlExpansionAssetView: The final url expansion asset view referenced in
	// the query.
	FinalUrlExpansionAssetView *GoogleAdsSearchads360V23Resources__FinalUrlExpansionAssetView `json:"finalUrlExpansionAssetView,omitempty"`
	// GenderView: The gender view referenced in the query.
	GenderView *GoogleAdsSearchads360V23Resources__GenderView `json:"genderView,omitempty"`
	// GeoTargetConstant: The geo target constant referenced in the query.
	GeoTargetConstant *GoogleAdsSearchads360V23Resources__GeoTargetConstant `json:"geoTargetConstant,omitempty"`
	// GeographicView: The geographic view referenced in the query.
	GeographicView *GoogleAdsSearchads360V23Resources__GeographicView `json:"geographicView,omitempty"`
	// Goal: The goal in the query.
	Goal *GoogleAdsSearchads360V23Resources__Goal `json:"goal,omitempty"`
	// GroupContentSuitabilityPlacementView: The group content suitability
	// placement view referenced in the query.
	GroupContentSuitabilityPlacementView *GoogleAdsSearchads360V23Resources__GroupContentSuitabilityPlacementView `json:"groupContentSuitabilityPlacementView,omitempty"`
	// GroupPlacementView: The group placement view referenced in the query.
	GroupPlacementView *GoogleAdsSearchads360V23Resources__GroupPlacementView `json:"groupPlacementView,omitempty"`
	// HotelGroupView: The hotel group view referenced in the query.
	HotelGroupView *GoogleAdsSearchads360V23Resources__HotelGroupView `json:"hotelGroupView,omitempty"`
	// HotelPerformanceView: The hotel performance view referenced in the query.
	HotelPerformanceView *GoogleAdsSearchads360V23Resources__HotelPerformanceView `json:"hotelPerformanceView,omitempty"`
	// HotelReconciliation: The hotel reconciliation referenced in the query.
	HotelReconciliation *GoogleAdsSearchads360V23Resources__HotelReconciliation `json:"hotelReconciliation,omitempty"`
	// IncomeRangeView: The income range view referenced in the query.
	IncomeRangeView *GoogleAdsSearchads360V23Resources__IncomeRangeView `json:"incomeRangeView,omitempty"`
	// KeywordPlan: The keyword plan referenced in the query.
	KeywordPlan *GoogleAdsSearchads360V23Resources__KeywordPlan `json:"keywordPlan,omitempty"`
	// KeywordPlanAdGroup: The keyword plan ad group referenced in the query.
	KeywordPlanAdGroup *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroup `json:"keywordPlanAdGroup,omitempty"`
	// KeywordPlanAdGroupKeyword: The keyword plan ad group referenced in the
	// query.
	KeywordPlanAdGroupKeyword *GoogleAdsSearchads360V23Resources__KeywordPlanAdGroupKeyword `json:"keywordPlanAdGroupKeyword,omitempty"`
	// KeywordPlanCampaign: The keyword plan campaign referenced in the query.
	KeywordPlanCampaign *GoogleAdsSearchads360V23Resources__KeywordPlanCampaign `json:"keywordPlanCampaign,omitempty"`
	// KeywordPlanCampaignKeyword: The keyword plan campaign keyword referenced in
	// the query.
	KeywordPlanCampaignKeyword *GoogleAdsSearchads360V23Resources__KeywordPlanCampaignKeyword `json:"keywordPlanCampaignKeyword,omitempty"`
	// KeywordThemeConstant: The keyword theme constant referenced in the query.
	KeywordThemeConstant *GoogleAdsSearchads360V23Resources__KeywordThemeConstant `json:"keywordThemeConstant,omitempty"`
	// KeywordView: The keyword view referenced in the query.
	KeywordView *GoogleAdsSearchads360V23Resources__KeywordView `json:"keywordView,omitempty"`
	// Label: The label referenced in the query.
	Label *GoogleAdsSearchads360V23Resources__Label `json:"label,omitempty"`
	// LandingPageView: The landing page view referenced in the query.
	LandingPageView *GoogleAdsSearchads360V23Resources__LandingPageView `json:"landingPageView,omitempty"`
	// LanguageConstant: The language constant referenced in the query.
	LanguageConstant *GoogleAdsSearchads360V23Resources__LanguageConstant `json:"languageConstant,omitempty"`
	// LeadFormSubmissionData: The lead form user submission referenced in the
	// query.
	LeadFormSubmissionData *GoogleAdsSearchads360V23Resources__LeadFormSubmissionData `json:"leadFormSubmissionData,omitempty"`
	// LifeEvent: The life event referenced in the query.
	LifeEvent *GoogleAdsSearchads360V23Resources__LifeEvent `json:"lifeEvent,omitempty"`
	// LocalServicesEmployee: The local services employee referenced in the query.
	LocalServicesEmployee *GoogleAdsSearchads360V23Resources__LocalServicesEmployee `json:"localServicesEmployee,omitempty"`
	// LocalServicesLead: The local services lead referenced in the query.
	LocalServicesLead *GoogleAdsSearchads360V23Resources__LocalServicesLead `json:"localServicesLead,omitempty"`
	// LocalServicesLeadConversation: The local services lead
	// conversationreferenced in the query.
	LocalServicesLeadConversation *GoogleAdsSearchads360V23Resources__LocalServicesLeadConversation `json:"localServicesLeadConversation,omitempty"`
	// LocalServicesVerificationArtifact: The local services verification artifact
	// referenced in the query.
	LocalServicesVerificationArtifact *GoogleAdsSearchads360V23Resources__LocalServicesVerificationArtifact `json:"localServicesVerificationArtifact,omitempty"`
	// LocationInterestView: The location interest view referenced in the query.
	LocationInterestView *GoogleAdsSearchads360V23Resources__LocationInterestView `json:"locationInterestView,omitempty"`
	// LocationView: The location view referenced in the query.
	LocationView *GoogleAdsSearchads360V23Resources__LocationView `json:"locationView,omitempty"`
	// ManagedPlacementView: The managed placement view referenced in the query.
	ManagedPlacementView *GoogleAdsSearchads360V23Resources__ManagedPlacementView `json:"managedPlacementView,omitempty"`
	// MatchedLocationInterestView: The matched location interest view referenced
	// in the query.
	MatchedLocationInterestView *GoogleAdsSearchads360V23Resources__MatchedLocationInterestView `json:"matchedLocationInterestView,omitempty"`
	// MediaFile: The media file referenced in the query.
	MediaFile *GoogleAdsSearchads360V23Resources__MediaFile `json:"mediaFile,omitempty"`
	// Metrics: The metrics.
	Metrics *GoogleAdsSearchads360V23Common__Metrics `json:"metrics,omitempty"`
	// MobileAppCategoryConstant: The mobile app category constant referenced in
	// the query.
	MobileAppCategoryConstant *GoogleAdsSearchads360V23Resources__MobileAppCategoryConstant `json:"mobileAppCategoryConstant,omitempty"`
	// MobileDeviceConstant: The mobile device constant referenced in the query.
	MobileDeviceConstant *GoogleAdsSearchads360V23Resources__MobileDeviceConstant `json:"mobileDeviceConstant,omitempty"`
	// OfflineConversionUploadClientSummary: Offline conversion upload summary at
	// customer level.
	OfflineConversionUploadClientSummary *GoogleAdsSearchads360V23Resources__OfflineConversionUploadClientSummary `json:"offlineConversionUploadClientSummary,omitempty"`
	// OfflineConversionUploadConversionActionSummary: Offline conversion upload
	// summary at conversion type level.
	OfflineConversionUploadConversionActionSummary *GoogleAdsSearchads360V23Resources__OfflineConversionUploadConversionActionSummary `json:"offlineConversionUploadConversionActionSummary,omitempty"`
	// OfflineUserDataJob: The offline user data job referenced in the query.
	OfflineUserDataJob *GoogleAdsSearchads360V23Resources__OfflineUserDataJob `json:"offlineUserDataJob,omitempty"`
	// OperatingSystemVersionConstant: The operating system version constant
	// referenced in the query.
	OperatingSystemVersionConstant *GoogleAdsSearchads360V23Resources__OperatingSystemVersionConstant `json:"operatingSystemVersionConstant,omitempty"`
	// PaidOrganicSearchTermView: The paid organic search term view referenced in
	// the query.
	PaidOrganicSearchTermView *GoogleAdsSearchads360V23Resources__PaidOrganicSearchTermView `json:"paidOrganicSearchTermView,omitempty"`
	// ParentalStatusView: The parental status view referenced in the query.
	ParentalStatusView *GoogleAdsSearchads360V23Resources__ParentalStatusView `json:"parentalStatusView,omitempty"`
	// PerStoreView: The per store view referenced in the query.
	PerStoreView *GoogleAdsSearchads360V23Resources__PerStoreView `json:"perStoreView,omitempty"`
	// PerformanceMaxPlacementView: The performance max placement view referenced
	// in the query.
	PerformanceMaxPlacementView *GoogleAdsSearchads360V23Resources__PerformanceMaxPlacementView `json:"performanceMaxPlacementView,omitempty"`
	// ProductCategoryConstant: The product category referenced in the query.
	ProductCategoryConstant *GoogleAdsSearchads360V23Resources__ProductCategoryConstant `json:"productCategoryConstant,omitempty"`
	// ProductGroupView: The product group view referenced in the query.
	ProductGroupView *GoogleAdsSearchads360V23Resources__ProductGroupView `json:"productGroupView,omitempty"`
	// ProductLink: The product link referenced in the query.
	ProductLink *GoogleAdsSearchads360V23Resources__ProductLink `json:"productLink,omitempty"`
	// ProductLinkInvitation: The product link invitation in the query.
	ProductLinkInvitation *GoogleAdsSearchads360V23Resources__ProductLinkInvitation `json:"productLinkInvitation,omitempty"`
	// QualifyingQuestion: The qualifying question referenced in the query.
	QualifyingQuestion *GoogleAdsSearchads360V23Resources__QualifyingQuestion `json:"qualifyingQuestion,omitempty"`
	// Recommendation: The recommendation referenced in the query.
	Recommendation *GoogleAdsSearchads360V23Resources__Recommendation `json:"recommendation,omitempty"`
	// RecommendationSubscription: The recommendation subscription referenced in
	// the query.
	RecommendationSubscription *GoogleAdsSearchads360V23Resources__RecommendationSubscription `json:"recommendationSubscription,omitempty"`
	// RemarketingAction: The remarketing action referenced in the query.
	RemarketingAction *GoogleAdsSearchads360V23Resources__RemarketingAction `json:"remarketingAction,omitempty"`
	// SearchAds360Campaign: The Search Ads 360 campaign referenced in the query.
	SearchAds360Campaign *GoogleAdsSearchads360V23Resources__SearchAds360Campaign `json:"searchAds360Campaign,omitempty"`
	// SearchTermView: The search term view referenced in the query.
	SearchTermView *GoogleAdsSearchads360V23Resources__SearchTermView `json:"searchTermView,omitempty"`
	// Segments: The segments.
	Segments *GoogleAdsSearchads360V23Common__Segments `json:"segments,omitempty"`
	// SharedCriterion: The shared set referenced in the query.
	SharedCriterion *GoogleAdsSearchads360V23Resources__SharedCriterion `json:"sharedCriterion,omitempty"`
	// SharedSet: The shared set referenced in the query.
	SharedSet *GoogleAdsSearchads360V23Resources__SharedSet `json:"sharedSet,omitempty"`
	// ShoppingPerformanceView: The shopping performance view referenced in the
	// query.
	ShoppingPerformanceView *GoogleAdsSearchads360V23Resources__ShoppingPerformanceView `json:"shoppingPerformanceView,omitempty"`
	// ShoppingProduct: The shopping product referenced in the query.
	ShoppingProduct *GoogleAdsSearchads360V23Resources__ShoppingProduct `json:"shoppingProduct,omitempty"`
	// SmartCampaignSearchTermView: The Smart campaign search term view referenced
	// in the query.
	SmartCampaignSearchTermView *GoogleAdsSearchads360V23Resources__SmartCampaignSearchTermView `json:"smartCampaignSearchTermView,omitempty"`
	// SmartCampaignSetting: The Smart campaign setting referenced in the query.
	SmartCampaignSetting *GoogleAdsSearchads360V23Resources__SmartCampaignSetting `json:"smartCampaignSetting,omitempty"`
	// TargetingExpansionView: The Targeting expansion view referenced in the
	// query.
	TargetingExpansionView *GoogleAdsSearchads360V23Resources__TargetingExpansionView `json:"targetingExpansionView,omitempty"`
	// ThirdPartyAppAnalyticsLink: The AccountLink referenced in the query.
	ThirdPartyAppAnalyticsLink *GoogleAdsSearchads360V23Resources__ThirdPartyAppAnalyticsLink `json:"thirdPartyAppAnalyticsLink,omitempty"`
	// TopicConstant: The topic constant referenced in the query.
	TopicConstant *GoogleAdsSearchads360V23Resources__TopicConstant `json:"topicConstant,omitempty"`
	// TopicView: The topic view referenced in the query.
	TopicView *GoogleAdsSearchads360V23Resources__TopicView `json:"topicView,omitempty"`
	// TravelActivityGroupView: The travel activity group view referenced in the
	// query.
	TravelActivityGroupView *GoogleAdsSearchads360V23Resources__TravelActivityGroupView `json:"travelActivityGroupView,omitempty"`
	// TravelActivityPerformanceView: The travel activity performance view
	// referenced in the query.
	TravelActivityPerformanceView *GoogleAdsSearchads360V23Resources__TravelActivityPerformanceView `json:"travelActivityPerformanceView,omitempty"`
	// UserInterest: The user interest referenced in the query.
	UserInterest *GoogleAdsSearchads360V23Resources__UserInterest `json:"userInterest,omitempty"`
	// UserList: The user list referenced in the query.
	UserList *GoogleAdsSearchads360V23Resources__UserList `json:"userList,omitempty"`
	// UserListCustomerType: The user list customer type in the query.
	UserListCustomerType *GoogleAdsSearchads360V23Resources__UserListCustomerType `json:"userListCustomerType,omitempty"`
	// UserLocationView: The user location view referenced in the query.
	UserLocationView *GoogleAdsSearchads360V23Resources__UserLocationView `json:"userLocationView,omitempty"`
	// Video: The video referenced in the query.
	Video *GoogleAdsSearchads360V23Resources__Video `json:"video,omitempty"`
	// Visit: The event level visit referenced in the query.
	Visit *GoogleAdsSearchads360V23Resources__Visit `json:"visit,omitempty"`
	// WebpageView: The webpage view referenced in the query.
	WebpageView *GoogleAdsSearchads360V23Resources__WebpageView `json:"webpageView,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccessibleBiddingStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessibleBiddingStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchAds360Row) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchAds360Row
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest: Request
// message for SearchAds360FieldService.SearchSearchAds360Fields.
type GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest struct {
	// PageSize: Number of elements to retrieve in a single page. When too large a
	// page is requested, the server may decide to further limit the number of
	// returned resources.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: Token of the page to retrieve. If not specified, the first page
	// of results will be returned. Use the value obtained from `next_page_token`
	// in the previous response in order to request the next page of results.
	PageToken string `json:"pageToken,omitempty"`
	// Query: Required. The query string.
	Query string `json:"query,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse: Response
// message for SearchAds360FieldService.SearchSearchAds360Fields.
type GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse struct {
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Results: The list of fields that matched the query.
	Results []*GoogleAdsSearchads360V23Resources__SearchAds360Field `json:"results,omitempty"`
	// TotalResultsCount: Total number of results that match the query ignoring the
	// LIMIT clause.
	TotalResultsCount int64 `json:"totalResultsCount,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchSearchAds360Request: Request message
// for SearchAds360Service.Search.
type GoogleAdsSearchads360V23Services__SearchSearchAds360Request struct {
	// PageSize: Number of elements to retrieve in a single page. When too large a
	// page is requested, the server may decide to further limit the number of
	// returned resources.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: Token of the page to retrieve. If not specified, the first page
	// of results will be returned. Use the value obtained from `next_page_token`
	// in the previous response in order to request the next page of results.
	PageToken string `json:"pageToken,omitempty"`
	// Query: Required. The query string.
	Query string `json:"query,omitempty"`
	// SearchSettings: Settings that allow users to specify request count, summary
	// row, and results behavior.
	SearchSettings *GoogleAdsSearchads360V23Services__SearchSettings `json:"searchSettings,omitempty"`
	// ValidateOnly: If true, the request is validated but not executed.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchSearchAds360Request) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchSearchAds360Request
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchSearchAds360Response: Response
// message for SearchAds360Service.Search.
type GoogleAdsSearchads360V23Services__SearchSearchAds360Response struct {
	// ConversionCustomDimensionHeaders: The headers of the conversion custom
	// dimensions in the results.
	ConversionCustomDimensionHeaders []*GoogleAdsSearchads360V23Services__ConversionCustomDimensionHeader `json:"conversionCustomDimensionHeaders,omitempty"`
	// ConversionCustomMetricHeaders: The headers of the conversion custom metrics
	// in the results.
	ConversionCustomMetricHeaders []*GoogleAdsSearchads360V23Services__ConversionCustomMetricHeader `json:"conversionCustomMetricHeaders,omitempty"`
	// CustomColumnHeaders: The headers of the custom columns in the results.
	CustomColumnHeaders []*GoogleAdsSearchads360V23Services__CustomColumnHeader `json:"customColumnHeaders,omitempty"`
	// FieldMask: FieldMask that represents what fields were requested by the user.
	FieldMask string `json:"fieldMask,omitempty"`
	// MetricAttributes: The metric attributes of the metrics in the results.
	MetricAttributes []*GoogleAdsSearchads360V23Services__MetricAttributes `json:"metricAttributes,omitempty"`
	// NextPageToken: Pagination token used to retrieve the next page of results.
	// Pass the content of this string as the `page_token` attribute of the next
	// request. `next_page_token` is not returned for the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// QueryResourceConsumption: The amount of resources consumed to serve the
	// query.
	QueryResourceConsumption int64 `json:"queryResourceConsumption,omitempty,string"`
	// RawEventConversionDimensionHeaders: The headers of the raw event conversion
	// dimensions in the results.
	RawEventConversionDimensionHeaders []*GoogleAdsSearchads360V23Services__RawEventConversionDimensionHeader `json:"rawEventConversionDimensionHeaders,omitempty"`
	// RawEventConversionMetricHeaders: The headers of the raw event conversion
	// metrics in the results.
	RawEventConversionMetricHeaders []*GoogleAdsSearchads360V23Services__RawEventConversionMetricHeader `json:"rawEventConversionMetricHeaders,omitempty"`
	// Results: The list of rows that matched the query.
	Results []*GoogleAdsSearchads360V23Services__SearchAds360Row `json:"results,omitempty"`
	// SummaryRow: Summary row that contains summary of metrics in results. Summary
	// of metrics means aggregation of metrics across all results, here aggregation
	// could be sum, average, rate, etc.
	SummaryRow *GoogleAdsSearchads360V23Services__SearchAds360Row `json:"summaryRow,omitempty"`
	// TotalResultsCount: Total number of results that match the query ignoring the
	// LIMIT clause.
	TotalResultsCount int64 `json:"totalResultsCount,omitempty,string"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "ConversionCustomDimensionHeaders") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ConversionCustomDimensionHeaders") to include in API requests with the JSON
	// null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchSearchAds360Response) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchSearchAds360Response
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SearchSettings: Indicates search settings
// in request parameter.
type GoogleAdsSearchads360V23Services__SearchSettings struct {
	// OmitResults: If true, results will be excluded from the response. Otherwise,
	// results will be returned. Default is false.
	OmitResults bool `json:"omitResults,omitempty"`
	// ReturnSummaryRow: If true, summary row will be included in the response and
	// sent in a response by itself after all other query results are returned.
	// Default is false.
	ReturnSummaryRow bool `json:"returnSummaryRow,omitempty"`
	// ReturnTotalResultsCount: If true, the total number of results that match the
	// query ignoring the LIMIT clause will be included in the response. Default is
	// false.
	ReturnTotalResultsCount bool `json:"returnTotalResultsCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OmitResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OmitResults") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SearchSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SearchSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SharedCriterionOperation: A single
// operation (create, remove) on an shared criterion.
type GoogleAdsSearchads360V23Services__SharedCriterionOperation struct {
	// Create: Create operation: No resource name is expected for the new shared
	// criterion.
	Create *GoogleAdsSearchads360V23Resources__SharedCriterion `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed shared criterion
	// is expected, in this format:
	// `customers/{customer_id}/sharedCriteria/{shared_set_id}~{criterion_id}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SharedCriterionOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SharedCriterionOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SharedSetOperation: A single operation
// (create, update, remove) on an shared set.
type GoogleAdsSearchads360V23Services__SharedSetOperation struct {
	// Create: Create operation: No resource name is expected for the new shared
	// set.
	Create *GoogleAdsSearchads360V23Resources__SharedSet `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed shared set is
	// expected, in this format:
	// `customers/{customer_id}/sharedSets/{shared_set_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The shared set is expected to have a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__SharedSet `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SharedSetOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SharedSetOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SiteSeed: Site Seed
type GoogleAdsSearchads360V23Services__SiteSeed struct {
	// Site: The domain name of the site. If the customer requesting the ideas
	// doesn't own the site provided only public information is returned.
	Site string `json:"site,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Site") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Site") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SiteSeed) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SiteSeed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails: Details
// related to Smart campaigns that are eligible to serve.
type GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails struct {
	// EndDateTime: The timestamp of when the campaign will end, if applicable. The
	// timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss”
	// format.
	EndDateTime string `json:"endDateTime,omitempty"`
	// LastImpressionDateTime: The timestamp of the last impression observed in the
	// last 48 hours for this campaign. The timestamp is in the customer’s
	// timezone and in “yyyy-MM-dd HH:mm:ss” format.
	LastImpressionDateTime string `json:"lastImpressionDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndDateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignEligibleDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails: Details related
// to Smart campaigns that have ended.
type GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails struct {
	// EndDateTime: The timestamp of when the campaign ended. The timestamp is in
	// the customer’s timezone and in “yyyy-MM-dd HH:mm:ss” format.
	EndDateTime string `json:"endDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndDateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignEndedDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails: Details
// related to Smart campaigns that are not eligible to serve.
type GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails struct {
	// NotEligibleReason: The reason why the Smart campaign is not eligible to
	// serve.
	//
	// Possible values:
	//   "UNSPECIFIED" - The status has not been specified.
	//   "UNKNOWN" - The received value is not known in this version. This is a
	// response-only value.
	//   "ACCOUNT_ISSUE" - The campaign is not eligible to serve because of an
	// issue with the account.
	//   "BILLING_ISSUE" - The campaign is not eligible to serve because of a
	// payment issue.
	//   "BUSINESS_PROFILE_LOCATION_REMOVED" - The business profile location
	// associated with the campaign has been removed.
	//   "ALL_ADS_DISAPPROVED" - All system-generated ads have been disapproved.
	// Consult the policy_summary field in the AdGroupAd resource for more details.
	NotEligibleReason string `json:"notEligibleReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NotEligibleReason") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NotEligibleReason") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignNotEligibleDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails: Details
// related to paused Smart campaigns.
type GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails struct {
	// PausedDateTime: The timestamp of when the campaign was last paused. The
	// timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss”
	// format.
	PausedDateTime string `json:"pausedDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PausedDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PausedDateTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignPausedDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails: Details
// related to removed Smart campaigns.
type GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails struct {
	// RemovedDateTime: The timestamp of when the campaign was removed. The
	// timestamp is in the customer’s timezone and in “yyyy-MM-dd HH:mm:ss”
	// format.
	RemovedDateTime string `json:"removedDateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RemovedDateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RemovedDateTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignRemovedDetails
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation: A single
// operation to update Smart campaign settings for a campaign.
type GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation struct {
	// Update: Update operation: The Smart campaign setting must specify a valid
	// resource name.
	Update *GoogleAdsSearchads360V23Resources__SmartCampaignSetting `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Update") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Update") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignSettingOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo: Information
// needed to get suggestion for Smart Campaign. More information provided will
// help the system to derive better suggestions.
type GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo struct {
	// AdSchedules: Optional. The business ad schedule.
	AdSchedules []*GoogleAdsSearchads360V23Common__AdScheduleInfo `json:"adSchedules,omitempty"`
	// BusinessContext: Optional. Context describing the business to advertise.
	BusinessContext *GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoBusinessContext `json:"businessContext,omitempty"`
	// BusinessProfileLocation: Optional. The resource name of a Business Profile
	// location. Business Profile location resource names can be fetched through
	// the Business Profile API and adhere to the following format:
	// `locations/{locationId}`. See the [Business Profile API]
	// (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
	// for additional details.
	BusinessProfileLocation string `json:"businessProfileLocation,omitempty"`
	// FinalUrl: Optional. Landing page URL of the campaign.
	FinalUrl string `json:"finalUrl,omitempty"`
	// KeywordThemes: Optional. Smart campaign keyword themes. This field may
	// greatly improve suggestion accuracy and we recommend always setting it if
	// possible.
	KeywordThemes []*GoogleAdsSearchads360V23Common__KeywordThemeInfo `json:"keywordThemes,omitempty"`
	// LanguageCode: Optional. The two letter advertising language for the Smart
	// campaign to be constructed, default to 'en' if not set.
	LanguageCode string `json:"languageCode,omitempty"`
	// LocationList: Optional. The targeting geo location by locations.
	LocationList *GoogleAdsSearchads360V23ServicesSmartCampaignSuggestionInfoLocationList `json:"locationList,omitempty"`
	// Proximity: Optional. The targeting geo location by proximity.
	Proximity *GoogleAdsSearchads360V23Common__ProximityInfo `json:"proximity,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdSchedules") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdSchedules") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest: Request
// message for StartIdentityVerification.
type GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest struct {
	// VerificationProgram: Required. The verification program type for which we
	// want to start the verification.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "ADVERTISER_IDENTITY_VERIFICATION" - Advertiser submits documents to
	// verify their identity.
	VerificationProgram string `json:"verificationProgram,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VerificationProgram") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VerificationProgram") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest: Request
// message for GeoTargetConstantService.SuggestGeoTargetConstants.
type GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest struct {
	// CountryCode: Returned geo targets are restricted to this country code.
	CountryCode string `json:"countryCode,omitempty"`
	// GeoTargets: The geo target constant resource names to filter by.
	GeoTargets *GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestGeoTargets `json:"geoTargets,omitempty"`
	// Locale: If possible, returned geo targets are translated using this locale.
	// If not, en is used by default. This is also used as a hint for returned geo
	// targets.
	Locale string `json:"locale,omitempty"`
	// LocationNames: The location names to search by. At most 25 names can be set.
	LocationNames *GoogleAdsSearchads360V23ServicesSuggestGeoTargetConstantsRequestLocationNames `json:"locationNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse:
// Response message for GeoTargetConstantService.SuggestGeoTargetConstants.
type GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse struct {
	// GeoTargetConstantSuggestions: Geo target constant suggestions.
	GeoTargetConstantSuggestions []*GoogleAdsSearchads360V23Services__GeoTargetConstantSuggestion `json:"geoTargetConstantSuggestions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "GeoTargetConstantSuggestions") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GeoTargetConstantSuggestions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest:
// Request message for
// KeywordThemeConstantService.SuggestKeywordThemeConstants.
type GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest struct {
	// CountryCode: Upper-case, two-letter country code as defined by ISO-3166.
	// This for refining the scope of the query, default to 'US' if not set.
	CountryCode string `json:"countryCode,omitempty"`
	// LanguageCode: The two letter language code for get corresponding keyword
	// theme for refining the scope of the query, default to 'en' if not set.
	LanguageCode string `json:"languageCode,omitempty"`
	// QueryText: The query text of a keyword theme that will be used to map to
	// similar keyword themes. For example, "plumber" or "roofer".
	QueryText string `json:"queryText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CountryCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CountryCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse:
// Response message for
// KeywordThemeConstantService.SuggestKeywordThemeConstants.
type GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse struct {
	// KeywordThemeConstants: Smart Campaign keyword theme suggestions.
	KeywordThemeConstants []*GoogleAdsSearchads360V23Resources__KeywordThemeConstant `json:"keywordThemeConstants,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "KeywordThemeConstants") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KeywordThemeConstants") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest: Request
// message for SmartCampaignSuggestService.SuggestKeywordThemes.
type GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest struct {
	// SuggestionInfo: Required. Information to get keyword theme suggestions.
	// Required fields: * suggestion_info.final_url * suggestion_info.language_code
	// * suggestion_info.geo_target Recommended fields: *
	// suggestion_info.business_setting
	SuggestionInfo *GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo `json:"suggestionInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SuggestionInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SuggestionInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse: Response
// message for SmartCampaignSuggestService.SuggestKeywordThemes.
type GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse struct {
	// KeywordThemes: Smart campaign keyword theme suggestions.
	KeywordThemes []*GoogleAdsSearchads360V23ServicesSuggestKeywordThemesResponseKeywordTheme `json:"keywordThemes,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "KeywordThemes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KeywordThemes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest: Request
// message for SmartCampaignSuggestService.SuggestSmartCampaignAd.
type GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest struct {
	// SuggestionInfo: Required. Inputs used to suggest a Smart campaign ad.
	// Required fields: final_url, language_code, keyword_themes. Optional but
	// recommended fields to improve the quality of the suggestion:
	// business_setting and geo_target.
	SuggestionInfo *GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo `json:"suggestionInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SuggestionInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SuggestionInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse: Response
// message for SmartCampaignSuggestService.SuggestSmartCampaignAd.
type GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse struct {
	// AdInfo: Optional. Ad info includes 3 creative headlines and 2 creative
	// descriptions.
	AdInfo *GoogleAdsSearchads360V23Common__SmartCampaignAdInfo `json:"adInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AdInfo") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest:
// Request message for
// SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions.
type GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest struct {
	// Campaign: Required. The resource name of the campaign to get suggestion for.
	Campaign string `json:"campaign,omitempty"`
	// SuggestionInfo: Required. Information needed to get budget options
	SuggestionInfo *GoogleAdsSearchads360V23Services__SmartCampaignSuggestionInfo `json:"suggestionInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Campaign") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Campaign") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse:
// Response message for
// SmartCampaignSuggestService.SuggestSmartCampaignBudgetOptions. Depending on
// whether the system could suggest the options, either all of the options or
// none of them might be returned.
type GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse struct {
	// High: Optional. The highest budget option.
	High *GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption `json:"high,omitempty"`
	// Low: Optional. The lowest budget option.
	Low *GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption `json:"low,omitempty"`
	// Recommended: Optional. The recommended budget option.
	Recommended *GoogleAdsSearchads360V23ServicesSuggestSmartCampaignBudgetOptionsResponseBudgetOption `json:"recommended,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "High") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "High") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest: Request
// message for TravelAssetSuggestionService.SuggestTravelAssets.
type GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest struct {
	// LanguageOption: Required. The language specifications in BCP 47 format (for
	// example, en-US, zh-CN, etc.) for the asset suggestions. Text will be in this
	// language. Usually matches one of the campaign target languages.
	LanguageOption string `json:"languageOption,omitempty"`
	// PlaceIds: The Google Maps Place IDs of hotels for which assets are
	// requested. See https://developers.google.com/places/web-service/place-id for
	// more information.
	PlaceIds []string `json:"placeIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageOption") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageOption") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse: Response
// message for TravelAssetSuggestionService.SuggestTravelAssets.
type GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse struct {
	// HotelAssetSuggestions: Asset suggestions for each place ID submitted in the
	// request.
	HotelAssetSuggestions []*GoogleAdsSearchads360V23Services__HotelAssetSuggestion `json:"hotelAssetSuggestions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "HotelAssetSuggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HotelAssetSuggestions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SurfaceTargeting: Container for surfaces
// for a product. Surfaces refer to the available types of ad inventories such
// as In-Feed, In-Stream, and Shorts.
type GoogleAdsSearchads360V23Services__SurfaceTargeting struct {
	// Surfaces: List of surfaces available to target.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "DISCOVER_FEED" - Discover feed ad surface.
	//   "GMAIL" - Gmail ad surface.
	//   "IN_FEED" - In-Feed ad surface.
	//   "IN_STREAM_BUMPER" - In-Stream bumper ad surface.
	//   "IN_STREAM_NON_SKIPPABLE" - In-Stream non-skippable ad surface.
	//   "IN_STREAM_SKIPPABLE" - In-Stream skippable ad surface.
	//   "SHORTS" - Shorts ad surface.
	Surfaces []string `json:"surfaces,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Surfaces") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Surfaces") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SurfaceTargeting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SurfaceTargeting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations: The surface
// targeting combinations available for an ad product.
type GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations struct {
	// AvailableTargetingCombinations: Available surface target combinations for
	// the ad product.
	AvailableTargetingCombinations []*GoogleAdsSearchads360V23Services__SurfaceTargeting `json:"availableTargetingCombinations,omitempty"`
	// DefaultTargeting: Default surface targeting applied to the ad product.
	DefaultTargeting *GoogleAdsSearchads360V23Services__SurfaceTargeting `json:"defaultTargeting,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AvailableTargetingCombinations") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AvailableTargetingCombinations")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SurfaceTargetingCombinations
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SurveyDissatisfied: Details about various
// factors for not being satisfied with the lead.
type GoogleAdsSearchads360V23Services__SurveyDissatisfied struct {
	// OtherReasonComment: Optional. Provider's free form comments. This field is
	// required when OTHER_DISSATISFIED_REASON is selected as the reason.
	OtherReasonComment string `json:"otherReasonComment,omitempty"`
	// SurveyDissatisfiedReason: Required. Provider's reason for not being
	// satisfied with the lead.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OTHER_DISSATISFIED_REASON" - Other reasons.
	//   "GEO_MISMATCH" - Lead was for a service that does not match the business'
	// service area.
	//   "JOB_TYPE_MISMATCH" - Lead was for a service that is not offered by the
	// business.
	//   "NOT_READY_TO_BOOK" - Lead was by a customer that was not ready to book.
	//   "SPAM" - Lead was a spam. Example: lead was from a bot, silent called,
	// scam, etc.
	//   "DUPLICATE" - Lead was a duplicate of another lead that is, customer
	// contacted the business more than once.
	//   "SOLICITATION" - Lead due to solicitation. Example: a person trying to get
	// a job or selling a product, etc.
	SurveyDissatisfiedReason string `json:"surveyDissatisfiedReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OtherReasonComment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OtherReasonComment") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SurveyDissatisfied) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SurveyDissatisfied
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__SurveySatisfied: Details about various
// factors for being satisfied with the lead.
type GoogleAdsSearchads360V23Services__SurveySatisfied struct {
	// OtherReasonComment: Optional. Provider's free form comments. This field is
	// required when OTHER_SATISFIED_REASON is selected as the reason.
	OtherReasonComment string `json:"otherReasonComment,omitempty"`
	// SurveySatisfiedReason: Required. Provider's reason for being satisfied with
	// the lead.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "OTHER_SATISFIED_REASON" - Other reasons.
	//   "BOOKED_CUSTOMER" - Lead converted into a booked customer or client.
	//   "LIKELY_BOOKED_CUSTOMER" - Lead could convert into a booked customer or
	// client soon.
	//   "SERVICE_RELATED" - Lead was related to the services the business offers.
	//   "HIGH_VALUE_SERVICE" - Lead was for a service that generates high value
	// for the business.
	SurveySatisfiedReason string `json:"surveySatisfiedReason,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OtherReasonComment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OtherReasonComment") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__SurveySatisfied) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__SurveySatisfied
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__TargetFrequencySettings: Target Frequency
// settings for a supported product.
type GoogleAdsSearchads360V23Services__TargetFrequencySettings struct {
	// TargetFrequency: Required. The target frequency goal per selected time unit.
	TargetFrequency int64 `json:"targetFrequency,omitempty"`
	// TimeUnit: Required. The time unit used to describe the time frame for
	// target_frequency.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "WEEKLY" - Optimize bidding to reach Target Frequency in a week.
	//   "MONTHLY" - Optimize bidding to reach Target Frequency in a month.
	TimeUnit string `json:"timeUnit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetFrequency") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetFrequency") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__TargetFrequencySettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__TargetFrequencySettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__Targeting: The targeting for which traffic
// metrics will be reported.
type GoogleAdsSearchads360V23Services__Targeting struct {
	// AgeRange: Targeted age range. An unset value is equivalent to targeting all
	// ages.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "AGE_RANGE_18_24" - Between 18 and 24 years old.
	//   "AGE_RANGE_18_34" - Between 18 and 34 years old.
	//   "AGE_RANGE_18_44" - Between 18 and 44 years old.
	//   "AGE_RANGE_18_49" - Between 18 and 49 years old.
	//   "AGE_RANGE_18_54" - Between 18 and 54 years old.
	//   "AGE_RANGE_18_64" - Between 18 and 64 years old.
	//   "AGE_RANGE_18_65_UP" - Between 18 and 65+ years old.
	//   "AGE_RANGE_21_34" - Between 21 and 34 years old.
	//   "AGE_RANGE_25_34" - Between 25 and 34 years old.
	//   "AGE_RANGE_25_44" - Between 25 and 44 years old.
	//   "AGE_RANGE_25_49" - Between 25 and 49 years old.
	//   "AGE_RANGE_25_54" - Between 25 and 54 years old.
	//   "AGE_RANGE_25_64" - Between 25 and 64 years old.
	//   "AGE_RANGE_25_65_UP" - Between 25 and 65+ years old.
	//   "AGE_RANGE_35_44" - Between 35 and 44 years old.
	//   "AGE_RANGE_35_49" - Between 35 and 49 years old.
	//   "AGE_RANGE_35_54" - Between 35 and 54 years old.
	//   "AGE_RANGE_35_64" - Between 35 and 64 years old.
	//   "AGE_RANGE_35_65_UP" - Between 35 and 65+ years old.
	//   "AGE_RANGE_45_54" - Between 45 and 54 years old.
	//   "AGE_RANGE_45_64" - Between 45 and 64 years old.
	//   "AGE_RANGE_45_65_UP" - Between 45 and 65+ years old.
	//   "AGE_RANGE_50_65_UP" - Between 50 and 65+ years old.
	//   "AGE_RANGE_55_64" - Between 55 and 64 years old.
	//   "AGE_RANGE_55_65_UP" - Between 55 and 65+ years old.
	//   "AGE_RANGE_65_UP" - 65 years old and beyond.
	AgeRange string `json:"ageRange,omitempty"`
	// AudienceTargeting: Targeted audiences. If not specified, does not target any
	// specific audience.
	AudienceTargeting *GoogleAdsSearchads360V23Services__AudienceTargeting `json:"audienceTargeting,omitempty"`
	// Devices: Targeted devices. If not specified, targets all applicable devices.
	// Applicable devices vary by product and region and can be obtained from
	// ReachPlanService.ListPlannableProducts.
	Devices []*GoogleAdsSearchads360V23Common__DeviceInfo `json:"devices,omitempty"`
	// Genders: Targeted genders. An unset value is equivalent to targeting MALE
	// and FEMALE.
	Genders []*GoogleAdsSearchads360V23Common__GenderInfo `json:"genders,omitempty"`
	// Network: Targetable network for the ad product. If not specified, targets
	// all applicable networks. Applicable networks vary by product and region and
	// can be obtained from ReachPlanService.ListPlannableProducts.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used as a return value only. Represents value unknown in this
	// version.
	//   "YOUTUBE" - YouTube network.
	//   "GOOGLE_VIDEO_PARTNERS" - Google Video Partners (GVP) network.
	//   "YOUTUBE_AND_GOOGLE_VIDEO_PARTNERS" - A combination of the YouTube network
	// and the Google Video Partners network.
	Network string `json:"network,omitempty"`
	// PlannableLocationId: The ID of the selected location. Plannable location IDs
	// can be obtained from ReachPlanService.ListPlannableLocations. Requests must
	// set either this field or `plannable_location_ids`. This field is deprecated
	// as of V12 and will be removed in a future release. Use
	// `plannable_location_ids` instead.
	PlannableLocationId string `json:"plannableLocationId,omitempty"`
	// PlannableLocationIds: The list of plannable location IDs to target with this
	// forecast. If more than one ID is provided, all IDs must have the same
	// `parent_country_id`. Planning for more than `parent_county` is not
	// supported. Plannable location IDs and their `parent_country_id` can be
	// obtained from ReachPlanService.ListPlannableLocations. Requests must set
	// either this field or `plannable_location_id`.
	PlannableLocationIds []string `json:"plannableLocationIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRange") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__Targeting) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__Targeting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics: A suggested
// targetable audience relevant to the requested audience.
type GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics struct {
	// AgeRanges: Suggested age targeting; may be empty indicating no age
	// targeting.
	AgeRanges []*GoogleAdsSearchads360V23Common__AgeRangeInfo `json:"ageRanges,omitempty"`
	// Coverage: The fraction (from 0 to 1 inclusive) of the requested audience
	// that can be reached using the suggested targeting.
	Coverage float64 `json:"coverage,omitempty"`
	// Gender: Suggested gender targeting. If present, this attribute has dimension
	// GENDER.
	Gender *GoogleAdsSearchads360V23Common__GenderInfo `json:"gender,omitempty"`
	// Index: The ratio of coverage to the coverage of the baseline audience or
	// zero if this ratio is undefined or is not meaningful.
	Index float64 `json:"index,omitempty"`
	// Locations: Suggested location targeting. These attributes all have dimension
	// GEO_TARGET_COUNTRY or SUB_COUNTRY_LOCATION
	Locations []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadata `json:"locations,omitempty"`
	// ParentalStatus: A Parental Status value (parent, or not a parent).
	ParentalStatus *GoogleAdsSearchads360V23Common__ParentalStatusInfo `json:"parentalStatus,omitempty"`
	// PotentialYoutubeReach: The approximate estimated number of people that can
	// be reached on YouTube using this targeting.
	PotentialYoutubeReach int64 `json:"potentialYoutubeReach,omitempty,string"`
	// UserInterests: List of user interest attributes with metadata defining the
	// audience. The combination has a logical AND-of-ORs structure: The attributes
	// within each AudienceInsightsAttributeMetadataGroup are ORed, and the groups
	// themselves are ANDed.
	UserInterests []*GoogleAdsSearchads360V23Common__AudienceInsightsAttributeMetadataGroup `json:"userInterests,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgeRanges") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgeRanges") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleAdsSearchads360V23Services__TargetingSuggestionMetrics
	var s1 struct {
		Coverage gensupport.JSONFloat64 `json:"coverage"`
		Index    gensupport.JSONFloat64 `json:"index"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Coverage = float64(s1.Coverage)
	s.Index = float64(s1.Index)
	return nil
}

// GoogleAdsSearchads360V23Services__UnusableAdGroup: An AdGroup/Campaign pair
// that could not be used as a suggestion for keywords. AdGroups may not be
// usable if the AdGroup * belongs to a Campaign that is not ENABLED or PAUSED
// * is itself not ENABLED
type GoogleAdsSearchads360V23Services__UnusableAdGroup struct {
	// AdGroup: The AdGroup resource name. Resource name format:
	// `customers/{customer_id}/adGroups/{ad_group_id}`
	AdGroup string `json:"adGroup,omitempty"`
	// Campaign: The Campaign resource name. Resource name format:
	// `customers/{customer_id}/campaigns/{campaign_id}`
	Campaign string `json:"campaign,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdGroup") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdGroup") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UnusableAdGroup) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UnusableAdGroup
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UpdateDataLinkRequest: Request message for
// DataLinkService.UpdateDataLink.
type GoogleAdsSearchads360V23Services__UpdateDataLinkRequest struct {
	// DataLinkStatus: Required. The data link status to be updated to.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - The value is unknown in this version.
	//   "REQUESTED" - Link has been requested by one party, but not confirmed by
	// the other party.
	//   "PENDING_APPROVAL" - Link is waiting for the customer to approve.
	//   "ENABLED" - Link is established and can be used as needed.
	//   "DISABLED" - Link is no longer valid and should be ignored.
	//   "REVOKED" - Link request has been cancelled by the requester and further
	// cleanup may be needed.
	//   "REJECTED" - Link request has been rejected by the approver.
	DataLinkStatus string `json:"dataLinkStatus,omitempty"`
	// ResourceName: Required. The data link is expected to have a valid resource
	// name.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataLinkStatus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataLinkStatus") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UpdateDataLinkRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UpdateDataLinkRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UpdateDataLinkResponse: Response message
// for DataLinkService.UpdateDataLink.
type GoogleAdsSearchads360V23Services__UpdateDataLinkResponse struct {
	// ResourceName: Returned for successful operations. Resource name of the data
	// link.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UpdateDataLinkResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UpdateDataLinkResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest:
// Request message for
// ProductLinkInvitationService.UpdateProductLinkInvitation.
type GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest struct {
	// ProductLinkInvitationStatus: Required. The product link invitation to be
	// created.
	//
	// Possible values:
	//   "UNSPECIFIED" - Not specified.
	//   "UNKNOWN" - Used for return value only. Represents value unknown in this
	// version.
	//   "ACCEPTED" - The invitation is accepted.
	//   "REQUESTED" - An invitation has been sent to the other account. A user on
	// the other account may now accept the invitation by setting the status to
	// ACCEPTED.
	//   "PENDING_APPROVAL" - This invitation has been sent by a user on the other
	// account. It may be accepted by a user on this account by setting the status
	// to ACCEPTED.
	//   "REVOKED" - The invitation is revoked by the user who sent the invitation.
	//   "REJECTED" - The invitation has been rejected by the invitee.
	//   "EXPIRED" - The invitation has timed out before being accepted by the
	// invitee.
	ProductLinkInvitationStatus string `json:"productLinkInvitationStatus,omitempty"`
	// ResourceName: Required. Resource name of the product link invitation.
	ResourceName string `json:"resourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ProductLinkInvitationStatus") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProductLinkInvitationStatus") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse:
// Response message for product link invitation update.
type GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse struct {
	// ResourceName: Result of the update.
	ResourceName string `json:"resourceName,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ResourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UploadUserDataRequest: Request message for
// UserDataService.UploadUserData
type GoogleAdsSearchads360V23Services__UploadUserDataRequest struct {
	// CustomerMatchUserListMetadata: Metadata for data updates to a Customer Match
	// user list.
	CustomerMatchUserListMetadata *GoogleAdsSearchads360V23Common__CustomerMatchUserListMetadata `json:"customerMatchUserListMetadata,omitempty"`
	// Operations: Required. The list of operations to be done.
	Operations []*GoogleAdsSearchads360V23Services__UserDataOperation `json:"operations,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "CustomerMatchUserListMetadata") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerMatchUserListMetadata")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UploadUserDataRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UploadUserDataRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UploadUserDataResponse: Response message
// for UserDataService.UploadUserData Uploads made through this service will
// not be visible under the 'Segment members' section for the Customer Match
// List in the Google Ads UI.
type GoogleAdsSearchads360V23Services__UploadUserDataResponse struct {
	// ReceivedOperationsCount: Number of upload data operations received by API.
	ReceivedOperationsCount int64 `json:"receivedOperationsCount,omitempty"`
	// UploadDateTime: The date time at which the request was received by API,
	// formatted as "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01
	// 12:32:45-08:00".
	UploadDateTime string `json:"uploadDateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ReceivedOperationsCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReceivedOperationsCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UploadUserDataResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UploadUserDataResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UrlSeed: Url Seed
type GoogleAdsSearchads360V23Services__UrlSeed struct {
	// Url: The URL to crawl in order to generate keyword ideas.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Url") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Url") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UrlSeed) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UrlSeed
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UserDataOperation: Operation to be made
// for the UploadUserDataRequest.
type GoogleAdsSearchads360V23Services__UserDataOperation struct {
	// Create: The list of user data to be appended to the user list.
	Create *GoogleAdsSearchads360V23Common__UserData `json:"create,omitempty"`
	// Remove: The list of user data to be removed from the user list.
	Remove *GoogleAdsSearchads360V23Common__UserData `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UserDataOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UserDataOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation: A single
// mutate operation on the user list customer type.
type GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation struct {
	// Create: Attach a user list customer type to a user list. No resource name is
	// expected for the new user list customer type.
	Create *GoogleAdsSearchads360V23Resources__UserListCustomerType `json:"create,omitempty"`
	// Remove: Remove an existing user list customer type. A resource name for the
	// removed user list customer type is expected, in this format:
	// `customers/{customer_id}/userListCustomerTypes/{user_list_id}~{customer_type_
	// category}`
	Remove string `json:"remove,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UserListCustomerTypeOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__UserListOperation: A single operation
// (create, update) on a user list.
type GoogleAdsSearchads360V23Services__UserListOperation struct {
	// Create: Create operation: No resource name is expected for the new user
	// list.
	Create *GoogleAdsSearchads360V23Resources__UserList `json:"create,omitempty"`
	// Remove: Remove operation: A resource name for the removed user list is
	// expected, in this format: `customers/{customer_id}/userLists/{user_list_id}`
	Remove string `json:"remove,omitempty"`
	// Update: Update operation: The user list is expected to have a valid resource
	// name.
	Update *GoogleAdsSearchads360V23Resources__UserList `json:"update,omitempty"`
	// UpdateMask: FieldMask that determines which resource fields are modified in
	// an update.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Create") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Create") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__UserListOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__UserListOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__YouTubeSelectLineUp: A Plannable YouTube
// Select Lineup for product targeting.
type GoogleAdsSearchads360V23Services__YouTubeSelectLineUp struct {
	// LineupId: The ID of the YouTube Select Lineup.
	LineupId int64 `json:"lineupId,omitempty,string"`
	// LineupName: The unique name of the YouTube Select Lineup.
	LineupName string `json:"lineupName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LineupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LineupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__YouTubeSelectLineUp) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__YouTubeSelectLineUp
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleAdsSearchads360V23Services__YouTubeSelectSettings: Request settings
// for YouTube Select Lineups
type GoogleAdsSearchads360V23Services__YouTubeSelectSettings struct {
	// LineupId: Lineup for YouTube Select Targeting.
	LineupId int64 `json:"lineupId,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "LineupId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LineupId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleAdsSearchads360V23Services__YouTubeSelectSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleAdsSearchads360V23Services__YouTubeSelectSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleLongrunning__Operation: This resource represents a long-running
// operation that is the result of a network API call.
type GoogleLongrunning__Operation struct {
	// Done: If the value is `false`, it means the operation is still in progress.
	// If `true`, the operation is completed, and either `error` or `response` is
	// available.
	Done bool `json:"done,omitempty"`
	// Error: The error result of the operation in case of failure or cancellation.
	Error *GoogleRpc__Status `json:"error,omitempty"`
	// Metadata: Service-specific metadata associated with the operation. It
	// typically contains progress information and common metadata such as create
	// time. Some services might not provide such metadata. Any method that returns
	// a long-running operation should document the metadata type, if any.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Name: The server-assigned name, which is only unique within the same service
	// that originally returns it. If you use the default HTTP mapping, the `name`
	// should be a resource name ending with `operations/{unique_id}`.
	Name string `json:"name,omitempty"`
	// Response: The normal, successful response of the operation. If the original
	// method returns no data on success, such as `Delete`, the response is
	// `google.protobuf.Empty`. If the original method is standard
	// `Get`/`Create`/`Update`, the response should be the resource. For other
	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
	// original method name. For example, if the original method name is
	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
	Response googleapi.RawMessage `json:"response,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Done") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleLongrunning__Operation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleLongrunning__Operation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleProtobuf__Empty: A generic empty message that you can re-use to avoid
// defining duplicated empty messages in your APIs. A typical example is to use
// it as the request or the response type of an API method. For instance:
// service Foo { rpc Bar(google.protobuf.Empty) returns
// (google.protobuf.Empty); }
type GoogleProtobuf__Empty struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// GoogleRpc__Status: The `Status` type defines a logical error model that is
// suitable for different programming environments, including REST APIs and RPC
// APIs. It is used by gRPC (https://github.com/grpc). Each `Status` message
// contains three pieces of data: error code, error message, and error details.
// You can find out more about this error model and how to work with it in the
// API Design Guide (https://cloud.google.com/apis/design/errors).
type GoogleRpc__Status struct {
	// Code: The status code, which should be an enum value of google.rpc.Code.
	Code int64 `json:"code,omitempty"`
	// Details: A list of messages that carry the error details. There is a common
	// set of message types for APIs to use.
	Details []googleapi.RawMessage `json:"details,omitempty"`
	// Message: A developer-facing error message, which should be in English. Any
	// user-facing error message should be localized and sent in the
	// google.rpc.Status.details field, or localized by the client.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleRpc__Status) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleRpc__Status
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleType__Money: Represents an amount of money with its currency type.
type GoogleType__Money struct {
	// CurrencyCode: The three-letter currency code defined in ISO 4217.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Nanos: Number of nano (10^-9) units of the amount. The value must be between
	// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos`
	// must be positive or zero. If `units` is zero, `nanos` can be positive, zero,
	// or negative. If `units` is negative, `nanos` must be negative or zero. For
	// example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
	Nanos int64 `json:"nanos,omitempty"`
	// Units: The whole units of the amount. For example if `currencyCode` is
	// "USD", then 1 unit is one US dollar.
	Units int64 `json:"units,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CurrencyCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrencyCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleType__Money) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleType__Money
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type AudienceInsightsListInsightsEligibleDatesCall struct {
	s                                                                  *Service
	googleadssearchads360v23services__listinsightseligibledatesrequest *GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// ListInsightsEligibleDates: Lists date ranges for which audience insights
// data can be requested. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [RequestError]()
func (r *AudienceInsightsService) ListInsightsEligibleDates(googleadssearchads360v23services__listinsightseligibledatesrequest *GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesRequest) *AudienceInsightsListInsightsEligibleDatesCall {
	c := &AudienceInsightsListInsightsEligibleDatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listinsightseligibledatesrequest = googleadssearchads360v23services__listinsightseligibledatesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *AudienceInsightsListInsightsEligibleDatesCall) Fields(s ...googleapi.Field) *AudienceInsightsListInsightsEligibleDatesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *AudienceInsightsListInsightsEligibleDatesCall) Context(ctx context.Context) *AudienceInsightsListInsightsEligibleDatesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *AudienceInsightsListInsightsEligibleDatesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *AudienceInsightsListInsightsEligibleDatesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listinsightseligibledatesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/audienceInsights:listInsightsEligibleDates")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.audienceInsights.listInsightsEligibleDates", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.audienceInsights.listInsightsEligibleDates" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse.ServerRe
// sponse.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 *AudienceInsightsListInsightsEligibleDatesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListInsightsEligibleDatesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.audienceInsights.listInsightsEligibleDates", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCreateCustomerClientCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__createcustomerclientrequest *GoogleAdsSearchads360V23Services__CreateCustomerClientRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// CreateCustomerClient: Creates a new client under manager. The new client
// customer is returned. List of thrown errors: AccessInvitationError ()
// [AuthenticationError]() AuthorizationError () [CurrencyCodeError]()
// HeaderError () [InternalError]() ManagerLinkError () [QuotaError]()
// RequestError () [StringLengthError]() TimeZoneError ()
//
//   - customerId: The ID of the Manager under whom client customer is being
//     created.
func (r *CustomersService) CreateCustomerClient(customerId string, googleadssearchads360v23services__createcustomerclientrequest *GoogleAdsSearchads360V23Services__CreateCustomerClientRequest) *CustomersCreateCustomerClientCall {
	c := &CustomersCreateCustomerClientCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createcustomerclientrequest = googleadssearchads360v23services__createcustomerclientrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCreateCustomerClientCall) Fields(s ...googleapi.Field) *CustomersCreateCustomerClientCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCreateCustomerClientCall) Context(ctx context.Context) *CustomersCreateCustomerClientCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCreateCustomerClientCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCreateCustomerClientCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createcustomerclientrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:createCustomerClient")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.createCustomerClient", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.createCustomerClient" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateCustomerClientResponse.ServerRespons
// e.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 *CustomersCreateCustomerClientCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateCustomerClientResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateCustomerClientResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.createCustomerClient", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateAdGroupThemesCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__generateadgroupthemesrequest *GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// GenerateAdGroupThemes: Returns a list of suggested AdGroups and suggested
// modifications (text, match type) for the given keywords. List of thrown
// errors: AuthenticationError () [AuthorizationError]() CollectionSizeError ()
// [HeaderError]() InternalError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateAdGroupThemes(customerId string, googleadssearchads360v23services__generateadgroupthemesrequest *GoogleAdsSearchads360V23Services__GenerateAdGroupThemesRequest) *CustomersGenerateAdGroupThemesCall {
	c := &CustomersGenerateAdGroupThemesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generateadgroupthemesrequest = googleadssearchads360v23services__generateadgroupthemesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateAdGroupThemesCall) Fields(s ...googleapi.Field) *CustomersGenerateAdGroupThemesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateAdGroupThemesCall) Context(ctx context.Context) *CustomersGenerateAdGroupThemesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateAdGroupThemesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateAdGroupThemesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateadgroupthemesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateAdGroupThemes")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateAdGroupThemes", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateAdGroupThemes" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse.ServerRespon
// se.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 *CustomersGenerateAdGroupThemesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateAdGroupThemesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateAdGroupThemes", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateAudienceCompositionInsightsCall struct {
	s                                                                            *Service
	customerId                                                                   string
	googleadssearchads360v23services__generateaudiencecompositioninsightsrequest *GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest
	urlParams_                                                                   gensupport.URLParams
	ctx_                                                                         context.Context
	header_                                                                      http.Header
}

// GenerateAudienceCompositionInsights: Returns a collection of attributes that
// are represented in an audience of interest, with metrics that compare each
// attribute's share of the audience with its share of a baseline audience.
// List of thrown errors: AudienceInsightsError () [AuthenticationError]()
// AuthorizationError () [FieldError]() HeaderError () [InternalError]()
// QuotaError () [RangeError]() RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateAudienceCompositionInsights(customerId string, googleadssearchads360v23services__generateaudiencecompositioninsightsrequest *GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRequest) *CustomersGenerateAudienceCompositionInsightsCall {
	c := &CustomersGenerateAudienceCompositionInsightsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generateaudiencecompositioninsightsrequest = googleadssearchads360v23services__generateaudiencecompositioninsightsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateAudienceCompositionInsightsCall) Fields(s ...googleapi.Field) *CustomersGenerateAudienceCompositionInsightsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateAudienceCompositionInsightsCall) Context(ctx context.Context) *CustomersGenerateAudienceCompositionInsightsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateAudienceCompositionInsightsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateAudienceCompositionInsightsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateaudiencecompositioninsightsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateAudienceCompositionInsights")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceCompositionInsights", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateAudienceCompositionInsights" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsRespons
// e.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 *CustomersGenerateAudienceCompositionInsightsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateAudienceCompositionInsightsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceCompositionInsights", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateAudienceDefinitionCall struct {
	s                                                                   *Service
	customerId                                                          string
	googleadssearchads360v23services__generateaudiencedefinitionrequest *GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// GenerateAudienceDefinition: Returns a collection of audience attributes
// using generative AI based on the provided audience description. List of
// thrown errors: AudienceInsightsError () [AuthenticationError]()
// AuthorizationError () [FieldError]() HeaderError () [InternalError]()
// QuotaError () [RequestError]()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateAudienceDefinition(customerId string, googleadssearchads360v23services__generateaudiencedefinitionrequest *GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionRequest) *CustomersGenerateAudienceDefinitionCall {
	c := &CustomersGenerateAudienceDefinitionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generateaudiencedefinitionrequest = googleadssearchads360v23services__generateaudiencedefinitionrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateAudienceDefinitionCall) Fields(s ...googleapi.Field) *CustomersGenerateAudienceDefinitionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateAudienceDefinitionCall) Context(ctx context.Context) *CustomersGenerateAudienceDefinitionCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateAudienceDefinitionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateAudienceDefinitionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateaudiencedefinitionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateAudienceDefinition")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceDefinition", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateAudienceDefinition" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse.ServerR
// esponse.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 *CustomersGenerateAudienceDefinitionCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateAudienceDefinitionResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceDefinition", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateAudienceOverlapInsightsCall struct {
	s                                                                        *Service
	customerId                                                               string
	googleadssearchads360v23services__generateaudienceoverlapinsightsrequest *GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest
	urlParams_                                                               gensupport.URLParams
	ctx_                                                                     context.Context
	header_                                                                  http.Header
}

// GenerateAudienceOverlapInsights: Returns a collection of audience attributes
// along with estimates of the overlap between their potential YouTube reach
// and that of a given input attribute. List of thrown errors:
// AudienceInsightsError () [AuthenticationError]() AuthorizationError ()
// [FieldError]() HeaderError () [InternalError]() QuotaError () [RangeError]()
// RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateAudienceOverlapInsights(customerId string, googleadssearchads360v23services__generateaudienceoverlapinsightsrequest *GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsRequest) *CustomersGenerateAudienceOverlapInsightsCall {
	c := &CustomersGenerateAudienceOverlapInsightsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generateaudienceoverlapinsightsrequest = googleadssearchads360v23services__generateaudienceoverlapinsightsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateAudienceOverlapInsightsCall) Fields(s ...googleapi.Field) *CustomersGenerateAudienceOverlapInsightsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateAudienceOverlapInsightsCall) Context(ctx context.Context) *CustomersGenerateAudienceOverlapInsightsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateAudienceOverlapInsightsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateAudienceOverlapInsightsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateaudienceoverlapinsightsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateAudienceOverlapInsights")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceOverlapInsights", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateAudienceOverlapInsights" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse.Se
// rverResponse.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 *CustomersGenerateAudienceOverlapInsightsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateAudienceOverlapInsightsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateAudienceOverlapInsights", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateBenchmarksMetricsCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__generatebenchmarksmetricsrequest *GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// GenerateBenchmarksMetrics: Returns YouTube advertisement metrics for the
// given client against industry benchmarks. List of thrown errors:
// AuthenticationError () [AuthorizationError]() BenchmarksError ()
// [FieldError]() HeaderError () [InternalError]() QuotaError () [RangeError]()
// RequestError ()
//
//   - customerId: The ID of the customer. Supply a client customer ID to
//     generate metrics for the customer. A manager account customer ID will not
//     return customer metrics since it does not have any associated direct ad
//     campaigns.
func (r *CustomersService) GenerateBenchmarksMetrics(customerId string, googleadssearchads360v23services__generatebenchmarksmetricsrequest *GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsRequest) *CustomersGenerateBenchmarksMetricsCall {
	c := &CustomersGenerateBenchmarksMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatebenchmarksmetricsrequest = googleadssearchads360v23services__generatebenchmarksmetricsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateBenchmarksMetricsCall) Fields(s ...googleapi.Field) *CustomersGenerateBenchmarksMetricsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateBenchmarksMetricsCall) Context(ctx context.Context) *CustomersGenerateBenchmarksMetricsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateBenchmarksMetricsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateBenchmarksMetricsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatebenchmarksmetricsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateBenchmarksMetrics")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateBenchmarksMetrics", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateBenchmarksMetrics" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse.ServerRe
// sponse.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 *CustomersGenerateBenchmarksMetricsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateBenchmarksMetricsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateBenchmarksMetrics", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateInsightsFinderReportCall struct {
	s                                                                     *Service
	customerId                                                            string
	googleadssearchads360v23services__generateinsightsfinderreportrequest *GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest
	urlParams_                                                            gensupport.URLParams
	ctx_                                                                  context.Context
	header_                                                               http.Header
}

// GenerateInsightsFinderReport: Creates a saved report that can be viewed in
// the Insights Finder tool. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [RequestError]()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateInsightsFinderReport(customerId string, googleadssearchads360v23services__generateinsightsfinderreportrequest *GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportRequest) *CustomersGenerateInsightsFinderReportCall {
	c := &CustomersGenerateInsightsFinderReportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generateinsightsfinderreportrequest = googleadssearchads360v23services__generateinsightsfinderreportrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateInsightsFinderReportCall) Fields(s ...googleapi.Field) *CustomersGenerateInsightsFinderReportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateInsightsFinderReportCall) Context(ctx context.Context) *CustomersGenerateInsightsFinderReportCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateInsightsFinderReportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateInsightsFinderReportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateinsightsfinderreportrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateInsightsFinderReport")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateInsightsFinderReport", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateInsightsFinderReport" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse.Serve
// rResponse.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 *CustomersGenerateInsightsFinderReportCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateInsightsFinderReportResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateInsightsFinderReport", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateKeywordForecastMetricsCall struct {
	s                                                                       *Service
	customerId                                                              string
	googleadssearchads360v23services__generatekeywordforecastmetricsrequest *GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest
	urlParams_                                                              gensupport.URLParams
	ctx_                                                                    context.Context
	header_                                                                 http.Header
}

// GenerateKeywordForecastMetrics: Returns metrics (such as impressions,
// clicks, total cost) of a keyword forecast for the given campaign. List of
// thrown errors: AuthenticationError () [AuthorizationError]()
// CollectionSizeError () [HeaderError]() InternalError () [QuotaError]()
// RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateKeywordForecastMetrics(customerId string, googleadssearchads360v23services__generatekeywordforecastmetricsrequest *GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsRequest) *CustomersGenerateKeywordForecastMetricsCall {
	c := &CustomersGenerateKeywordForecastMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatekeywordforecastmetricsrequest = googleadssearchads360v23services__generatekeywordforecastmetricsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateKeywordForecastMetricsCall) Fields(s ...googleapi.Field) *CustomersGenerateKeywordForecastMetricsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateKeywordForecastMetricsCall) Context(ctx context.Context) *CustomersGenerateKeywordForecastMetricsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateKeywordForecastMetricsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateKeywordForecastMetricsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatekeywordforecastmetricsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateKeywordForecastMetrics")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordForecastMetrics", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateKeywordForecastMetrics" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse.Ser
// verResponse.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 *CustomersGenerateKeywordForecastMetricsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateKeywordForecastMetricsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordForecastMetrics", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateKeywordHistoricalMetricsCall struct {
	s                                                                         *Service
	customerId                                                                string
	googleadssearchads360v23services__generatekeywordhistoricalmetricsrequest *GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest
	urlParams_                                                                gensupport.URLParams
	ctx_                                                                      context.Context
	header_                                                                   http.Header
}

// GenerateKeywordHistoricalMetrics: Returns a list of keyword historical
// metrics. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CollectionSizeError () [HeaderError]() InternalError
// () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer with the recommendation.
func (r *CustomersService) GenerateKeywordHistoricalMetrics(customerId string, googleadssearchads360v23services__generatekeywordhistoricalmetricsrequest *GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsRequest) *CustomersGenerateKeywordHistoricalMetricsCall {
	c := &CustomersGenerateKeywordHistoricalMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatekeywordhistoricalmetricsrequest = googleadssearchads360v23services__generatekeywordhistoricalmetricsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateKeywordHistoricalMetricsCall) Fields(s ...googleapi.Field) *CustomersGenerateKeywordHistoricalMetricsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateKeywordHistoricalMetricsCall) Context(ctx context.Context) *CustomersGenerateKeywordHistoricalMetricsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateKeywordHistoricalMetricsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateKeywordHistoricalMetricsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatekeywordhistoricalmetricsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateKeywordHistoricalMetrics")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordHistoricalMetrics", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateKeywordHistoricalMetrics" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse.S
// erverResponse.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 *CustomersGenerateKeywordHistoricalMetricsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateKeywordHistoricalMetricsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordHistoricalMetrics", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateKeywordIdeasCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__generatekeywordideasrequest *GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// GenerateKeywordIdeas: Returns a list of keyword ideas. List of thrown
// errors: AuthenticationError () [AuthorizationError]() CollectionSizeError ()
// [HeaderError]() InternalError () [KeywordPlanIdeaError]() QuotaError ()
// [RequestError]()
//
// - customerId: The ID of the customer with the recommendation.
func (r *CustomersService) GenerateKeywordIdeas(customerId string, googleadssearchads360v23services__generatekeywordideasrequest *GoogleAdsSearchads360V23Services__GenerateKeywordIdeasRequest) *CustomersGenerateKeywordIdeasCall {
	c := &CustomersGenerateKeywordIdeasCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatekeywordideasrequest = googleadssearchads360v23services__generatekeywordideasrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateKeywordIdeasCall) Fields(s ...googleapi.Field) *CustomersGenerateKeywordIdeasCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateKeywordIdeasCall) Context(ctx context.Context) *CustomersGenerateKeywordIdeasCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateKeywordIdeasCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateKeywordIdeasCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatekeywordideasrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateKeywordIdeas")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordIdeas", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateKeywordIdeas" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse.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 *CustomersGenerateKeywordIdeasCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateKeywordIdeas", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersGenerateKeywordIdeasCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__GenerateKeywordIdeaResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleadssearchads360v23services__generatekeywordideasrequest.PageToken = pt }(c.googleadssearchads360v23services__generatekeywordideasrequest.PageToken)
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.googleadssearchads360v23services__generatekeywordideasrequest.PageToken = x.NextPageToken
	}
}

type CustomersGenerateReachForecastCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__generatereachforecastrequest *GoogleAdsSearchads360V23Services__GenerateReachForecastRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// GenerateReachForecast: Generates a reach forecast for a given targeting /
// product mix. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [ReachPlanError]() RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateReachForecast(customerId string, googleadssearchads360v23services__generatereachforecastrequest *GoogleAdsSearchads360V23Services__GenerateReachForecastRequest) *CustomersGenerateReachForecastCall {
	c := &CustomersGenerateReachForecastCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatereachforecastrequest = googleadssearchads360v23services__generatereachforecastrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateReachForecastCall) Fields(s ...googleapi.Field) *CustomersGenerateReachForecastCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateReachForecastCall) Context(ctx context.Context) *CustomersGenerateReachForecastCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateReachForecastCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateReachForecastCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatereachforecastrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateReachForecast")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateReachForecast", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateReachForecast" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateReachForecastResponse.ServerRespon
// se.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 *CustomersGenerateReachForecastCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateReachForecastResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateReachForecastResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateReachForecast", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateSuggestedTargetingInsightsCall struct {
	s                                                                           *Service
	customerId                                                                  string
	googleadssearchads360v23services__generatesuggestedtargetinginsightsrequest *GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest
	urlParams_                                                                  gensupport.URLParams
	ctx_                                                                        context.Context
	header_                                                                     http.Header
}

// GenerateSuggestedTargetingInsights: Returns a collection of targeting
// insights (e.g. targetable audiences) that are relevant to the requested
// audience. List of thrown errors: AudienceInsightsError ()
// [AuthenticationError]() AuthorizationError () [FieldError]() HeaderError ()
// [InternalError]() QuotaError () [RangeError]() RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateSuggestedTargetingInsights(customerId string, googleadssearchads360v23services__generatesuggestedtargetinginsightsrequest *GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsRequest) *CustomersGenerateSuggestedTargetingInsightsCall {
	c := &CustomersGenerateSuggestedTargetingInsightsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatesuggestedtargetinginsightsrequest = googleadssearchads360v23services__generatesuggestedtargetinginsightsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateSuggestedTargetingInsightsCall) Fields(s ...googleapi.Field) *CustomersGenerateSuggestedTargetingInsightsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateSuggestedTargetingInsightsCall) Context(ctx context.Context) *CustomersGenerateSuggestedTargetingInsightsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateSuggestedTargetingInsightsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateSuggestedTargetingInsightsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatesuggestedtargetinginsightsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateSuggestedTargetingInsights")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateSuggestedTargetingInsights", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateSuggestedTargetingInsights" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse
// .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 *CustomersGenerateSuggestedTargetingInsightsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateSuggestedTargetingInsightsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateSuggestedTargetingInsights", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGenerateTargetingSuggestionMetricsCall struct {
	s                                                                           *Service
	customerId                                                                  string
	googleadssearchads360v23services__generatetargetingsuggestionmetricsrequest *GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest
	urlParams_                                                                  gensupport.URLParams
	ctx_                                                                        context.Context
	header_                                                                     http.Header
}

// GenerateTargetingSuggestionMetrics: Returns potential reach metrics for
// targetable audiences. This method helps answer questions like "How many Men
// aged 18+ interested in Camping can be reached on YouTube?" List of thrown
// errors: AudienceInsightsError () [AuthenticationError]() AuthorizationError
// () [FieldError]() HeaderError () [InternalError]() QuotaError ()
// [RangeError]() RequestError ()
//
// - customerId: The ID of the customer.
func (r *CustomersService) GenerateTargetingSuggestionMetrics(customerId string, googleadssearchads360v23services__generatetargetingsuggestionmetricsrequest *GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsRequest) *CustomersGenerateTargetingSuggestionMetricsCall {
	c := &CustomersGenerateTargetingSuggestionMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generatetargetingsuggestionmetricsrequest = googleadssearchads360v23services__generatetargetingsuggestionmetricsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGenerateTargetingSuggestionMetricsCall) Fields(s ...googleapi.Field) *CustomersGenerateTargetingSuggestionMetricsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGenerateTargetingSuggestionMetricsCall) Context(ctx context.Context) *CustomersGenerateTargetingSuggestionMetricsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGenerateTargetingSuggestionMetricsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGenerateTargetingSuggestionMetricsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generatetargetingsuggestionmetricsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:generateTargetingSuggestionMetrics")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.generateTargetingSuggestionMetrics", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.generateTargetingSuggestionMetrics" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse
// .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 *CustomersGenerateTargetingSuggestionMetricsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateTargetingSuggestionMetricsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.generateTargetingSuggestionMetrics", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGetIdentityVerificationCall struct {
	s            *Service
	customerId   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetIdentityVerification: Returns Identity Verification information. List of
// thrown errors: AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
//   - customerId: The ID of the customer for whom we are requesting verification
//     information.
func (r *CustomersService) GetIdentityVerification(customerId string) *CustomersGetIdentityVerificationCall {
	c := &CustomersGetIdentityVerificationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGetIdentityVerificationCall) Fields(s ...googleapi.Field) *CustomersGetIdentityVerificationCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersGetIdentityVerificationCall) IfNoneMatch(entityTag string) *CustomersGetIdentityVerificationCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGetIdentityVerificationCall) Context(ctx context.Context) *CustomersGetIdentityVerificationCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGetIdentityVerificationCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGetIdentityVerificationCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/getIdentityVerification")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.getIdentityVerification", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.getIdentityVerification" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse.ServerResp
// onse.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 *CustomersGetIdentityVerificationCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GetIdentityVerificationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.getIdentityVerification", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersListAccessibleCustomersCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListAccessibleCustomers: Returns resource names of customers directly
// accessible by the user authenticating the call. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
func (r *CustomersService) ListAccessibleCustomers() *CustomersListAccessibleCustomersCall {
	c := &CustomersListAccessibleCustomersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersListAccessibleCustomersCall) Fields(s ...googleapi.Field) *CustomersListAccessibleCustomersCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersListAccessibleCustomersCall) IfNoneMatch(entityTag string) *CustomersListAccessibleCustomersCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersListAccessibleCustomersCall) Context(ctx context.Context) *CustomersListAccessibleCustomersCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersListAccessibleCustomersCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersListAccessibleCustomersCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers:listAccessibleCustomers")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.listAccessibleCustomers", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.listAccessibleCustomers" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse.ServerResp
// onse.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 *CustomersListAccessibleCustomersCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListAccessibleCustomersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.listAccessibleCustomers", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersMutateCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__mutatecustomerrequest *GoogleAdsSearchads360V23Services__MutateCustomerRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Mutate: Updates a customer. Operation statuses are returned. List of thrown
// errors: AuthenticationError () [AuthorizationError]() DatabaseError ()
// [FieldMaskError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]() UrlFieldError ()
//
// - customerId: The ID of the customer being modified.
func (r *CustomersService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerrequest *GoogleAdsSearchads360V23Services__MutateCustomerRequest) *CustomersMutateCall {
	c := &CustomersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerrequest = googleadssearchads360v23services__mutatecustomerrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersMutateCall) Fields(s ...googleapi.Field) *CustomersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersMutateCall) Context(ctx context.Context) *CustomersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerResponse.ServerResponse.Head
// er 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 *CustomersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRemoveCampaignAutomaticallyCreatedAssetCall struct {
	s                                                                                *Service
	customerId                                                                       string
	googleadssearchads360v23services__removecampaignautomaticallycreatedassetrequest *GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest
	urlParams_                                                                       gensupport.URLParams
	ctx_                                                                             context.Context
	header_                                                                          http.Header
}

// RemoveCampaignAutomaticallyCreatedAsset: Removes automatically created
// assets from a campaign. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ContextError () [FieldError]() InternalError ()
// [MutateError]() PartialFailureError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer whose assets are being removed.
func (r *CustomersService) RemoveCampaignAutomaticallyCreatedAsset(customerId string, googleadssearchads360v23services__removecampaignautomaticallycreatedassetrequest *GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRequest) *CustomersRemoveCampaignAutomaticallyCreatedAssetCall {
	c := &CustomersRemoveCampaignAutomaticallyCreatedAssetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__removecampaignautomaticallycreatedassetrequest = googleadssearchads360v23services__removecampaignautomaticallycreatedassetrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRemoveCampaignAutomaticallyCreatedAssetCall) Fields(s ...googleapi.Field) *CustomersRemoveCampaignAutomaticallyCreatedAssetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRemoveCampaignAutomaticallyCreatedAssetCall) Context(ctx context.Context) *CustomersRemoveCampaignAutomaticallyCreatedAssetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRemoveCampaignAutomaticallyCreatedAssetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRemoveCampaignAutomaticallyCreatedAssetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__removecampaignautomaticallycreatedassetrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:removeCampaignAutomaticallyCreatedAsset")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.removeCampaignAutomaticallyCreatedAsset", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.removeCampaignAutomaticallyCreatedAsset" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetRes
// ponse.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 *CustomersRemoveCampaignAutomaticallyCreatedAssetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__RemoveCampaignAutomaticallyCreatedAssetResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.removeCampaignAutomaticallyCreatedAsset", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSearchAudienceInsightsAttributesCall struct {
	s                                                                       *Service
	customerId                                                              string
	googleadssearchads360v23services__listaudienceinsightsattributesrequest *GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest
	urlParams_                                                              gensupport.URLParams
	ctx_                                                                    context.Context
	header_                                                                 http.Header
}

// SearchAudienceInsightsAttributes: Searches for audience attributes that can
// be used to generate insights. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [RequestError]()
//
// - customerId: The ID of the customer.
func (r *CustomersService) SearchAudienceInsightsAttributes(customerId string, googleadssearchads360v23services__listaudienceinsightsattributesrequest *GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesRequest) *CustomersSearchAudienceInsightsAttributesCall {
	c := &CustomersSearchAudienceInsightsAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__listaudienceinsightsattributesrequest = googleadssearchads360v23services__listaudienceinsightsattributesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSearchAudienceInsightsAttributesCall) Fields(s ...googleapi.Field) *CustomersSearchAudienceInsightsAttributesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSearchAudienceInsightsAttributesCall) Context(ctx context.Context) *CustomersSearchAudienceInsightsAttributesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSearchAudienceInsightsAttributesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSearchAudienceInsightsAttributesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listaudienceinsightsattributesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:searchAudienceInsightsAttributes")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.searchAudienceInsightsAttributes", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.searchAudienceInsightsAttributes" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse.Ser
// verResponse.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 *CustomersSearchAudienceInsightsAttributesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListAudienceInsightsAttributesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.searchAudienceInsightsAttributes", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersStartIdentityVerificationCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__startidentityverificationrequest *GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// StartIdentityVerification: Starts Identity Verification for a given
// verification program type. Statuses are returned. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
//   - customerId: The Id of the customer for whom we are creating this
//     verification.
func (r *CustomersService) StartIdentityVerification(customerId string, googleadssearchads360v23services__startidentityverificationrequest *GoogleAdsSearchads360V23Services__StartIdentityVerificationRequest) *CustomersStartIdentityVerificationCall {
	c := &CustomersStartIdentityVerificationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__startidentityverificationrequest = googleadssearchads360v23services__startidentityverificationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersStartIdentityVerificationCall) Fields(s ...googleapi.Field) *CustomersStartIdentityVerificationCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersStartIdentityVerificationCall) Context(ctx context.Context) *CustomersStartIdentityVerificationCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersStartIdentityVerificationCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersStartIdentityVerificationCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__startidentityverificationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:startIdentityVerification")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.startIdentityVerification", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.startIdentityVerification" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobuf__Empty.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 *CustomersStartIdentityVerificationCall) Do(opts ...googleapi.CallOption) (*GoogleProtobuf__Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleProtobuf__Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.startIdentityVerification", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSuggestKeywordThemesCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__suggestkeywordthemesrequest *GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// SuggestKeywordThemes: Suggests keyword themes to advertise on.
//
// - customerId: The ID of the customer.
func (r *CustomersService) SuggestKeywordThemes(customerId string, googleadssearchads360v23services__suggestkeywordthemesrequest *GoogleAdsSearchads360V23Services__SuggestKeywordThemesRequest) *CustomersSuggestKeywordThemesCall {
	c := &CustomersSuggestKeywordThemesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__suggestkeywordthemesrequest = googleadssearchads360v23services__suggestkeywordthemesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSuggestKeywordThemesCall) Fields(s ...googleapi.Field) *CustomersSuggestKeywordThemesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSuggestKeywordThemesCall) Context(ctx context.Context) *CustomersSuggestKeywordThemesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSuggestKeywordThemesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSuggestKeywordThemesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggestkeywordthemesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:suggestKeywordThemes")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.suggestKeywordThemes", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.suggestKeywordThemes" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse.ServerRespons
// e.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 *CustomersSuggestKeywordThemesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestKeywordThemesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.suggestKeywordThemes", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSuggestSmartCampaignAdCall struct {
	s                                                               *Service
	customerId                                                      string
	googleadssearchads360v23services__suggestsmartcampaignadrequest *GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// SuggestSmartCampaignAd: Suggests a Smart campaign ad compatible with the Ad
// family of resources, based on data points such as targeting and the business
// to advertise.
//
// - customerId: The ID of the customer.
func (r *CustomersService) SuggestSmartCampaignAd(customerId string, googleadssearchads360v23services__suggestsmartcampaignadrequest *GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdRequest) *CustomersSuggestSmartCampaignAdCall {
	c := &CustomersSuggestSmartCampaignAdCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__suggestsmartcampaignadrequest = googleadssearchads360v23services__suggestsmartcampaignadrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSuggestSmartCampaignAdCall) Fields(s ...googleapi.Field) *CustomersSuggestSmartCampaignAdCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSuggestSmartCampaignAdCall) Context(ctx context.Context) *CustomersSuggestSmartCampaignAdCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSuggestSmartCampaignAdCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSuggestSmartCampaignAdCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggestsmartcampaignadrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:suggestSmartCampaignAd")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.suggestSmartCampaignAd", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.suggestSmartCampaignAd" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse.ServerRespo
// nse.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 *CustomersSuggestSmartCampaignAdCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestSmartCampaignAdResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.suggestSmartCampaignAd", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSuggestSmartCampaignBudgetOptionsCall struct {
	s                                                                          *Service
	customerId                                                                 string
	googleadssearchads360v23services__suggestsmartcampaignbudgetoptionsrequest *GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest
	urlParams_                                                                 gensupport.URLParams
	ctx_                                                                       context.Context
	header_                                                                    http.Header
}

// SuggestSmartCampaignBudgetOptions: Returns BudgetOption suggestions.
//
//   - customerId: The ID of the customer whose budget options are to be
//     suggested.
func (r *CustomersService) SuggestSmartCampaignBudgetOptions(customerId string, googleadssearchads360v23services__suggestsmartcampaignbudgetoptionsrequest *GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsRequest) *CustomersSuggestSmartCampaignBudgetOptionsCall {
	c := &CustomersSuggestSmartCampaignBudgetOptionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__suggestsmartcampaignbudgetoptionsrequest = googleadssearchads360v23services__suggestsmartcampaignbudgetoptionsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSuggestSmartCampaignBudgetOptionsCall) Fields(s ...googleapi.Field) *CustomersSuggestSmartCampaignBudgetOptionsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSuggestSmartCampaignBudgetOptionsCall) Context(ctx context.Context) *CustomersSuggestSmartCampaignBudgetOptionsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSuggestSmartCampaignBudgetOptionsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSuggestSmartCampaignBudgetOptionsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggestsmartcampaignbudgetoptionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:suggestSmartCampaignBudgetOptions")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.suggestSmartCampaignBudgetOptions", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.suggestSmartCampaignBudgetOptions" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse.
// 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 *CustomersSuggestSmartCampaignBudgetOptionsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestSmartCampaignBudgetOptionsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.suggestSmartCampaignBudgetOptions", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSuggestTravelAssetsCall struct {
	s                                                            *Service
	customerId                                                   string
	googleadssearchads360v23services__suggesttravelassetsrequest *GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// SuggestTravelAssets: Returns Travel Asset suggestions. Asset suggestions are
// returned on a best-effort basis. There are no guarantees that all possible
// asset types will be returned for any given hotel property.
//
// - customerId: The ID of the customer.
func (r *CustomersService) SuggestTravelAssets(customerId string, googleadssearchads360v23services__suggesttravelassetsrequest *GoogleAdsSearchads360V23Services__SuggestTravelAssetsRequest) *CustomersSuggestTravelAssetsCall {
	c := &CustomersSuggestTravelAssetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__suggesttravelassetsrequest = googleadssearchads360v23services__suggesttravelassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSuggestTravelAssetsCall) Fields(s ...googleapi.Field) *CustomersSuggestTravelAssetsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSuggestTravelAssetsCall) Context(ctx context.Context) *CustomersSuggestTravelAssetsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSuggestTravelAssetsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSuggestTravelAssetsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggesttravelassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:suggestTravelAssets")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.suggestTravelAssets", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.suggestTravelAssets" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse.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 *CustomersSuggestTravelAssetsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestTravelAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.suggestTravelAssets", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersUploadUserDataCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__uploaduserdatarequest *GoogleAdsSearchads360V23Services__UploadUserDataRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// UploadUserData: Uploads the given user data. List of thrown errors:
// AuthenticationError () [AuthorizationError]() CollectionSizeError ()
// [FieldError]() HeaderError () [InternalError]() MutateError ()
// [OfflineUserDataJobError]() QuotaError () [RequestError]() UserDataError ()
//
// - customerId: The ID of the customer for which to update the user data.
func (r *CustomersService) UploadUserData(customerId string, googleadssearchads360v23services__uploaduserdatarequest *GoogleAdsSearchads360V23Services__UploadUserDataRequest) *CustomersUploadUserDataCall {
	c := &CustomersUploadUserDataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__uploaduserdatarequest = googleadssearchads360v23services__uploaduserdatarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersUploadUserDataCall) Fields(s ...googleapi.Field) *CustomersUploadUserDataCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersUploadUserDataCall) Context(ctx context.Context) *CustomersUploadUserDataCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersUploadUserDataCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersUploadUserDataCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__uploaduserdatarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}:uploadUserData")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.uploadUserData", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.uploadUserData" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__UploadUserDataResponse.ServerResponse.Head
// er 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 *CustomersUploadUserDataCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__UploadUserDataResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__UploadUserDataResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.uploadUserData", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupCriterionCustomizersMutateCall struct {
	s                                                                          *Service
	customerId                                                                 string
	googleadssearchads360v23services__mutateadgroupcriterioncustomizersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest
	urlParams_                                                                 gensupport.URLParams
	ctx_                                                                       context.Context
	header_                                                                    http.Header
}

// Mutate: Creates, updates or removes ad group criterion customizers.
// Operation statuses are returned.
//
//   - customerId: The ID of the customer whose ad group criterion customizers
//     are being modified.
func (r *CustomersAdGroupCriterionCustomizersService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupcriterioncustomizersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersRequest) *CustomersAdGroupCriterionCustomizersMutateCall {
	c := &CustomersAdGroupCriterionCustomizersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupcriterioncustomizersrequest = googleadssearchads360v23services__mutateadgroupcriterioncustomizersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupCriterionCustomizersMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupCriterionCustomizersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupCriterionCustomizersMutateCall) Context(ctx context.Context) *CustomersAdGroupCriterionCustomizersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupCriterionCustomizersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupCriterionCustomizersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupcriterioncustomizersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/AdGroupCriterionCustomizers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.AdGroupCriterionCustomizers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.AdGroupCriterionCustomizers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse.
// 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 *CustomersAdGroupCriterionCustomizersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupCriterionCustomizersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.AdGroupCriterionCustomizers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignGoalConfigsMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutatecampaigngoalconfigsrequest *GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Create or update campaign goal configs. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]() CampaignGoalConfigError ()
// [GoalServicesError]()
//
//   - customerId: The ID of the customer whose campaign goal configs are being
//     modified.
func (r *CustomersCampaignGoalConfigsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaigngoalconfigsrequest *GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsRequest) *CustomersCampaignGoalConfigsMutateCall {
	c := &CustomersCampaignGoalConfigsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaigngoalconfigsrequest = googleadssearchads360v23services__mutatecampaigngoalconfigsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignGoalConfigsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignGoalConfigsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignGoalConfigsMutateCall) Context(ctx context.Context) *CustomersCampaignGoalConfigsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignGoalConfigsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignGoalConfigsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaigngoalconfigsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/CampaignGoalConfigs:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.CampaignGoalConfigs.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.CampaignGoalConfigs.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse.ServerRe
// sponse.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 *CustomersCampaignGoalConfigsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignGoalConfigsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.CampaignGoalConfigs.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerCustomizersMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutatecustomercustomizersrequest *GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Creates, updates or removes customer customizers. Operation statuses
// are returned.
//
//   - customerId: The ID of the customer whose customer customizers are being
//     modified.
func (r *CustomersCustomerCustomizersService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomercustomizersrequest *GoogleAdsSearchads360V23Services__MutateCustomerCustomizersRequest) *CustomersCustomerCustomizersMutateCall {
	c := &CustomersCustomerCustomizersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomercustomizersrequest = googleadssearchads360v23services__mutatecustomercustomizersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerCustomizersMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerCustomizersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerCustomizersMutateCall) Context(ctx context.Context) *CustomersCustomerCustomizersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerCustomizersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerCustomizersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomercustomizersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/CustomerCustomizers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.CustomerCustomizers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.CustomerCustomizers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse.ServerRe
// sponse.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 *CustomersCustomerCustomizersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerCustomizersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.CustomerCustomizers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersGoalsMutateCall struct {
	s                                                    *Service
	customerId                                           string
	googleadssearchads360v23services__mutategoalsrequest *GoogleAdsSearchads360V23Services__MutateGoalsRequest
	urlParams_                                           gensupport.URLParams
	ctx_                                                 context.Context
	header_                                              http.Header
}

// Mutate: Create or update goals. List of thrown errors: AuthenticationError
// () [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]() GoalError () [GoalServicesError]()
//
// - customerId: The ID of the customer whose goals are being modified.
func (r *CustomersGoalsService) Mutate(customerId string, googleadssearchads360v23services__mutategoalsrequest *GoogleAdsSearchads360V23Services__MutateGoalsRequest) *CustomersGoalsMutateCall {
	c := &CustomersGoalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutategoalsrequest = googleadssearchads360v23services__mutategoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersGoalsMutateCall) Fields(s ...googleapi.Field) *CustomersGoalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersGoalsMutateCall) Context(ctx context.Context) *CustomersGoalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersGoalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersGoalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutategoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/Goals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.Goals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.Goals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateGoalsResponse.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 *CustomersGoalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.Goals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAccountBudgetProposalsMutateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__mutateaccountbudgetproposalrequest *GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Mutate: Creates, updates, or removes account budget proposals. Operation
// statuses are returned. List of thrown errors: AccountBudgetProposalError ()
// [AuthenticationError]() AuthorizationError () [DatabaseError]() DateError ()
// [FieldError]() FieldMaskError () [HeaderError]() InternalError ()
// [MutateError]() QuotaError () [RequestError]() StringLengthError ()
//
// - customerId: The ID of the customer.
func (r *CustomersAccountBudgetProposalsService) Mutate(customerId string, googleadssearchads360v23services__mutateaccountbudgetproposalrequest *GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalRequest) *CustomersAccountBudgetProposalsMutateCall {
	c := &CustomersAccountBudgetProposalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateaccountbudgetproposalrequest = googleadssearchads360v23services__mutateaccountbudgetproposalrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAccountBudgetProposalsMutateCall) Fields(s ...googleapi.Field) *CustomersAccountBudgetProposalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAccountBudgetProposalsMutateCall) Context(ctx context.Context) *CustomersAccountBudgetProposalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAccountBudgetProposalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAccountBudgetProposalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateaccountbudgetproposalrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/accountBudgetProposals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.accountBudgetProposals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.accountBudgetProposals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse.Server
// Response.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 *CustomersAccountBudgetProposalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAccountBudgetProposalResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.accountBudgetProposals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAccountLinksCreateCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__createaccountlinkrequest *GoogleAdsSearchads360V23Services__CreateAccountLinkRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Create: Creates an account link. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() MutateError () [QuotaError]() RequestError ()
// [ThirdPartyAppAnalyticsLinkError]()
//
// - customerId: The ID of the customer for which the account link is created.
func (r *CustomersAccountLinksService) Create(customerId string, googleadssearchads360v23services__createaccountlinkrequest *GoogleAdsSearchads360V23Services__CreateAccountLinkRequest) *CustomersAccountLinksCreateCall {
	c := &CustomersAccountLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createaccountlinkrequest = googleadssearchads360v23services__createaccountlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAccountLinksCreateCall) Fields(s ...googleapi.Field) *CustomersAccountLinksCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAccountLinksCreateCall) Context(ctx context.Context) *CustomersAccountLinksCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAccountLinksCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAccountLinksCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createaccountlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/accountLinks:create")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.accountLinks.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.accountLinks.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateAccountLinkResponse.ServerResponse.H
// eader 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 *CustomersAccountLinksCreateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateAccountLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateAccountLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.accountLinks.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAccountLinksMutateCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__mutateaccountlinkrequest *GoogleAdsSearchads360V23Services__MutateAccountLinkRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Mutate: Creates or removes an account link. From V5, create is not supported
// through AccountLinkService.MutateAccountLink. Use
// AccountLinkService.CreateAccountLink instead. List of thrown errors:
// AccountLinkError () [AuthenticationError]() AuthorizationError ()
// [FieldMaskError]() HeaderError () [InternalError]() MutateError ()
// [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer being modified.
func (r *CustomersAccountLinksService) Mutate(customerId string, googleadssearchads360v23services__mutateaccountlinkrequest *GoogleAdsSearchads360V23Services__MutateAccountLinkRequest) *CustomersAccountLinksMutateCall {
	c := &CustomersAccountLinksMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateaccountlinkrequest = googleadssearchads360v23services__mutateaccountlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAccountLinksMutateCall) Fields(s ...googleapi.Field) *CustomersAccountLinksMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAccountLinksMutateCall) Context(ctx context.Context) *CustomersAccountLinksMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAccountLinksMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAccountLinksMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateaccountlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/accountLinks:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.accountLinks.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.accountLinks.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAccountLinkResponse.ServerResponse.H
// eader 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 *CustomersAccountLinksMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAccountLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAccountLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.accountLinks.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupAdLabelsMutateCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__mutateadgroupadlabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Mutate: Creates and removes ad group ad labels. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [HeaderError]() InternalError ()
// [LabelError]() MutateError () [NewResourceCreationError]() QuotaError ()
// [RequestError]()
//
//   - customerId: ID of the customer whose ad group ad labels are being
//     modified.
func (r *CustomersAdGroupAdLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupadlabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsRequest) *CustomersAdGroupAdLabelsMutateCall {
	c := &CustomersAdGroupAdLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupadlabelsrequest = googleadssearchads360v23services__mutateadgroupadlabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupAdLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupAdLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupAdLabelsMutateCall) Context(ctx context.Context) *CustomersAdGroupAdLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupAdLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupAdLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupadlabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupAdLabels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAdLabels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupAdLabels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse.ServerRespon
// se.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 *CustomersAdGroupAdLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupAdLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAdLabels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupAdsMutateCall struct {
	s                                                         *Service
	customerId                                                string
	googleadssearchads360v23services__mutateadgroupadsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest
	urlParams_                                                gensupport.URLParams
	ctx_                                                      context.Context
	header_                                                   http.Header
}

// Mutate: Creates, updates, or removes ads. Operation statuses are returned.
// List of thrown errors: AdCustomizerError () [AdError]() AdGroupAdError ()
// [AdSharingError]() AdxError () [AssetError]() AssetLinkError ()
// [AuthenticationError]() AuthorizationError () [CollectionSizeError]()
// ContextError () [DatabaseError]() DateError () [DistinctError]()
// FeedAttributeReferenceError () [FieldError]() FieldMaskError ()
// [FunctionError]() FunctionParsingError () [HeaderError]() IdError ()
// [ImageError]() InternalError () [ListOperationError]() MediaBundleError ()
// [MediaFileError]() MutateError () [NewResourceCreationError]() NotEmptyError
// () [NullError]() OperationAccessDeniedError () [OperatorError]()
// PolicyFindingError () [PolicyValidationParameterError]()
// PolicyViolationError () [QuotaError]() RangeError () [RequestError]()
// ResourceCountLimitExceededError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]() UrlFieldError ()
//
// - customerId: The ID of the customer whose ads are being modified.
func (r *CustomersAdGroupAdsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupadsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAdsRequest) *CustomersAdGroupAdsMutateCall {
	c := &CustomersAdGroupAdsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupadsrequest = googleadssearchads360v23services__mutateadgroupadsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupAdsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupAdsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupAdsMutateCall) Context(ctx context.Context) *CustomersAdGroupAdsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupAdsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupAdsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupadsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupAds:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAds.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupAds.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse.ServerResponse.He
// ader 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 *CustomersAdGroupAdsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupAdsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAds.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall struct {
	s                                                                         *Service
	adGroupAd                                                                 string
	googleadssearchads360v23services__removeautomaticallycreatedassetsrequest *GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest
	urlParams_                                                                gensupport.URLParams
	ctx_                                                                      context.Context
	header_                                                                   http.Header
}

// RemoveAutomaticallyCreatedAssets: Remove automatically created assets from
// an ad. List of thrown errors: AdError () [AuthenticationError]()
// AuthorizationError () [AutomaticallyCreatedAssetRemovalError]() HeaderError
// () [InternalError]() MutateError () [QuotaError]() RequestError ()
//
//   - adGroupAd: The resource name of the AdGroupAd from which to remove
//     automatically created assets.
func (r *CustomersAdGroupAdsService) RemoveAutomaticallyCreatedAssets(adGroupAd string, googleadssearchads360v23services__removeautomaticallycreatedassetsrequest *GoogleAdsSearchads360V23Services__RemoveAutomaticallyCreatedAssetsRequest) *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall {
	c := &CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.adGroupAd = adGroupAd
	c.googleadssearchads360v23services__removeautomaticallycreatedassetsrequest = googleadssearchads360v23services__removeautomaticallycreatedassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall) Fields(s ...googleapi.Field) *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall) Context(ctx context.Context) *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__removeautomaticallycreatedassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+adGroupAd}:removeAutomaticallyCreatedAssets")
	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{
		"adGroupAd": c.adGroupAd,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAds.removeAutomaticallyCreatedAssets", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupAds.removeAutomaticallyCreatedAssets" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobuf__Empty.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 *CustomersAdGroupAdsRemoveAutomaticallyCreatedAssetsCall) Do(opts ...googleapi.CallOption) (*GoogleProtobuf__Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleProtobuf__Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAds.removeAutomaticallyCreatedAssets", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupAssetSetsMutateCall struct {
	s                                                               *Service
	customerId                                                      string
	googleadssearchads360v23services__mutateadgroupassetsetsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// Mutate: Creates, or removes ad group asset sets. Operation statuses are
// returned.
//
//   - customerId: The ID of the customer whose ad group asset sets are being
//     modified.
func (r *CustomersAdGroupAssetSetsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupassetsetsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsRequest) *CustomersAdGroupAssetSetsMutateCall {
	c := &CustomersAdGroupAssetSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupassetsetsrequest = googleadssearchads360v23services__mutateadgroupassetsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupAssetSetsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupAssetSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupAssetSetsMutateCall) Context(ctx context.Context) *CustomersAdGroupAssetSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupAssetSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupAssetSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupassetsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupAssetSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAssetSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupAssetSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse.ServerRespo
// nse.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 *CustomersAdGroupAssetSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupAssetSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAssetSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupAssetsMutateCall struct {
	s                                                            *Service
	customerId                                                   string
	googleadssearchads360v23services__mutateadgroupassetsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Mutate: Creates, updates, or removes ad group assets. Operation statuses are
// returned. List of thrown errors: AssetLinkError () [AuthenticationError]()
// AuthorizationError () [ContextError]() FieldError () [HeaderError]()
// InternalError () [MutateError]() NotAllowlistedError () [QuotaError]()
// RequestError ()
//
//   - customerId: The ID of the customer whose ad group assets are being
//     modified.
func (r *CustomersAdGroupAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupassetsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupAssetsRequest) *CustomersAdGroupAssetsMutateCall {
	c := &CustomersAdGroupAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupassetsrequest = googleadssearchads360v23services__mutateadgroupassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupAssetsMutateCall) Context(ctx context.Context) *CustomersAdGroupAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupAssets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAssets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupAssets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse.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 *CustomersAdGroupAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupAssets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupBidModifiersMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutateadgroupbidmodifiersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Creates, updates, or removes ad group bid modifiers. Operation
// statuses are returned. List of thrown errors: AdGroupBidModifierError ()
// [AuthenticationError]() AuthorizationError () [ContextError]()
// CriterionError () [DatabaseError]() DistinctError () [FieldError]()
// FieldMaskError () [HeaderError]() IdError () [InternalError]() MutateError
// () [NewResourceCreationError]() NotEmptyError () [OperatorError]()
// QuotaError () [RangeError]() RequestError ()
// [ResourceCountLimitExceededError]() SizeLimitError () [StringFormatError]()
// StringLengthError ()
//
//   - customerId: ID of the customer whose ad group bid modifiers are being
//     modified.
func (r *CustomersAdGroupBidModifiersService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupbidmodifiersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersRequest) *CustomersAdGroupBidModifiersMutateCall {
	c := &CustomersAdGroupBidModifiersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupbidmodifiersrequest = googleadssearchads360v23services__mutateadgroupbidmodifiersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupBidModifiersMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupBidModifiersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupBidModifiersMutateCall) Context(ctx context.Context) *CustomersAdGroupBidModifiersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupBidModifiersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupBidModifiersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupbidmodifiersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupBidModifiers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupBidModifiers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupBidModifiers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse.ServerRe
// sponse.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 *CustomersAdGroupBidModifiersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupBidModifiersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupBidModifiers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupCriteriaMutateCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__mutateadgroupcriteriarequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Mutate: Creates, updates, or removes criteria. Operation statuses are
// returned. List of thrown errors: AdGroupCriterionError () [AdxError]()
// AuthenticationError () [AuthorizationError]() BiddingError ()
// [BiddingStrategyError]() CollectionSizeError () [ContextError]()
// CriterionError () [DatabaseError]() DateError () [DistinctError]()
// FieldError () [FieldMaskError]() HeaderError () [IdError]() InternalError ()
// [MultiplierError]() MutateError () [NewResourceCreationError]()
// NotEmptyError () [NullError]() OperationAccessDeniedError ()
// [OperatorError]() PolicyViolationError () [QuotaError]() RangeError ()
// [RequestError]() ResourceCountLimitExceededError () [SizeLimitError]()
// StringFormatError () [StringLengthError]() UrlFieldError ()
//
// - customerId: ID of the customer whose criteria are being modified.
func (r *CustomersAdGroupCriteriaService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupcriteriarequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaRequest) *CustomersAdGroupCriteriaMutateCall {
	c := &CustomersAdGroupCriteriaMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupcriteriarequest = googleadssearchads360v23services__mutateadgroupcriteriarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupCriteriaMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupCriteriaMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupCriteriaMutateCall) Context(ctx context.Context) *CustomersAdGroupCriteriaMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupCriteriaMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupCriteriaMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupcriteriarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupCriteria:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCriteria.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupCriteria.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse.ServerRespon
// se.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 *CustomersAdGroupCriteriaMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupCriteriaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCriteria.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupCriterionLabelsMutateCall struct {
	s                                                                     *Service
	customerId                                                            string
	googleadssearchads360v23services__mutateadgroupcriterionlabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest
	urlParams_                                                            gensupport.URLParams
	ctx_                                                                  context.Context
	header_                                                               http.Header
}

// Mutate: Creates and removes ad group criterion labels. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
//   - customerId: ID of the customer whose ad group criterion labels are being
//     modified.
func (r *CustomersAdGroupCriterionLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupcriterionlabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsRequest) *CustomersAdGroupCriterionLabelsMutateCall {
	c := &CustomersAdGroupCriterionLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupcriterionlabelsrequest = googleadssearchads360v23services__mutateadgroupcriterionlabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupCriterionLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupCriterionLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupCriterionLabelsMutateCall) Context(ctx context.Context) *CustomersAdGroupCriterionLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupCriterionLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupCriterionLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupcriterionlabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupCriterionLabels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCriterionLabels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupCriterionLabels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse.Serve
// rResponse.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 *CustomersAdGroupCriterionLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupCriterionLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCriterionLabels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupCustomizersMutateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__mutateadgroupcustomizersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Mutate: Creates, updates or removes ad group customizers. Operation statuses
// are returned.
//
//   - customerId: The ID of the customer whose ad group customizers are being
//     modified.
func (r *CustomersAdGroupCustomizersService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupcustomizersrequest *GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersRequest) *CustomersAdGroupCustomizersMutateCall {
	c := &CustomersAdGroupCustomizersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupcustomizersrequest = googleadssearchads360v23services__mutateadgroupcustomizersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupCustomizersMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupCustomizersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupCustomizersMutateCall) Context(ctx context.Context) *CustomersAdGroupCustomizersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupCustomizersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupCustomizersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupcustomizersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupCustomizers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCustomizers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupCustomizers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse.ServerRes
// ponse.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 *CustomersAdGroupCustomizersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupCustomizersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupCustomizers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupLabelsMutateCall struct {
	s                                                            *Service
	customerId                                                   string
	googleadssearchads360v23services__mutateadgrouplabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Mutate: Creates and removes ad group labels. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() LabelError () [MutateError]() NewResourceCreationError ()
// [QuotaError]() RequestError ()
//
// - customerId: ID of the customer whose ad group labels are being modified.
func (r *CustomersAdGroupLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgrouplabelsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupLabelsRequest) *CustomersAdGroupLabelsMutateCall {
	c := &CustomersAdGroupLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgrouplabelsrequest = googleadssearchads360v23services__mutateadgrouplabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupLabelsMutateCall) Context(ctx context.Context) *CustomersAdGroupLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgrouplabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroupLabels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupLabels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroupLabels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse.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 *CustomersAdGroupLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroupLabels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdGroupsMutateCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__mutateadgroupsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupsRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Mutate: Creates, updates, or removes ad groups. Operation statuses are
// returned. List of thrown errors: AdGroupError () [AdxError]()
// AuthenticationError () [AuthorizationError]() BiddingError ()
// [BiddingStrategyError]() DatabaseError () [DateError]() DistinctError ()
// [FieldError]() FieldMaskError () [HeaderError]() IdError ()
// [InternalError]() ListOperationError () [MultiplierError]() MutateError ()
// [NewResourceCreationError]() NotEmptyError () [NullError]()
// OperationAccessDeniedError () [OperatorError]() QuotaError () [RangeError]()
// RequestError () [ResourceCountLimitExceededError]() SettingError ()
// [SizeLimitError]() StringFormatError () [StringLengthError]() UrlFieldError
// ()
//
// - customerId: The ID of the customer whose ad groups are being modified.
func (r *CustomersAdGroupsService) Mutate(customerId string, googleadssearchads360v23services__mutateadgroupsrequest *GoogleAdsSearchads360V23Services__MutateAdGroupsRequest) *CustomersAdGroupsMutateCall {
	c := &CustomersAdGroupsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadgroupsrequest = googleadssearchads360v23services__mutateadgroupsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdGroupsMutateCall) Fields(s ...googleapi.Field) *CustomersAdGroupsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdGroupsMutateCall) Context(ctx context.Context) *CustomersAdGroupsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdGroupsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdGroupsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadgroupsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adGroups:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adGroups.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adGroups.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdGroupsResponse.ServerResponse.Head
// er 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 *CustomersAdGroupsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdGroupsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdGroupsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adGroups.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdParametersMutateCall struct {
	s                                                           *Service
	customerId                                                  string
	googleadssearchads360v23services__mutateadparametersrequest *GoogleAdsSearchads360V23Services__MutateAdParametersRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Mutate: Creates, updates, or removes ad parameters. Operation statuses are
// returned. List of thrown errors: AdParameterError () [AuthenticationError]()
// AuthorizationError () [ContextError]() DatabaseError () [FieldError]()
// FieldMaskError () [HeaderError]() InternalError () [MutateError]()
// QuotaError () [RequestError]()
//
// - customerId: The ID of the customer whose ad parameters are being modified.
func (r *CustomersAdParametersService) Mutate(customerId string, googleadssearchads360v23services__mutateadparametersrequest *GoogleAdsSearchads360V23Services__MutateAdParametersRequest) *CustomersAdParametersMutateCall {
	c := &CustomersAdParametersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadparametersrequest = googleadssearchads360v23services__mutateadparametersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdParametersMutateCall) Fields(s ...googleapi.Field) *CustomersAdParametersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdParametersMutateCall) Context(ctx context.Context) *CustomersAdParametersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdParametersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdParametersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadparametersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/adParameters:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.adParameters.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.adParameters.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdParametersResponse.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 *CustomersAdParametersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdParametersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdParametersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.adParameters.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAdsMutateCall struct {
	s                                                  *Service
	customerId                                         string
	googleadssearchads360v23services__mutateadsrequest *GoogleAdsSearchads360V23Services__MutateAdsRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// Mutate: Updates ads. Operation statuses are returned. Updating ads is not
// supported for TextAd, ExpandedDynamicSearchAd, GmailAd and ImageAd. List of
// thrown errors: AdCustomizerError () [AdError]() AdSharingError ()
// [AdxError]() AssetError () [AssetLinkError]() AuthenticationError ()
// [AuthorizationError]() CollectionSizeError () [DatabaseError]() DateError ()
// [DistinctError]() FeedAttributeReferenceError () [FieldError]()
// FieldMaskError () [FunctionError]() FunctionParsingError () [HeaderError]()
// IdError () [ImageError]() InternalError () [ListOperationError]()
// MediaBundleError () [MediaFileError]() MutateError ()
// [NewResourceCreationError]() NotEmptyError () [NullError]() OperatorError ()
// [PolicyFindingError]() PolicyViolationError () [QuotaError]() RangeError ()
// [RequestError]() SizeLimitError () [StringFormatError]() StringLengthError
// () [UrlFieldError]()
//
// - customerId: The ID of the customer whose ads are being modified.
func (r *CustomersAdsService) Mutate(customerId string, googleadssearchads360v23services__mutateadsrequest *GoogleAdsSearchads360V23Services__MutateAdsRequest) *CustomersAdsMutateCall {
	c := &CustomersAdsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateadsrequest = googleadssearchads360v23services__mutateadsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAdsMutateCall) Fields(s ...googleapi.Field) *CustomersAdsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAdsMutateCall) Context(ctx context.Context) *CustomersAdsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAdsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAdsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateadsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/ads:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.ads.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.ads.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAdsResponse.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 *CustomersAdsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAdsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAdsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.ads.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetGroupAssetsMutateCall struct {
	s                                                               *Service
	customerId                                                      string
	googleadssearchads360v23services__mutateassetgroupassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// Mutate: Creates, updates or removes asset group assets. Operation statuses
// are returned.
//
//   - customerId: The ID of the customer whose asset group assets are being
//     modified.
func (r *CustomersAssetGroupAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetgroupassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsRequest) *CustomersAssetGroupAssetsMutateCall {
	c := &CustomersAssetGroupAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetgroupassetsrequest = googleadssearchads360v23services__mutateassetgroupassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetGroupAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetGroupAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetGroupAssetsMutateCall) Context(ctx context.Context) *CustomersAssetGroupAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetGroupAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetGroupAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetgroupassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetGroupAssets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupAssets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetGroupAssets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse.ServerRespo
// nse.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 *CustomersAssetGroupAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetGroupAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupAssets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetGroupListingGroupFiltersMutateCall struct {
	s                                                                            *Service
	customerId                                                                   string
	googleadssearchads360v23services__mutateassetgrouplistinggroupfiltersrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest
	urlParams_                                                                   gensupport.URLParams
	ctx_                                                                         context.Context
	header_                                                                      http.Header
}

// Mutate: Creates, updates or removes asset group listing group filters.
// Operation statuses are returned.
//
//   - customerId: The ID of the customer whose asset group listing group filters
//     are being modified.
func (r *CustomersAssetGroupListingGroupFiltersService) Mutate(customerId string, googleadssearchads360v23services__mutateassetgrouplistinggroupfiltersrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRequest) *CustomersAssetGroupListingGroupFiltersMutateCall {
	c := &CustomersAssetGroupListingGroupFiltersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetgrouplistinggroupfiltersrequest = googleadssearchads360v23services__mutateassetgrouplistinggroupfiltersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetGroupListingGroupFiltersMutateCall) Fields(s ...googleapi.Field) *CustomersAssetGroupListingGroupFiltersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetGroupListingGroupFiltersMutateCall) Context(ctx context.Context) *CustomersAssetGroupListingGroupFiltersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetGroupListingGroupFiltersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetGroupListingGroupFiltersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetgrouplistinggroupfiltersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetGroupListingGroupFilters:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupListingGroupFilters.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetGroupListingGroupFilters.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersRespons
// e.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 *CustomersAssetGroupListingGroupFiltersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetGroupListingGroupFiltersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupListingGroupFilters.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetGroupSignalsMutateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__mutateassetgroupsignalsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Mutate: Creates or removes asset group signals. Operation statuses are
// returned.
//
//   - customerId: The ID of the customer whose asset group signals are being
//     modified.
func (r *CustomersAssetGroupSignalsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetgroupsignalsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsRequest) *CustomersAssetGroupSignalsMutateCall {
	c := &CustomersAssetGroupSignalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetgroupsignalsrequest = googleadssearchads360v23services__mutateassetgroupsignalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetGroupSignalsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetGroupSignalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetGroupSignalsMutateCall) Context(ctx context.Context) *CustomersAssetGroupSignalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetGroupSignalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetGroupSignalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetgroupsignalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetGroupSignals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupSignals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetGroupSignals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse.ServerResp
// onse.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 *CustomersAssetGroupSignalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetGroupSignalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroupSignals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetGroupsMutateCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__mutateassetgroupsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Mutate: Creates, updates or removes asset groups. Operation statuses are
// returned.
//
// - customerId: The ID of the customer whose asset groups are being modified.
func (r *CustomersAssetGroupsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetgroupsrequest *GoogleAdsSearchads360V23Services__MutateAssetGroupsRequest) *CustomersAssetGroupsMutateCall {
	c := &CustomersAssetGroupsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetgroupsrequest = googleadssearchads360v23services__mutateassetgroupsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetGroupsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetGroupsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetGroupsMutateCall) Context(ctx context.Context) *CustomersAssetGroupsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetGroupsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetGroupsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetgroupsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetGroups:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroups.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetGroups.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse.ServerResponse.H
// eader 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 *CustomersAssetGroupsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetGroupsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetGroups.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetSetAssetsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutateassetsetassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates, updates or removes asset set assets. Operation statuses are
// returned.
//
//   - customerId: The ID of the customer whose asset set assets are being
//     modified.
func (r *CustomersAssetSetAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetsetassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetSetAssetsRequest) *CustomersAssetSetAssetsMutateCall {
	c := &CustomersAssetSetAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetsetassetsrequest = googleadssearchads360v23services__mutateassetsetassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetSetAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetSetAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetSetAssetsMutateCall) Context(ctx context.Context) *CustomersAssetSetAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetSetAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetSetAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetsetassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetSetAssets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetSetAssets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetSetAssets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse.ServerRespons
// e.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 *CustomersAssetSetAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetSetAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetSetAssets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetSetsMutateCall struct {
	s                                                        *Service
	customerId                                               string
	googleadssearchads360v23services__mutateassetsetsrequest *GoogleAdsSearchads360V23Services__MutateAssetSetsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Mutate: Creates, updates or removes asset sets. Operation statuses are
// returned.
//
// - customerId: The ID of the customer whose asset sets are being modified.
func (r *CustomersAssetSetsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetsetsrequest *GoogleAdsSearchads360V23Services__MutateAssetSetsRequest) *CustomersAssetSetsMutateCall {
	c := &CustomersAssetSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetsetsrequest = googleadssearchads360v23services__mutateassetsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetSetsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetSetsMutateCall) Context(ctx context.Context) *CustomersAssetSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assetSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assetSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assetSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetSetsResponse.ServerResponse.Hea
// der 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 *CustomersAssetSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assetSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAssetsMutateCall struct {
	s                                                     *Service
	customerId                                            string
	googleadssearchads360v23services__mutateassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetsRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// Mutate: Creates assets. Operation statuses are returned. List of thrown
// errors: AssetError () [AuthenticationError]() AuthorizationError ()
// [CollectionSizeError]() CurrencyCodeError () [DatabaseError]() DateError ()
// [DistinctError]() FieldError () [FieldMaskError]() HeaderError ()
// [IdError]() InternalError () [ListOperationError]() MediaUploadError ()
// [MutateError]() NotAllowlistedError () [NotEmptyError]() OperatorError ()
// [QuotaError]() RangeError () [RequestError]() SizeLimitError ()
// [StringFormatError]() StringLengthError () [UrlFieldError]()
// YoutubeVideoRegistrationError ()
//
// - customerId: The ID of the customer whose assets are being modified.
func (r *CustomersAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutateassetsrequest *GoogleAdsSearchads360V23Services__MutateAssetsRequest) *CustomersAssetsMutateCall {
	c := &CustomersAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateassetsrequest = googleadssearchads360v23services__mutateassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAssetsMutateCall) Context(ctx context.Context) *CustomersAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/assets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.assets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.assets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAssetsResponse.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 *CustomersAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.assets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersAudiencesMutateCall struct {
	s                                                        *Service
	customerId                                               string
	googleadssearchads360v23services__mutateaudiencesrequest *GoogleAdsSearchads360V23Services__MutateAudiencesRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Mutate: Creates audiences. Operation statuses are returned. List of thrown
// errors: AudienceError ()
//
// - customerId: The ID of the customer whose audiences are being modified.
func (r *CustomersAudiencesService) Mutate(customerId string, googleadssearchads360v23services__mutateaudiencesrequest *GoogleAdsSearchads360V23Services__MutateAudiencesRequest) *CustomersAudiencesMutateCall {
	c := &CustomersAudiencesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateaudiencesrequest = googleadssearchads360v23services__mutateaudiencesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersAudiencesMutateCall) Fields(s ...googleapi.Field) *CustomersAudiencesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersAudiencesMutateCall) Context(ctx context.Context) *CustomersAudiencesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersAudiencesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersAudiencesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateaudiencesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/audiences:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.audiences.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.audiences.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateAudiencesResponse.ServerResponse.Hea
// der 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 *CustomersAudiencesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateAudiencesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateAudiencesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.audiences.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBatchJobsAddOperationsCall struct {
	s                                                              *Service
	resourceName                                                   string
	googleadssearchads360v23services__addbatchjoboperationsrequest *GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// AddOperations: Add operations to the batch job. List of thrown errors:
// AuthenticationError () [AuthorizationError]() BatchJobError ()
// [HeaderError]() InternalError () [QuotaError]() RequestError ()
// [ResourceCountLimitExceededError]()
//
// - resourceName: The resource name of the batch job.
func (r *CustomersBatchJobsService) AddOperations(resourceName string, googleadssearchads360v23services__addbatchjoboperationsrequest *GoogleAdsSearchads360V23Services__AddBatchJobOperationsRequest) *CustomersBatchJobsAddOperationsCall {
	c := &CustomersBatchJobsAddOperationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__addbatchjoboperationsrequest = googleadssearchads360v23services__addbatchjoboperationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBatchJobsAddOperationsCall) Fields(s ...googleapi.Field) *CustomersBatchJobsAddOperationsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBatchJobsAddOperationsCall) Context(ctx context.Context) *CustomersBatchJobsAddOperationsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBatchJobsAddOperationsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBatchJobsAddOperationsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__addbatchjoboperationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:addOperations")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.addOperations", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.batchJobs.addOperations" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse.ServerRespon
// se.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 *CustomersBatchJobsAddOperationsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__AddBatchJobOperationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.addOperations", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBatchJobsListResultsCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListResults: Returns the results of the batch job. The job must be done.
// Supports standard list paging. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() BatchJobError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
//
//   - resourceName: The resource name of the batch job whose results are being
//     listed.
func (r *CustomersBatchJobsService) ListResults(resourceName string) *CustomersBatchJobsListResultsCall {
	c := &CustomersBatchJobsListResultsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// PageSize sets the optional parameter "pageSize":
func (c *CustomersBatchJobsListResultsCall) PageSize(pageSize int64) *CustomersBatchJobsListResultsCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": Token of the page to
// retrieve. If not specified, the first page of results will be returned. Use
// the value obtained from `next_page_token` in the previous response in order
// to request the next page of results.
func (c *CustomersBatchJobsListResultsCall) PageToken(pageToken string) *CustomersBatchJobsListResultsCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ResponseContentType sets the optional parameter "responseContentType": The
// response content type setting. Determines whether the mutable resource or
// just the resource name should be returned.
//
// Possible values:
//
//	"UNSPECIFIED" - Not specified. Will return the resource name only in the
//
// response.
//
//	"RESOURCE_NAME_ONLY" - The mutate response will be the resource name.
//	"MUTABLE_RESOURCE" - The mutate response will contain the resource name
//
// and the resource with mutable fields if possible. Otherwise, only the
// resource name will be returned.
func (c *CustomersBatchJobsListResultsCall) ResponseContentType(responseContentType string) *CustomersBatchJobsListResultsCall {
	c.urlParams_.Set("responseContentType", responseContentType)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBatchJobsListResultsCall) Fields(s ...googleapi.Field) *CustomersBatchJobsListResultsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersBatchJobsListResultsCall) IfNoneMatch(entityTag string) *CustomersBatchJobsListResultsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBatchJobsListResultsCall) Context(ctx context.Context) *CustomersBatchJobsListResultsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBatchJobsListResultsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBatchJobsListResultsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:listResults")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.listResults", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.batchJobs.listResults" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse.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 *CustomersBatchJobsListResultsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.listResults", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersBatchJobsListResultsCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__ListBatchJobResultsResponse) error) error {
	c.ctx_ = ctx
	defer c.PageToken(c.urlParams_.Get("pageToken"))
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.PageToken(x.NextPageToken)
	}
}

type CustomersBatchJobsMutateCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__mutatebatchjobrequest *GoogleAdsSearchads360V23Services__MutateBatchJobRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Mutate: Mutates a batch job. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]() ResourceCountLimitExceededError ()
//
// - customerId: The ID of the customer for which to create a batch job.
func (r *CustomersBatchJobsService) Mutate(customerId string, googleadssearchads360v23services__mutatebatchjobrequest *GoogleAdsSearchads360V23Services__MutateBatchJobRequest) *CustomersBatchJobsMutateCall {
	c := &CustomersBatchJobsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatebatchjobrequest = googleadssearchads360v23services__mutatebatchjobrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBatchJobsMutateCall) Fields(s ...googleapi.Field) *CustomersBatchJobsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBatchJobsMutateCall) Context(ctx context.Context) *CustomersBatchJobsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBatchJobsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBatchJobsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatebatchjobrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/batchJobs:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.batchJobs.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateBatchJobResponse.ServerResponse.Head
// er 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 *CustomersBatchJobsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateBatchJobResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateBatchJobResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBatchJobsRunCall struct {
	s                                                    *Service
	resourceName                                         string
	googleadssearchads360v23services__runbatchjobrequest *GoogleAdsSearchads360V23Services__RunBatchJobRequest
	urlParams_                                           gensupport.URLParams
	ctx_                                                 context.Context
	header_                                              http.Header
}

// Run: Runs the batch job. The Operation.metadata field type is
// BatchJobMetadata. When finished, the long running operation will not contain
// errors or a response. Instead, use ListBatchJobResults to get the results of
// the job. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() BatchJobError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
//
// - resourceName: The resource name of the BatchJob to run.
func (r *CustomersBatchJobsService) Run(resourceName string, googleadssearchads360v23services__runbatchjobrequest *GoogleAdsSearchads360V23Services__RunBatchJobRequest) *CustomersBatchJobsRunCall {
	c := &CustomersBatchJobsRunCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__runbatchjobrequest = googleadssearchads360v23services__runbatchjobrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBatchJobsRunCall) Fields(s ...googleapi.Field) *CustomersBatchJobsRunCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBatchJobsRunCall) Context(ctx context.Context) *CustomersBatchJobsRunCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBatchJobsRunCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBatchJobsRunCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__runbatchjobrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:run")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.run", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.batchJobs.run" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunning__Operation.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 *CustomersBatchJobsRunCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleLongrunning__Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.batchJobs.run", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBiddingDataExclusionsMutateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__mutatebiddingdataexclusionsrequest *GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Mutate: Creates, updates, or removes data exclusions. Operation statuses are
// returned.
//
// - customerId: ID of the customer whose data exclusions are being modified.
func (r *CustomersBiddingDataExclusionsService) Mutate(customerId string, googleadssearchads360v23services__mutatebiddingdataexclusionsrequest *GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsRequest) *CustomersBiddingDataExclusionsMutateCall {
	c := &CustomersBiddingDataExclusionsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatebiddingdataexclusionsrequest = googleadssearchads360v23services__mutatebiddingdataexclusionsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBiddingDataExclusionsMutateCall) Fields(s ...googleapi.Field) *CustomersBiddingDataExclusionsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBiddingDataExclusionsMutateCall) Context(ctx context.Context) *CustomersBiddingDataExclusionsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBiddingDataExclusionsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBiddingDataExclusionsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatebiddingdataexclusionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/biddingDataExclusions:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.biddingDataExclusions.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.biddingDataExclusions.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse.Server
// Response.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 *CustomersBiddingDataExclusionsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateBiddingDataExclusionsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.biddingDataExclusions.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBiddingSeasonalityAdjustmentsMutateCall struct {
	s                                                                            *Service
	customerId                                                                   string
	googleadssearchads360v23services__mutatebiddingseasonalityadjustmentsrequest *GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest
	urlParams_                                                                   gensupport.URLParams
	ctx_                                                                         context.Context
	header_                                                                      http.Header
}

// Mutate: Creates, updates, or removes seasonality adjustments. Operation
// statuses are returned.
//
//   - customerId: ID of the customer whose seasonality adjustments are being
//     modified.
func (r *CustomersBiddingSeasonalityAdjustmentsService) Mutate(customerId string, googleadssearchads360v23services__mutatebiddingseasonalityadjustmentsrequest *GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRequest) *CustomersBiddingSeasonalityAdjustmentsMutateCall {
	c := &CustomersBiddingSeasonalityAdjustmentsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatebiddingseasonalityadjustmentsrequest = googleadssearchads360v23services__mutatebiddingseasonalityadjustmentsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBiddingSeasonalityAdjustmentsMutateCall) Fields(s ...googleapi.Field) *CustomersBiddingSeasonalityAdjustmentsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBiddingSeasonalityAdjustmentsMutateCall) Context(ctx context.Context) *CustomersBiddingSeasonalityAdjustmentsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBiddingSeasonalityAdjustmentsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBiddingSeasonalityAdjustmentsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatebiddingseasonalityadjustmentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/biddingSeasonalityAdjustments:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.biddingSeasonalityAdjustments.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.biddingSeasonalityAdjustments.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsRespons
// e.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 *CustomersBiddingSeasonalityAdjustmentsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateBiddingSeasonalityAdjustmentsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.biddingSeasonalityAdjustments.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBiddingStrategiesMutateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__mutatebiddingstrategiesrequest *GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Mutate: Creates, updates, or removes bidding strategies. Operation statuses
// are returned. List of thrown errors: AdxError () [AuthenticationError]()
// AuthorizationError () [BiddingError]() BiddingStrategyError ()
// [ContextError]() DatabaseError () [DateError]() DistinctError ()
// [FieldError]() FieldMaskError () [HeaderError]() IdError ()
// [InternalError]() MutateError () [NewResourceCreationError]() NotEmptyError
// () [NullError]() OperationAccessDeniedError () [OperatorError]() QuotaError
// () [RangeError]() RequestError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]()
//
//   - customerId: The ID of the customer whose bidding strategies are being
//     modified.
func (r *CustomersBiddingStrategiesService) Mutate(customerId string, googleadssearchads360v23services__mutatebiddingstrategiesrequest *GoogleAdsSearchads360V23Services__MutateBiddingStrategiesRequest) *CustomersBiddingStrategiesMutateCall {
	c := &CustomersBiddingStrategiesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatebiddingstrategiesrequest = googleadssearchads360v23services__mutatebiddingstrategiesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBiddingStrategiesMutateCall) Fields(s ...googleapi.Field) *CustomersBiddingStrategiesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBiddingStrategiesMutateCall) Context(ctx context.Context) *CustomersBiddingStrategiesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBiddingStrategiesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBiddingStrategiesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatebiddingstrategiesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/biddingStrategies:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.biddingStrategies.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.biddingStrategies.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse.ServerResp
// onse.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 *CustomersBiddingStrategiesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateBiddingStrategiesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.biddingStrategies.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersBillingSetupsMutateCall struct {
	s                                                           *Service
	customerId                                                  string
	googleadssearchads360v23services__mutatebillingsetuprequest *GoogleAdsSearchads360V23Services__MutateBillingSetupRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Mutate: Creates a billing setup, or cancels an existing billing setup. List
// of thrown errors: AuthenticationError () [AuthorizationError]()
// BillingSetupError () [DateError]() FieldError () [HeaderError]()
// InternalError () [MutateError]() QuotaError () [RequestError]()
//
//   - customerId: Id of the customer to apply the billing setup mutate operation
//     to.
func (r *CustomersBillingSetupsService) Mutate(customerId string, googleadssearchads360v23services__mutatebillingsetuprequest *GoogleAdsSearchads360V23Services__MutateBillingSetupRequest) *CustomersBillingSetupsMutateCall {
	c := &CustomersBillingSetupsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatebillingsetuprequest = googleadssearchads360v23services__mutatebillingsetuprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersBillingSetupsMutateCall) Fields(s ...googleapi.Field) *CustomersBillingSetupsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersBillingSetupsMutateCall) Context(ctx context.Context) *CustomersBillingSetupsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersBillingSetupsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersBillingSetupsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatebillingsetuprequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/billingSetups:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.billingSetups.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.billingSetups.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateBillingSetupResponse.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 *CustomersBillingSetupsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateBillingSetupResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateBillingSetupResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.billingSetups.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignAssetSetsMutateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__mutatecampaignassetsetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Mutate: Creates, updates or removes campaign asset sets. Operation statuses
// are returned.
//
//   - customerId: The ID of the customer whose campaign asset sets are being
//     modified.
func (r *CustomersCampaignAssetSetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignassetsetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsRequest) *CustomersCampaignAssetSetsMutateCall {
	c := &CustomersCampaignAssetSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignassetsetsrequest = googleadssearchads360v23services__mutatecampaignassetsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignAssetSetsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignAssetSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignAssetSetsMutateCall) Context(ctx context.Context) *CustomersCampaignAssetSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignAssetSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignAssetSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignassetsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignAssetSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignAssetSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignAssetSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse.ServerResp
// onse.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 *CustomersCampaignAssetSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignAssetSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignAssetSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignAssetsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecampaignassetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates or removes campaign assets. Operation statuses are returned.
// List of thrown errors: AssetLinkError () [AuthenticationError]()
// AuthorizationError () [ContextError]() DatabaseError () [FieldError]()
// HeaderError () [InternalError]() MutateError () [NotAllowlistedError]()
// QuotaError () [RequestError]()
//
//   - customerId: The ID of the customer whose campaign assets are being
//     modified.
func (r *CustomersCampaignAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignassetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignAssetsRequest) *CustomersCampaignAssetsMutateCall {
	c := &CustomersCampaignAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignassetsrequest = googleadssearchads360v23services__mutatecampaignassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignAssetsMutateCall) Context(ctx context.Context) *CustomersCampaignAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignAssets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignAssets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignAssets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse.ServerRespons
// e.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 *CustomersCampaignAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignAssets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignBidModifiersMutateCall struct {
	s                                                                   *Service
	customerId                                                          string
	googleadssearchads360v23services__mutatecampaignbidmodifiersrequest *GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Mutate: Creates, updates, or removes campaign bid modifiers. Operation
// statuses are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ContextError () [CriterionError]() DatabaseError ()
// [DateError]() DistinctError () [FieldError]() HeaderError () [IdError]()
// InternalError () [MutateError]() NewResourceCreationError ()
// [NotEmptyError]() NullError () [OperatorError]() QuotaError ()
// [RangeError]() RequestError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]()
//
//   - customerId: ID of the customer whose campaign bid modifiers are being
//     modified.
func (r *CustomersCampaignBidModifiersService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignbidmodifiersrequest *GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersRequest) *CustomersCampaignBidModifiersMutateCall {
	c := &CustomersCampaignBidModifiersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignbidmodifiersrequest = googleadssearchads360v23services__mutatecampaignbidmodifiersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignBidModifiersMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignBidModifiersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignBidModifiersMutateCall) Context(ctx context.Context) *CustomersCampaignBidModifiersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignBidModifiersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignBidModifiersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignbidmodifiersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignBidModifiers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignBidModifiers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignBidModifiers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse.ServerR
// esponse.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 *CustomersCampaignBidModifiersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignBidModifiersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignBidModifiers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignBudgetsMutateCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__mutatecampaignbudgetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Mutate: Creates, updates, or removes campaign budgets. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CampaignBudgetError () [DatabaseError]()
// DistinctError () [FieldError]() FieldMaskError () [HeaderError]()
// InternalError () [MutateError]() NewResourceCreationError ()
// [OperationAccessDeniedError]() QuotaError () [RangeError]() RequestError ()
// [ResourceCountLimitExceededError]() StringLengthError ()
//
//   - customerId: The ID of the customer whose campaign budgets are being
//     modified.
func (r *CustomersCampaignBudgetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignbudgetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignBudgetsRequest) *CustomersCampaignBudgetsMutateCall {
	c := &CustomersCampaignBudgetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignbudgetsrequest = googleadssearchads360v23services__mutatecampaignbudgetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignBudgetsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignBudgetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignBudgetsMutateCall) Context(ctx context.Context) *CustomersCampaignBudgetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignBudgetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignBudgetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignbudgetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignBudgets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignBudgets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignBudgets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse.ServerRespon
// se.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 *CustomersCampaignBudgetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignBudgetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignBudgets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignConversionGoalsMutateCall struct {
	s                                                                      *Service
	customerId                                                             string
	googleadssearchads360v23services__mutatecampaignconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest
	urlParams_                                                             gensupport.URLParams
	ctx_                                                                   context.Context
	header_                                                                http.Header
}

// Mutate: Creates, updates or removes campaign conversion goals. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose campaign conversion goals are
//     being modified.
func (r *CustomersCampaignConversionGoalsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsRequest) *CustomersCampaignConversionGoalsMutateCall {
	c := &CustomersCampaignConversionGoalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignconversiongoalsrequest = googleadssearchads360v23services__mutatecampaignconversiongoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignConversionGoalsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignConversionGoalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignConversionGoalsMutateCall) Context(ctx context.Context) *CustomersCampaignConversionGoalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignConversionGoalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignConversionGoalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignconversiongoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignConversionGoals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignConversionGoals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignConversionGoals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse.Serv
// erResponse.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 *CustomersCampaignConversionGoalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignConversionGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignConversionGoals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignCriteriaMutateCall struct {
	s                                                               *Service
	customerId                                                      string
	googleadssearchads360v23services__mutatecampaigncriteriarequest *GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// Mutate: Creates, updates, or removes criteria. Operation statuses are
// returned. List of thrown errors: AdxError () [AuthenticationError]()
// AuthorizationError () [CampaignCriterionError]() CollectionSizeError ()
// [ContextError]() CriterionError () [DatabaseError]() DistinctError ()
// [FieldError]() FieldMaskError () [FunctionError]() HeaderError ()
// [IdError]() InternalError () [MutateError]() NewResourceCreationError ()
// [NotEmptyError]() NullError () [OperationAccessDeniedError]() OperatorError
// () [QuotaError]() RangeError () [RegionCodeError]() RequestError ()
// [ResourceCountLimitExceededError]() SizeLimitError () [StringFormatError]()
// StringLengthError ()
//
// - customerId: The ID of the customer whose criteria are being modified.
func (r *CustomersCampaignCriteriaService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaigncriteriarequest *GoogleAdsSearchads360V23Services__MutateCampaignCriteriaRequest) *CustomersCampaignCriteriaMutateCall {
	c := &CustomersCampaignCriteriaMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaigncriteriarequest = googleadssearchads360v23services__mutatecampaigncriteriarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignCriteriaMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignCriteriaMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignCriteriaMutateCall) Context(ctx context.Context) *CustomersCampaignCriteriaMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignCriteriaMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignCriteriaMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaigncriteriarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignCriteria:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignCriteria.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignCriteria.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse.ServerRespo
// nse.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 *CustomersCampaignCriteriaMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignCriteriaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignCriteria.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignCustomizersMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutatecampaigncustomizersrequest *GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Creates, updates or removes campaign customizers. Operation statuses
// are returned.
//
//   - customerId: The ID of the customer whose campaign customizers are being
//     modified.
func (r *CustomersCampaignCustomizersService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaigncustomizersrequest *GoogleAdsSearchads360V23Services__MutateCampaignCustomizersRequest) *CustomersCampaignCustomizersMutateCall {
	c := &CustomersCampaignCustomizersMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaigncustomizersrequest = googleadssearchads360v23services__mutatecampaigncustomizersrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignCustomizersMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignCustomizersMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignCustomizersMutateCall) Context(ctx context.Context) *CustomersCampaignCustomizersMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignCustomizersMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignCustomizersMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaigncustomizersrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignCustomizers:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignCustomizers.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignCustomizers.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse.ServerRe
// sponse.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 *CustomersCampaignCustomizersMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignCustomizersResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignCustomizers.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignDraftsListAsyncErrorsCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListAsyncErrors: Returns all errors that occurred during CampaignDraft
// promote. Throws an error if called before campaign draft is promoted.
// Supports standard list paging. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]()
//
//   - resourceName: The name of the campaign draft from which to retrieve the
//     async errors.
func (r *CustomersCampaignDraftsService) ListAsyncErrors(resourceName string) *CustomersCampaignDraftsListAsyncErrorsCall {
	c := &CustomersCampaignDraftsListAsyncErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// PageSize sets the optional parameter "pageSize": Number of elements to
// retrieve in a single page. When a page request is too large, the server may
// decide to further limit the number of returned resources.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) PageSize(pageSize int64) *CustomersCampaignDraftsListAsyncErrorsCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": Token of the page to
// retrieve. If not specified, the first page of results will be returned. Use
// the value obtained from `next_page_token` in the previous response in order
// to request the next page of results.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) PageToken(pageToken string) *CustomersCampaignDraftsListAsyncErrorsCall {
	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
// details.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) Fields(s ...googleapi.Field) *CustomersCampaignDraftsListAsyncErrorsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) IfNoneMatch(entityTag string) *CustomersCampaignDraftsListAsyncErrorsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) Context(ctx context.Context) *CustomersCampaignDraftsListAsyncErrorsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignDraftsListAsyncErrorsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:listAsyncErrors")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.listAsyncErrors", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignDrafts.listAsyncErrors" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse.Serve
// rResponse.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 *CustomersCampaignDraftsListAsyncErrorsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.listAsyncErrors", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersCampaignDraftsListAsyncErrorsCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__ListCampaignDraftAsyncErrorsResponse) error) error {
	c.ctx_ = ctx
	defer c.PageToken(c.urlParams_.Get("pageToken"))
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.PageToken(x.NextPageToken)
	}
}

type CustomersCampaignDraftsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecampaigndraftsrequest *GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates, updates, or removes campaign drafts. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CampaignDraftError () [DatabaseError]() FieldError ()
// [HeaderError]() InternalError () [MutateError]() QuotaError ()
// [RequestError]()
//
//   - customerId: The ID of the customer whose campaign drafts are being
//     modified.
func (r *CustomersCampaignDraftsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaigndraftsrequest *GoogleAdsSearchads360V23Services__MutateCampaignDraftsRequest) *CustomersCampaignDraftsMutateCall {
	c := &CustomersCampaignDraftsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaigndraftsrequest = googleadssearchads360v23services__mutatecampaigndraftsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignDraftsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignDraftsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignDraftsMutateCall) Context(ctx context.Context) *CustomersCampaignDraftsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignDraftsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignDraftsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaigndraftsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignDrafts:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignDrafts.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse.ServerRespons
// e.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 *CustomersCampaignDraftsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignDraftsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignDraftsPromoteCall struct {
	s                                                             *Service
	campaignDraft                                                 string
	googleadssearchads360v23services__promotecampaigndraftrequest *GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Promote: Promotes the changes in a draft back to the base campaign. This
// method returns a Long Running Operation (LRO) indicating if the Promote is
// done. Use google.longrunning.Operations.GetOperation to poll the LRO until
// it is done. Only a done status is returned in the response. See the status
// in the Campaign Draft resource to determine if the promotion was successful.
// If the LRO failed, use CampaignDraftService.ListCampaignDraftAsyncErrors to
// view the list of error reasons. List of thrown errors: AuthenticationError
// () [AuthorizationError]() CampaignDraftError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
//
// - campaignDraft: The resource name of the campaign draft to promote.
func (r *CustomersCampaignDraftsService) Promote(campaignDraft string, googleadssearchads360v23services__promotecampaigndraftrequest *GoogleAdsSearchads360V23Services__PromoteCampaignDraftRequest) *CustomersCampaignDraftsPromoteCall {
	c := &CustomersCampaignDraftsPromoteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.campaignDraft = campaignDraft
	c.googleadssearchads360v23services__promotecampaigndraftrequest = googleadssearchads360v23services__promotecampaigndraftrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignDraftsPromoteCall) Fields(s ...googleapi.Field) *CustomersCampaignDraftsPromoteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignDraftsPromoteCall) Context(ctx context.Context) *CustomersCampaignDraftsPromoteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignDraftsPromoteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignDraftsPromoteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__promotecampaigndraftrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+campaignDraft}:promote")
	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{
		"campaignDraft": c.campaignDraft,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.promote", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignDrafts.promote" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunning__Operation.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 *CustomersCampaignDraftsPromoteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleLongrunning__Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignDrafts.promote", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignGroupsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecampaigngroupsrequest *GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates, updates, or removes campaign groups. Operation statuses are
// returned.
//
//   - customerId: The ID of the customer whose campaign groups are being
//     modified.
func (r *CustomersCampaignGroupsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaigngroupsrequest *GoogleAdsSearchads360V23Services__MutateCampaignGroupsRequest) *CustomersCampaignGroupsMutateCall {
	c := &CustomersCampaignGroupsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaigngroupsrequest = googleadssearchads360v23services__mutatecampaigngroupsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignGroupsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignGroupsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignGroupsMutateCall) Context(ctx context.Context) *CustomersCampaignGroupsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignGroupsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignGroupsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaigngroupsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignGroups:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignGroups.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignGroups.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse.ServerRespons
// e.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 *CustomersCampaignGroupsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignGroupsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignGroups.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignLabelsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecampaignlabelsrequest *GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates and removes campaign-label relationships. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() LabelError () [MutateError]() NewResourceCreationError ()
// [QuotaError]() RequestError ()
//
//   - customerId: ID of the customer whose campaign-label relationships are
//     being modified.
func (r *CustomersCampaignLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignlabelsrequest *GoogleAdsSearchads360V23Services__MutateCampaignLabelsRequest) *CustomersCampaignLabelsMutateCall {
	c := &CustomersCampaignLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignlabelsrequest = googleadssearchads360v23services__mutatecampaignlabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignLabelsMutateCall) Context(ctx context.Context) *CustomersCampaignLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignlabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignLabels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignLabels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignLabels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse.ServerRespons
// e.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 *CustomersCampaignLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignLabels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall struct {
	s                                                                        *Service
	customerId                                                               string
	googleadssearchads360v23services__configurecampaignlifecyclegoalsrequest *GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest
	urlParams_                                                               gensupport.URLParams
	ctx_                                                                     context.Context
	header_                                                                  http.Header
}

// ConfigureCampaignLifecycleGoals: Process the given campaign lifecycle
// configurations. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CampaignLifecycleGoalConfigError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer performing the upload.
func (r *CustomersCampaignLifecycleGoalService) ConfigureCampaignLifecycleGoals(customerId string, googleadssearchads360v23services__configurecampaignlifecyclegoalsrequest *GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsRequest) *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall {
	c := &CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__configurecampaignlifecyclegoalsrequest = googleadssearchads360v23services__configurecampaignlifecyclegoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall) Fields(s ...googleapi.Field) *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall) Context(ctx context.Context) *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__configurecampaignlifecyclegoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignLifecycleGoal:configureCampaignLifecycleGoals")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse.Se
// rverResponse.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 *CustomersCampaignLifecycleGoalConfigureCampaignLifecycleGoalsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ConfigureCampaignLifecycleGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignLifecycleGoal.configureCampaignLifecycleGoals", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignSharedSetsMutateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__mutatecampaignsharedsetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Mutate: Creates or removes campaign shared sets. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CampaignSharedSetError () [ContextError]()
// DatabaseError () [DateError]() DistinctError () [FieldError]() HeaderError
// () [IdError]() InternalError () [MutateError]() NewResourceCreationError ()
// [NotEmptyError]() NullError () [OperatorError]() QuotaError ()
// [RangeError]() RequestError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]()
//
//   - customerId: The ID of the customer whose campaign shared sets are being
//     modified.
func (r *CustomersCampaignSharedSetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignsharedsetsrequest *GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsRequest) *CustomersCampaignSharedSetsMutateCall {
	c := &CustomersCampaignSharedSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignsharedsetsrequest = googleadssearchads360v23services__mutatecampaignsharedsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignSharedSetsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignSharedSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignSharedSetsMutateCall) Context(ctx context.Context) *CustomersCampaignSharedSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignSharedSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignSharedSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignsharedsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaignSharedSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaignSharedSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaignSharedSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse.ServerRes
// ponse.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 *CustomersCampaignSharedSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignSharedSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaignSharedSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignsEnablePMaxBrandGuidelinesCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__enablepmaxbrandguidelinesrequest *GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// EnablePMaxBrandGuidelines: Enables Brand Guidelines for Performance Max
// campaigns. List of thrown errors: AuthenticationError () [AssetError]()
// AssetLinkError () [AuthorizationError]() BrandGuidelinesMigrationError ()
// [CampaignError]() HeaderError () [InternalError]() MutateError ()
// [QuotaError]() RequestError () [ResourceCountLimitExceededError]()
//
// - customerId: The ID of the customer whose campaigns are being enabled.
func (r *CustomersCampaignsService) EnablePMaxBrandGuidelines(customerId string, googleadssearchads360v23services__enablepmaxbrandguidelinesrequest *GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesRequest) *CustomersCampaignsEnablePMaxBrandGuidelinesCall {
	c := &CustomersCampaignsEnablePMaxBrandGuidelinesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__enablepmaxbrandguidelinesrequest = googleadssearchads360v23services__enablepmaxbrandguidelinesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignsEnablePMaxBrandGuidelinesCall) Fields(s ...googleapi.Field) *CustomersCampaignsEnablePMaxBrandGuidelinesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignsEnablePMaxBrandGuidelinesCall) Context(ctx context.Context) *CustomersCampaignsEnablePMaxBrandGuidelinesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignsEnablePMaxBrandGuidelinesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignsEnablePMaxBrandGuidelinesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__enablepmaxbrandguidelinesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaigns:enablePMaxBrandGuidelines")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaigns.enablePMaxBrandGuidelines", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaigns.enablePMaxBrandGuidelines" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse.ServerRe
// sponse.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 *CustomersCampaignsEnablePMaxBrandGuidelinesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__EnablePMaxBrandGuidelinesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaigns.enablePMaxBrandGuidelines", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCampaignsMutateCall struct {
	s                                                        *Service
	customerId                                               string
	googleadssearchads360v23services__mutatecampaignsrequest *GoogleAdsSearchads360V23Services__MutateCampaignsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Mutate: Creates, updates, or removes campaigns. Operation statuses are
// returned. List of thrown errors: AdxError () [AuthenticationError]()
// AuthorizationError () [BiddingError]() BiddingStrategyError ()
// [CampaignBudgetError]() CampaignError () [ContextError]() DatabaseError ()
// [DateError]() DateRangeError () [DistinctError]() FieldError ()
// [FieldMaskError]() HeaderError () [IdError]() InternalError ()
// [ListOperationError]() MutateError () [NewResourceCreationError]()
// NotAllowlistedError () [NotEmptyError]() NullError ()
// [OperationAccessDeniedError]() OperatorError () [QuotaError]() RangeError ()
// [RegionCodeError]() RequestError () [ResourceCountLimitExceededError]()
// SettingError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]() UrlFieldError ()
//
// - customerId: The ID of the customer whose campaigns are being modified.
func (r *CustomersCampaignsService) Mutate(customerId string, googleadssearchads360v23services__mutatecampaignsrequest *GoogleAdsSearchads360V23Services__MutateCampaignsRequest) *CustomersCampaignsMutateCall {
	c := &CustomersCampaignsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecampaignsrequest = googleadssearchads360v23services__mutatecampaignsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCampaignsMutateCall) Fields(s ...googleapi.Field) *CustomersCampaignsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCampaignsMutateCall) Context(ctx context.Context) *CustomersCampaignsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCampaignsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCampaignsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecampaignsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/campaigns:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.campaigns.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.campaigns.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCampaignsResponse.ServerResponse.Hea
// der 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 *CustomersCampaignsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCampaignsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCampaignsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.campaigns.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersConversionActionsMutateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__mutateconversionactionsrequest *GoogleAdsSearchads360V23Services__MutateConversionActionsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Mutate: Creates, updates or removes conversion actions. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ConversionActionError () [CurrencyCodeError]()
// DatabaseError () [FieldError]() FieldMaskError () [HeaderError]()
// InternalError () [MutateError]() NewResourceCreationError () [QuotaError]()
// RangeError () [RequestError]() ResourceCountLimitExceededError ()
// [StringLengthError]()
//
//   - customerId: The ID of the customer whose conversion actions are being
//     modified.
func (r *CustomersConversionActionsService) Mutate(customerId string, googleadssearchads360v23services__mutateconversionactionsrequest *GoogleAdsSearchads360V23Services__MutateConversionActionsRequest) *CustomersConversionActionsMutateCall {
	c := &CustomersConversionActionsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateconversionactionsrequest = googleadssearchads360v23services__mutateconversionactionsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersConversionActionsMutateCall) Fields(s ...googleapi.Field) *CustomersConversionActionsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersConversionActionsMutateCall) Context(ctx context.Context) *CustomersConversionActionsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersConversionActionsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersConversionActionsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateconversionactionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/conversionActions:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.conversionActions.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.conversionActions.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateConversionActionsResponse.ServerResp
// onse.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 *CustomersConversionActionsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateConversionActionsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateConversionActionsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.conversionActions.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersConversionCustomVariablesMutateCall struct {
	s                                                                        *Service
	customerId                                                               string
	googleadssearchads360v23services__mutateconversioncustomvariablesrequest *GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest
	urlParams_                                                               gensupport.URLParams
	ctx_                                                                     context.Context
	header_                                                                  http.Header
}

// Mutate: Creates or updates conversion custom variables. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ConversionCustomVariableError () [DatabaseError]()
// HeaderError () [InternalError]() QuotaError () [RequestError]()
//
//   - customerId: The ID of the customer whose conversion custom variables are
//     being modified.
func (r *CustomersConversionCustomVariablesService) Mutate(customerId string, googleadssearchads360v23services__mutateconversioncustomvariablesrequest *GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesRequest) *CustomersConversionCustomVariablesMutateCall {
	c := &CustomersConversionCustomVariablesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateconversioncustomvariablesrequest = googleadssearchads360v23services__mutateconversioncustomvariablesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersConversionCustomVariablesMutateCall) Fields(s ...googleapi.Field) *CustomersConversionCustomVariablesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersConversionCustomVariablesMutateCall) Context(ctx context.Context) *CustomersConversionCustomVariablesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersConversionCustomVariablesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersConversionCustomVariablesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateconversioncustomvariablesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/conversionCustomVariables:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.conversionCustomVariables.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.conversionCustomVariables.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse.Se
// rverResponse.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 *CustomersConversionCustomVariablesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateConversionCustomVariablesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.conversionCustomVariables.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersConversionGoalCampaignConfigsMutateCall struct {
	s                                                                            *Service
	customerId                                                                   string
	googleadssearchads360v23services__mutateconversiongoalcampaignconfigsrequest *GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest
	urlParams_                                                                   gensupport.URLParams
	ctx_                                                                         context.Context
	header_                                                                      http.Header
}

// Mutate: Creates, updates or removes conversion goal campaign config.
// Operation statuses are returned.
//
//   - customerId: The ID of the customer whose custom conversion goals are being
//     modified.
func (r *CustomersConversionGoalCampaignConfigsService) Mutate(customerId string, googleadssearchads360v23services__mutateconversiongoalcampaignconfigsrequest *GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRequest) *CustomersConversionGoalCampaignConfigsMutateCall {
	c := &CustomersConversionGoalCampaignConfigsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateconversiongoalcampaignconfigsrequest = googleadssearchads360v23services__mutateconversiongoalcampaignconfigsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersConversionGoalCampaignConfigsMutateCall) Fields(s ...googleapi.Field) *CustomersConversionGoalCampaignConfigsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersConversionGoalCampaignConfigsMutateCall) Context(ctx context.Context) *CustomersConversionGoalCampaignConfigsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersConversionGoalCampaignConfigsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersConversionGoalCampaignConfigsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateconversiongoalcampaignconfigsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/conversionGoalCampaignConfigs:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.conversionGoalCampaignConfigs.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.conversionGoalCampaignConfigs.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsRespons
// e.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 *CustomersConversionGoalCampaignConfigsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateConversionGoalCampaignConfigsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.conversionGoalCampaignConfigs.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersConversionValueRuleSetsMutateCall struct {
	s                                                                      *Service
	customerId                                                             string
	googleadssearchads360v23services__mutateconversionvaluerulesetsrequest *GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest
	urlParams_                                                             gensupport.URLParams
	ctx_                                                                   context.Context
	header_                                                                http.Header
}

// Mutate: Creates, updates or removes conversion value rule sets. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose conversion value rule sets are
//     being modified.
func (r *CustomersConversionValueRuleSetsService) Mutate(customerId string, googleadssearchads360v23services__mutateconversionvaluerulesetsrequest *GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsRequest) *CustomersConversionValueRuleSetsMutateCall {
	c := &CustomersConversionValueRuleSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateconversionvaluerulesetsrequest = googleadssearchads360v23services__mutateconversionvaluerulesetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersConversionValueRuleSetsMutateCall) Fields(s ...googleapi.Field) *CustomersConversionValueRuleSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersConversionValueRuleSetsMutateCall) Context(ctx context.Context) *CustomersConversionValueRuleSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersConversionValueRuleSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersConversionValueRuleSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateconversionvaluerulesetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/conversionValueRuleSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.conversionValueRuleSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.conversionValueRuleSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse.Serv
// erResponse.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 *CustomersConversionValueRuleSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateConversionValueRuleSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.conversionValueRuleSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersConversionValueRulesMutateCall struct {
	s                                                                   *Service
	customerId                                                          string
	googleadssearchads360v23services__mutateconversionvaluerulesrequest *GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Mutate: Creates, updates, or removes conversion value rules. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose conversion value rules are being
//     modified.
func (r *CustomersConversionValueRulesService) Mutate(customerId string, googleadssearchads360v23services__mutateconversionvaluerulesrequest *GoogleAdsSearchads360V23Services__MutateConversionValueRulesRequest) *CustomersConversionValueRulesMutateCall {
	c := &CustomersConversionValueRulesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateconversionvaluerulesrequest = googleadssearchads360v23services__mutateconversionvaluerulesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersConversionValueRulesMutateCall) Fields(s ...googleapi.Field) *CustomersConversionValueRulesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersConversionValueRulesMutateCall) Context(ctx context.Context) *CustomersConversionValueRulesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersConversionValueRulesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersConversionValueRulesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateconversionvaluerulesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/conversionValueRules:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.conversionValueRules.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.conversionValueRules.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse.ServerR
// esponse.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 *CustomersConversionValueRulesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateConversionValueRulesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.conversionValueRules.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomAudiencesMutateCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__mutatecustomaudiencesrequest *GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Mutate: Creates or updates custom audiences. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CustomAudienceError () [CustomInterestError]()
// FieldError () [FieldMaskError]() HeaderError () [InternalError]()
// MutateError () [OperationAccessDeniedError]() PolicyViolationError ()
// [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer whose custom audiences are being
//     modified.
func (r *CustomersCustomAudiencesService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomaudiencesrequest *GoogleAdsSearchads360V23Services__MutateCustomAudiencesRequest) *CustomersCustomAudiencesMutateCall {
	c := &CustomersCustomAudiencesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomaudiencesrequest = googleadssearchads360v23services__mutatecustomaudiencesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomAudiencesMutateCall) Fields(s ...googleapi.Field) *CustomersCustomAudiencesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomAudiencesMutateCall) Context(ctx context.Context) *CustomersCustomAudiencesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomAudiencesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomAudiencesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomaudiencesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customAudiences:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customAudiences.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customAudiences.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse.ServerRespon
// se.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 *CustomersCustomAudiencesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomAudiencesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customAudiences.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomColumnsGetCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Returns the requested custom column in full detail.
//
// - resourceName: The resource name of the custom column to fetch.
func (r *CustomersCustomColumnsService) Get(resourceName string) *CustomersCustomColumnsGetCall {
	c := &CustomersCustomColumnsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomColumnsGetCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersCustomColumnsGetCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomColumnsGetCall) Context(ctx context.Context) *CustomersCustomColumnsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomColumnsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomColumnsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customColumns.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Resources__CustomColumn.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 *CustomersCustomColumnsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Resources__CustomColumn, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Resources__CustomColumn{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomColumnsListCall struct {
	s            *Service
	customerId   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns all the custom columns associated with the customer in full
// detail.
//
//   - customerId: The ID of the customer to apply the CustomColumn list
//     operation to.
func (r *CustomersCustomColumnsService) List(customerId string) *CustomersCustomColumnsListCall {
	c := &CustomersCustomColumnsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomColumnsListCall) Fields(s ...googleapi.Field) *CustomersCustomColumnsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersCustomColumnsListCall) IfNoneMatch(entityTag string) *CustomersCustomColumnsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomColumnsListCall) Context(ctx context.Context) *CustomersCustomColumnsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomColumnsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomColumnsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customColumns")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customColumns.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListCustomColumnsResponse.ServerResponse.H
// eader 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 *CustomersCustomColumnsListCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListCustomColumnsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListCustomColumnsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customColumns.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomConversionGoalsMutateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__mutatecustomconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Mutate: Creates, updates or removes custom conversion goals. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose custom conversion goals are being
//     modified.
func (r *CustomersCustomConversionGoalsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsRequest) *CustomersCustomConversionGoalsMutateCall {
	c := &CustomersCustomConversionGoalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomconversiongoalsrequest = googleadssearchads360v23services__mutatecustomconversiongoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomConversionGoalsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomConversionGoalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomConversionGoalsMutateCall) Context(ctx context.Context) *CustomersCustomConversionGoalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomConversionGoalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomConversionGoalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomconversiongoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customConversionGoals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customConversionGoals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customConversionGoals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse.Server
// Response.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 *CustomersCustomConversionGoalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomConversionGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customConversionGoals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomInterestsMutateCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__mutatecustominterestsrequest *GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Mutate: Creates or updates custom interests. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CriterionError () [CustomInterestError]() HeaderError
// () [InternalError]() MutateError () [PolicyViolationError]() QuotaError ()
// [RequestError]() StringLengthError ()
//
//   - customerId: The ID of the customer whose custom interests are being
//     modified.
func (r *CustomersCustomInterestsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustominterestsrequest *GoogleAdsSearchads360V23Services__MutateCustomInterestsRequest) *CustomersCustomInterestsMutateCall {
	c := &CustomersCustomInterestsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustominterestsrequest = googleadssearchads360v23services__mutatecustominterestsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomInterestsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomInterestsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomInterestsMutateCall) Context(ctx context.Context) *CustomersCustomInterestsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomInterestsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomInterestsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustominterestsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customInterests:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customInterests.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customInterests.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse.ServerRespon
// se.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 *CustomersCustomInterestsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomInterestsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customInterests.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerAssetSetsMutateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__mutatecustomerassetsetsrequest *GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Mutate: Creates, or removes customer asset sets. Operation statuses are
// returned.
//
//   - customerId: The ID of the customer whose customer asset sets are being
//     modified.
func (r *CustomersCustomerAssetSetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerassetsetsrequest *GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsRequest) *CustomersCustomerAssetSetsMutateCall {
	c := &CustomersCustomerAssetSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerassetsetsrequest = googleadssearchads360v23services__mutatecustomerassetsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerAssetSetsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerAssetSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerAssetSetsMutateCall) Context(ctx context.Context) *CustomersCustomerAssetSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerAssetSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerAssetSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerassetsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerAssetSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerAssetSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerAssetSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse.ServerResp
// onse.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 *CustomersCustomerAssetSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerAssetSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerAssetSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerAssetsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecustomerassetsrequest *GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates, updates, or removes customer assets. Operation statuses are
// returned. List of thrown errors: AssetLinkError () [AuthenticationError]()
// AuthorizationError () [FieldError]() HeaderError () [InternalError]()
// MutateError () [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer whose customer assets are being
//     modified.
func (r *CustomersCustomerAssetsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerassetsrequest *GoogleAdsSearchads360V23Services__MutateCustomerAssetsRequest) *CustomersCustomerAssetsMutateCall {
	c := &CustomersCustomerAssetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerassetsrequest = googleadssearchads360v23services__mutatecustomerassetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerAssetsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerAssetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerAssetsMutateCall) Context(ctx context.Context) *CustomersCustomerAssetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerAssetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerAssetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerassetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerAssets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerAssets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerAssets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse.ServerRespons
// e.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 *CustomersCustomerAssetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerAssetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerAssets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerClientLinksMutateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__mutatecustomerclientlinkrequest *GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Mutate: Creates or updates a customer client link. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() FieldMaskError ()
// [HeaderError]() InternalError () [ManagerLinkError]() MutateError ()
// [NewResourceCreationError]() QuotaError () [RequestError]()
//
// - customerId: The ID of the customer whose customer link are being modified.
func (r *CustomersCustomerClientLinksService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerclientlinkrequest *GoogleAdsSearchads360V23Services__MutateCustomerClientLinkRequest) *CustomersCustomerClientLinksMutateCall {
	c := &CustomersCustomerClientLinksMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerclientlinkrequest = googleadssearchads360v23services__mutatecustomerclientlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerClientLinksMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerClientLinksMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerClientLinksMutateCall) Context(ctx context.Context) *CustomersCustomerClientLinksMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerClientLinksMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerClientLinksMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerclientlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerClientLinks:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerClientLinks.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerClientLinks.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse.ServerRes
// ponse.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 *CustomersCustomerClientLinksMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerClientLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerClientLinks.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerConversionGoalsMutateCall struct {
	s                                                                      *Service
	customerId                                                             string
	googleadssearchads360v23services__mutatecustomerconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest
	urlParams_                                                             gensupport.URLParams
	ctx_                                                                   context.Context
	header_                                                                http.Header
}

// Mutate: Creates, updates or removes customer conversion goals. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose customer conversion goals are
//     being modified.
func (r *CustomersCustomerConversionGoalsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerconversiongoalsrequest *GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsRequest) *CustomersCustomerConversionGoalsMutateCall {
	c := &CustomersCustomerConversionGoalsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerconversiongoalsrequest = googleadssearchads360v23services__mutatecustomerconversiongoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerConversionGoalsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerConversionGoalsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerConversionGoalsMutateCall) Context(ctx context.Context) *CustomersCustomerConversionGoalsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerConversionGoalsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerConversionGoalsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerconversiongoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerConversionGoals:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerConversionGoals.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerConversionGoals.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse.Serv
// erResponse.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 *CustomersCustomerConversionGoalsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerConversionGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerConversionGoals.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerLabelsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatecustomerlabelsrequest *GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates and removes customer-label relationships. Operation statuses
// are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [HeaderError]() InternalError ()
// [LabelError]() MutateError () [QuotaError]() RequestError ()
//
//   - customerId: ID of the customer whose customer-label relationships are
//     being modified.
func (r *CustomersCustomerLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerlabelsrequest *GoogleAdsSearchads360V23Services__MutateCustomerLabelsRequest) *CustomersCustomerLabelsMutateCall {
	c := &CustomersCustomerLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerlabelsrequest = googleadssearchads360v23services__mutatecustomerlabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerLabelsMutateCall) Context(ctx context.Context) *CustomersCustomerLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerlabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerLabels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerLabels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerLabels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse.ServerRespons
// e.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 *CustomersCustomerLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerLabels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall struct {
	s                                                                        *Service
	customerId                                                               string
	googleadssearchads360v23services__configurecustomerlifecyclegoalsrequest *GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest
	urlParams_                                                               gensupport.URLParams
	ctx_                                                                     context.Context
	header_                                                                  http.Header
}

// ConfigureCustomerLifecycleGoals: Process the given customer lifecycle
// configurations. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CustomerLifecycleGoalConfigError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer performing the upload.
func (r *CustomersCustomerLifecycleGoalService) ConfigureCustomerLifecycleGoals(customerId string, googleadssearchads360v23services__configurecustomerlifecyclegoalsrequest *GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsRequest) *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall {
	c := &CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__configurecustomerlifecyclegoalsrequest = googleadssearchads360v23services__configurecustomerlifecyclegoalsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall) Fields(s ...googleapi.Field) *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall) Context(ctx context.Context) *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__configurecustomerlifecyclegoalsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerLifecycleGoal:configureCustomerLifecycleGoals")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerLifecycleGoal.configureCustomerLifecycleGoals", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerLifecycleGoal.configureCustomerLifecycleGoals" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse.Se
// rverResponse.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 *CustomersCustomerLifecycleGoalConfigureCustomerLifecycleGoalsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ConfigureCustomerLifecycleGoalsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerLifecycleGoal.configureCustomerLifecycleGoals", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerManagerLinksMoveManagerLinkCall struct {
	s                                                        *Service
	customerId                                               string
	googleadssearchads360v23services__movemanagerlinkrequest *GoogleAdsSearchads360V23Services__MoveManagerLinkRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// MoveManagerLink: Moves a client customer to a new manager customer. This
// simplifies the complex request that requires two operations to move a client
// customer to a new manager, for example: 1. Update operation with Status
// INACTIVE (previous manager) and, 2. Update operation with Status ACTIVE (new
// manager). List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() MutateError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the client customer that is being moved.
func (r *CustomersCustomerManagerLinksService) MoveManagerLink(customerId string, googleadssearchads360v23services__movemanagerlinkrequest *GoogleAdsSearchads360V23Services__MoveManagerLinkRequest) *CustomersCustomerManagerLinksMoveManagerLinkCall {
	c := &CustomersCustomerManagerLinksMoveManagerLinkCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__movemanagerlinkrequest = googleadssearchads360v23services__movemanagerlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerManagerLinksMoveManagerLinkCall) Fields(s ...googleapi.Field) *CustomersCustomerManagerLinksMoveManagerLinkCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerManagerLinksMoveManagerLinkCall) Context(ctx context.Context) *CustomersCustomerManagerLinksMoveManagerLinkCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerManagerLinksMoveManagerLinkCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerManagerLinksMoveManagerLinkCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__movemanagerlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerManagerLinks:moveManagerLink")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerManagerLinks.moveManagerLink", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerManagerLinks.moveManagerLink" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MoveManagerLinkResponse.ServerResponse.Hea
// der 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 *CustomersCustomerManagerLinksMoveManagerLinkCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MoveManagerLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MoveManagerLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerManagerLinks.moveManagerLink", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerManagerLinksMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutatecustomermanagerlinkrequest *GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Updates customer manager links. Operation statuses are returned.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// DatabaseError () [FieldError]() FieldMaskError () [HeaderError]()
// InternalError () [ManagerLinkError]() MutateError () [QuotaError]()
// RequestError ()
//
//   - customerId: The ID of the customer whose customer manager links are being
//     modified.
func (r *CustomersCustomerManagerLinksService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomermanagerlinkrequest *GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkRequest) *CustomersCustomerManagerLinksMutateCall {
	c := &CustomersCustomerManagerLinksMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomermanagerlinkrequest = googleadssearchads360v23services__mutatecustomermanagerlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerManagerLinksMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerManagerLinksMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerManagerLinksMutateCall) Context(ctx context.Context) *CustomersCustomerManagerLinksMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerManagerLinksMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerManagerLinksMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomermanagerlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerManagerLinks:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerManagerLinks.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerManagerLinks.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse.ServerRe
// sponse.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 *CustomersCustomerManagerLinksMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerManagerLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerManagerLinks.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerNegativeCriteriaMutateCall struct {
	s                                                                       *Service
	customerId                                                              string
	googleadssearchads360v23services__mutatecustomernegativecriteriarequest *GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest
	urlParams_                                                              gensupport.URLParams
	ctx_                                                                    context.Context
	header_                                                                 http.Header
}

// Mutate: Creates or removes criteria. Operation statuses are returned. List
// of thrown errors: AuthenticationError () [AuthorizationError]()
// CriterionError () [DatabaseError]() FieldError () [HeaderError]()
// InternalError () [MutateError]() QuotaError () [RequestError]()
//
// - customerId: The ID of the customer whose criteria are being modified.
func (r *CustomersCustomerNegativeCriteriaService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomernegativecriteriarequest *GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaRequest) *CustomersCustomerNegativeCriteriaMutateCall {
	c := &CustomersCustomerNegativeCriteriaMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomernegativecriteriarequest = googleadssearchads360v23services__mutatecustomernegativecriteriarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerNegativeCriteriaMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerNegativeCriteriaMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerNegativeCriteriaMutateCall) Context(ctx context.Context) *CustomersCustomerNegativeCriteriaMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerNegativeCriteriaMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerNegativeCriteriaMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomernegativecriteriarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerNegativeCriteria:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerNegativeCriteria.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerNegativeCriteria.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse.Ser
// verResponse.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 *CustomersCustomerNegativeCriteriaMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerNegativeCriteriaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerNegativeCriteria.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall struct {
	s                                                                                       *Service
	customerId                                                                              string
	googleadssearchads360v23services__mutatecustomerskadnetworkconversionvalueschemarequest *GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest
	urlParams_                                                                              gensupport.URLParams
	ctx_                                                                                    context.Context
	header_                                                                                 http.Header
}

// Mutate: Creates or updates the CustomerSkAdNetworkConversionValueSchema.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// FieldError () [InternalError]() MutateError ()
//
// - customerId: The ID of the customer whose shared sets are being modified.
func (r *CustomersCustomerSkAdNetworkConversionValueSchemasService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomerskadnetworkconversionvalueschemarequest *GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaRequest) *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall {
	c := &CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomerskadnetworkconversionvalueschemarequest = googleadssearchads360v23services__mutatecustomerskadnetworkconversionvalueschemarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall) Context(ctx context.Context) *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomerskadnetworkconversionvalueschemarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerSkAdNetworkConversionValueSchemas:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerSkAdNetworkConversionValueSchemas.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerSkAdNetworkConversionValueSchemas.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSc
// hemaResponse.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 *CustomersCustomerSkAdNetworkConversionValueSchemasMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerSkAdNetworkConversionValueSchemaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerSkAdNetworkConversionValueSchemas.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerUserAccessInvitationsMutateCall struct {
	s                                                                           *Service
	customerId                                                                  string
	googleadssearchads360v23services__mutatecustomeruseraccessinvitationrequest *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest
	urlParams_                                                                  gensupport.URLParams
	ctx_                                                                        context.Context
	header_                                                                     http.Header
}

// Mutate: Creates or removes an access invitation. List of thrown errors:
// AccessInvitationError () [AuthenticationError]() AuthorizationError ()
// [HeaderError]() InternalError () [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer whose access invitation is being
//     modified.
func (r *CustomersCustomerUserAccessInvitationsService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomeruseraccessinvitationrequest *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationRequest) *CustomersCustomerUserAccessInvitationsMutateCall {
	c := &CustomersCustomerUserAccessInvitationsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomeruseraccessinvitationrequest = googleadssearchads360v23services__mutatecustomeruseraccessinvitationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerUserAccessInvitationsMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerUserAccessInvitationsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerUserAccessInvitationsMutateCall) Context(ctx context.Context) *CustomersCustomerUserAccessInvitationsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerUserAccessInvitationsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerUserAccessInvitationsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomeruseraccessinvitationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerUserAccessInvitations:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerUserAccessInvitations.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerUserAccessInvitations.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse
// .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 *CustomersCustomerUserAccessInvitationsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerUserAccessInvitationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerUserAccessInvitations.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomerUserAccessesMutateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__mutatecustomeruseraccessrequest *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Mutate: Updates, removes permission of a user on a given customer. Operation
// statuses are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() CustomerUserAccessError () [FieldMaskError]()
// HeaderError () [InternalError]() MutateError () [QuotaError]() RequestError
// ()
//
// - customerId: The ID of the customer being modified.
func (r *CustomersCustomerUserAccessesService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomeruseraccessrequest *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessRequest) *CustomersCustomerUserAccessesMutateCall {
	c := &CustomersCustomerUserAccessesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomeruseraccessrequest = googleadssearchads360v23services__mutatecustomeruseraccessrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomerUserAccessesMutateCall) Fields(s ...googleapi.Field) *CustomersCustomerUserAccessesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomerUserAccessesMutateCall) Context(ctx context.Context) *CustomersCustomerUserAccessesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomerUserAccessesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomerUserAccessesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomeruseraccessrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customerUserAccesses:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customerUserAccesses.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customerUserAccesses.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse.ServerRes
// ponse.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 *CustomersCustomerUserAccessesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomerUserAccessResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customerUserAccesses.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersCustomizerAttributesMutateCall struct {
	s                                                                   *Service
	customerId                                                          string
	googleadssearchads360v23services__mutatecustomizerattributesrequest *GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Mutate: Creates, updates or removes customizer attributes. Operation
// statuses are returned.
//
//   - customerId: The ID of the customer whose customizer attributes are being
//     modified.
func (r *CustomersCustomizerAttributesService) Mutate(customerId string, googleadssearchads360v23services__mutatecustomizerattributesrequest *GoogleAdsSearchads360V23Services__MutateCustomizerAttributesRequest) *CustomersCustomizerAttributesMutateCall {
	c := &CustomersCustomizerAttributesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatecustomizerattributesrequest = googleadssearchads360v23services__mutatecustomizerattributesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersCustomizerAttributesMutateCall) Fields(s ...googleapi.Field) *CustomersCustomizerAttributesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersCustomizerAttributesMutateCall) Context(ctx context.Context) *CustomersCustomizerAttributesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersCustomizerAttributesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersCustomizerAttributesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatecustomizerattributesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/customizerAttributes:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.customizerAttributes.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.customizerAttributes.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse.ServerR
// esponse.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 *CustomersCustomizerAttributesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateCustomizerAttributesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.customizerAttributes.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersDataLinksCreateCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__createdatalinkrequest *GoogleAdsSearchads360V23Services__CreateDataLinkRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Create: Creates a data link. The requesting Google Ads account name and
// account ID will be shared with the third party (such as YouTube creators for
// video links) to whom you are creating the link with. Only customers on the
// allow-list can create data links. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [DataLinkError]() FieldError ()
// [HeaderError]() InternalError () [MutateError]() QuotaError ()
// [RequestError]()
//
// - customerId: The ID of the customer for which the data link is created.
func (r *CustomersDataLinksService) Create(customerId string, googleadssearchads360v23services__createdatalinkrequest *GoogleAdsSearchads360V23Services__CreateDataLinkRequest) *CustomersDataLinksCreateCall {
	c := &CustomersDataLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createdatalinkrequest = googleadssearchads360v23services__createdatalinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersDataLinksCreateCall) Fields(s ...googleapi.Field) *CustomersDataLinksCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersDataLinksCreateCall) Context(ctx context.Context) *CustomersDataLinksCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersDataLinksCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersDataLinksCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createdatalinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/dataLinks:create")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.dataLinks.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateDataLinkResponse.ServerResponse.Head
// er 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 *CustomersDataLinksCreateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateDataLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateDataLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersDataLinksRemoveCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__removedatalinkrequest *GoogleAdsSearchads360V23Services__RemoveDataLinkRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Remove: Remove a data link. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [DataLinkError]() FieldError ()
// [HeaderError]() InternalError () [MutateError]() QuotaError ()
// [RequestError]()
//
// - customerId: The ID of the customer for which the data link is updated.
func (r *CustomersDataLinksService) Remove(customerId string, googleadssearchads360v23services__removedatalinkrequest *GoogleAdsSearchads360V23Services__RemoveDataLinkRequest) *CustomersDataLinksRemoveCall {
	c := &CustomersDataLinksRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__removedatalinkrequest = googleadssearchads360v23services__removedatalinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersDataLinksRemoveCall) Fields(s ...googleapi.Field) *CustomersDataLinksRemoveCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersDataLinksRemoveCall) Context(ctx context.Context) *CustomersDataLinksRemoveCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersDataLinksRemoveCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersDataLinksRemoveCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__removedatalinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/dataLinks:remove")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.remove", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.dataLinks.remove" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__RemoveDataLinkResponse.ServerResponse.Head
// er 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 *CustomersDataLinksRemoveCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__RemoveDataLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__RemoveDataLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.remove", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersDataLinksUpdateCall struct {
	s                                                       *Service
	customerId                                              string
	googleadssearchads360v23services__updatedatalinkrequest *GoogleAdsSearchads360V23Services__UpdateDataLinkRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Update: Update a data link. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [DataLinkError]() FieldError ()
// [HeaderError]() InternalError () [MutateError]() QuotaError ()
// [RequestError]()
//
// - customerId: The ID of the customer for which the data link is created.
func (r *CustomersDataLinksService) Update(customerId string, googleadssearchads360v23services__updatedatalinkrequest *GoogleAdsSearchads360V23Services__UpdateDataLinkRequest) *CustomersDataLinksUpdateCall {
	c := &CustomersDataLinksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__updatedatalinkrequest = googleadssearchads360v23services__updatedatalinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersDataLinksUpdateCall) Fields(s ...googleapi.Field) *CustomersDataLinksUpdateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersDataLinksUpdateCall) Context(ctx context.Context) *CustomersDataLinksUpdateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersDataLinksUpdateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersDataLinksUpdateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__updatedatalinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/dataLinks:update")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.update", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.dataLinks.update" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__UpdateDataLinkResponse.ServerResponse.Head
// er 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 *CustomersDataLinksUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__UpdateDataLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__UpdateDataLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.dataLinks.update", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentArmsMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutateexperimentarmsrequest *GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates, updates, or removes experiment arms. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ExperimentArmError () [HeaderError]() InternalError
// () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer whose experiments are being modified.
func (r *CustomersExperimentArmsService) Mutate(customerId string, googleadssearchads360v23services__mutateexperimentarmsrequest *GoogleAdsSearchads360V23Services__MutateExperimentArmsRequest) *CustomersExperimentArmsMutateCall {
	c := &CustomersExperimentArmsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateexperimentarmsrequest = googleadssearchads360v23services__mutateexperimentarmsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentArmsMutateCall) Fields(s ...googleapi.Field) *CustomersExperimentArmsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentArmsMutateCall) Context(ctx context.Context) *CustomersExperimentArmsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentArmsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentArmsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateexperimentarmsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/experimentArms:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experimentArms.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experimentArms.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse.ServerRespons
// e.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 *CustomersExperimentArmsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateExperimentArmsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experimentArms.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentsEndExperimentCall struct {
	s                                                      *Service
	experiment                                             string
	googleadssearchads360v23services__endexperimentrequest *GoogleAdsSearchads360V23Services__EndExperimentRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// EndExperiment: Immediately ends an experiment, changing the experiment's
// scheduled end date and without waiting for end of day. End date is updated
// to be the time of the request. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ExperimentError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
//
// - experiment: The resource name of the campaign experiment to end.
func (r *CustomersExperimentsService) EndExperiment(experiment string, googleadssearchads360v23services__endexperimentrequest *GoogleAdsSearchads360V23Services__EndExperimentRequest) *CustomersExperimentsEndExperimentCall {
	c := &CustomersExperimentsEndExperimentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.experiment = experiment
	c.googleadssearchads360v23services__endexperimentrequest = googleadssearchads360v23services__endexperimentrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentsEndExperimentCall) Fields(s ...googleapi.Field) *CustomersExperimentsEndExperimentCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsEndExperimentCall) Context(ctx context.Context) *CustomersExperimentsEndExperimentCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsEndExperimentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsEndExperimentCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__endexperimentrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+experiment}:endExperiment")
	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{
		"experiment": c.experiment,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.endExperiment", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.endExperiment" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobuf__Empty.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 *CustomersExperimentsEndExperimentCall) Do(opts ...googleapi.CallOption) (*GoogleProtobuf__Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleProtobuf__Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.endExperiment", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentsGraduateExperimentCall struct {
	s                                                           *Service
	experiment                                                  string
	googleadssearchads360v23services__graduateexperimentrequest *GoogleAdsSearchads360V23Services__GraduateExperimentRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// GraduateExperiment: Graduates an experiment to a full campaign. List of
// thrown errors: AuthenticationError () [AuthorizationError]() ExperimentError
// () [HeaderError]() InternalError () [MutateError]() QuotaError ()
// [RequestError]()
//
// - experiment: The experiment to be graduated.
func (r *CustomersExperimentsService) GraduateExperiment(experiment string, googleadssearchads360v23services__graduateexperimentrequest *GoogleAdsSearchads360V23Services__GraduateExperimentRequest) *CustomersExperimentsGraduateExperimentCall {
	c := &CustomersExperimentsGraduateExperimentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.experiment = experiment
	c.googleadssearchads360v23services__graduateexperimentrequest = googleadssearchads360v23services__graduateexperimentrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentsGraduateExperimentCall) Fields(s ...googleapi.Field) *CustomersExperimentsGraduateExperimentCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsGraduateExperimentCall) Context(ctx context.Context) *CustomersExperimentsGraduateExperimentCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsGraduateExperimentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsGraduateExperimentCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__graduateexperimentrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+experiment}:graduateExperiment")
	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{
		"experiment": c.experiment,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.graduateExperiment", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.graduateExperiment" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobuf__Empty.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 *CustomersExperimentsGraduateExperimentCall) Do(opts ...googleapi.CallOption) (*GoogleProtobuf__Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleProtobuf__Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.graduateExperiment", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentsListExperimentAsyncErrorsCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListExperimentAsyncErrors: Returns all errors that occurred during the last
// Experiment update (either scheduling or promotion). Supports standard list
// paging. List of thrown errors: AuthenticationError () [AuthorizationError]()
// HeaderError () [InternalError]() QuotaError () [RequestError]()
//
//   - resourceName: The name of the experiment from which to retrieve the async
//     errors.
func (r *CustomersExperimentsService) ListExperimentAsyncErrors(resourceName string) *CustomersExperimentsListExperimentAsyncErrorsCall {
	c := &CustomersExperimentsListExperimentAsyncErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// PageSize sets the optional parameter "pageSize": Number of elements to
// retrieve in a single page. When a page request is too large, the server may
// decide to further limit the number of returned resources. The maximum page
// size is 1000.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) PageSize(pageSize int64) *CustomersExperimentsListExperimentAsyncErrorsCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": Token of the page to
// retrieve. If not specified, the first page of results will be returned. Use
// the value obtained from `next_page_token` in the previous response in order
// to request the next page of results.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) PageToken(pageToken string) *CustomersExperimentsListExperimentAsyncErrorsCall {
	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
// details.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) Fields(s ...googleapi.Field) *CustomersExperimentsListExperimentAsyncErrorsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) IfNoneMatch(entityTag string) *CustomersExperimentsListExperimentAsyncErrorsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) Context(ctx context.Context) *CustomersExperimentsListExperimentAsyncErrorsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsListExperimentAsyncErrorsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:listExperimentAsyncErrors")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.listExperimentAsyncErrors", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.listExperimentAsyncErrors" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse.ServerRe
// sponse.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 *CustomersExperimentsListExperimentAsyncErrorsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.listExperimentAsyncErrors", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersExperimentsListExperimentAsyncErrorsCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__ListExperimentAsyncErrorsResponse) error) error {
	c.ctx_ = ctx
	defer c.PageToken(c.urlParams_.Get("pageToken"))
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.PageToken(x.NextPageToken)
	}
}

type CustomersExperimentsMutateCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__mutateexperimentsrequest *GoogleAdsSearchads360V23Services__MutateExperimentsRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Mutate: Creates, updates, or removes experiments. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ExperimentError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer whose experiments are being modified.
func (r *CustomersExperimentsService) Mutate(customerId string, googleadssearchads360v23services__mutateexperimentsrequest *GoogleAdsSearchads360V23Services__MutateExperimentsRequest) *CustomersExperimentsMutateCall {
	c := &CustomersExperimentsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateexperimentsrequest = googleadssearchads360v23services__mutateexperimentsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentsMutateCall) Fields(s ...googleapi.Field) *CustomersExperimentsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsMutateCall) Context(ctx context.Context) *CustomersExperimentsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateexperimentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/experiments:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateExperimentsResponse.ServerResponse.H
// eader 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 *CustomersExperimentsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateExperimentsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateExperimentsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentsPromoteExperimentCall struct {
	s                                                          *Service
	resourceName                                               string
	googleadssearchads360v23services__promoteexperimentrequest *GoogleAdsSearchads360V23Services__PromoteExperimentRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// PromoteExperiment: Promotes the trial campaign thus applying changes in the
// trial campaign to the base campaign. This method returns a long running
// operation that tracks the promotion of the experiment campaign. If it fails,
// a list of errors can be retrieved using the ListExperimentAsyncErrors
// method. The operation's metadata will be a string containing the resource
// name of the created experiment. List of thrown errors: AuthenticationError
// () [AuthorizationError]() ExperimentError () [HeaderError]() InternalError
// () [QuotaError]() RequestError ()
//
// - resourceName: The resource name of the experiment to promote.
func (r *CustomersExperimentsService) PromoteExperiment(resourceName string, googleadssearchads360v23services__promoteexperimentrequest *GoogleAdsSearchads360V23Services__PromoteExperimentRequest) *CustomersExperimentsPromoteExperimentCall {
	c := &CustomersExperimentsPromoteExperimentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__promoteexperimentrequest = googleadssearchads360v23services__promoteexperimentrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentsPromoteExperimentCall) Fields(s ...googleapi.Field) *CustomersExperimentsPromoteExperimentCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsPromoteExperimentCall) Context(ctx context.Context) *CustomersExperimentsPromoteExperimentCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsPromoteExperimentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsPromoteExperimentCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__promoteexperimentrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:promoteExperiment")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.promoteExperiment", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.promoteExperiment" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunning__Operation.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 *CustomersExperimentsPromoteExperimentCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleLongrunning__Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.promoteExperiment", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersExperimentsScheduleExperimentCall struct {
	s                                                           *Service
	resourceName                                                string
	googleadssearchads360v23services__scheduleexperimentrequest *GoogleAdsSearchads360V23Services__ScheduleExperimentRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// ScheduleExperiment: Schedule an experiment. The in design campaign will be
// converted into a real campaign (called the experiment campaign) that will
// begin serving ads if successfully created. The experiment is scheduled
// immediately with status INITIALIZING. This method returns a long running
// operation that tracks the forking of the in design campaign. If the forking
// fails, a list of errors can be retrieved using the ListExperimentAsyncErrors
// method. The operation's metadata will be a string containing the resource
// name of the created experiment. List of thrown errors: AuthenticationError
// () [AuthorizationError]() ExperimentError () [DatabaseError]() DateError ()
// [DateRangeError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [RequestError]()
//
// - resourceName: The scheduled experiment.
func (r *CustomersExperimentsService) ScheduleExperiment(resourceName string, googleadssearchads360v23services__scheduleexperimentrequest *GoogleAdsSearchads360V23Services__ScheduleExperimentRequest) *CustomersExperimentsScheduleExperimentCall {
	c := &CustomersExperimentsScheduleExperimentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__scheduleexperimentrequest = googleadssearchads360v23services__scheduleexperimentrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersExperimentsScheduleExperimentCall) Fields(s ...googleapi.Field) *CustomersExperimentsScheduleExperimentCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersExperimentsScheduleExperimentCall) Context(ctx context.Context) *CustomersExperimentsScheduleExperimentCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersExperimentsScheduleExperimentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersExperimentsScheduleExperimentCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__scheduleexperimentrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:scheduleExperiment")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.scheduleExperiment", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.experiments.scheduleExperiment" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunning__Operation.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 *CustomersExperimentsScheduleExperimentCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleLongrunning__Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.experiments.scheduleExperiment", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersIncentivesApplyIncentiveCall struct {
	s                                                       *Service
	customerId                                              string
	selectedIncentiveId                                     int64
	googleadssearchads360v23services__applyincentiverequest *GoogleAdsSearchads360V23Services__ApplyIncentiveRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// ApplyIncentive: Applies the incentive for the ads customer.
//
//   - customerId: The customer ID of the account that the incentive is being
//     applied to.
//   - selectedIncentiveId: The incentive ID of this incentive. This is used to
//     identify which incentive is selected by the user in the CYO flow.
func (r *CustomersIncentivesService) ApplyIncentive(customerId string, selectedIncentiveId int64, googleadssearchads360v23services__applyincentiverequest *GoogleAdsSearchads360V23Services__ApplyIncentiveRequest) *CustomersIncentivesApplyIncentiveCall {
	c := &CustomersIncentivesApplyIncentiveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.selectedIncentiveId = selectedIncentiveId
	c.googleadssearchads360v23services__applyincentiverequest = googleadssearchads360v23services__applyincentiverequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersIncentivesApplyIncentiveCall) Fields(s ...googleapi.Field) *CustomersIncentivesApplyIncentiveCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersIncentivesApplyIncentiveCall) Context(ctx context.Context) *CustomersIncentivesApplyIncentiveCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersIncentivesApplyIncentiveCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersIncentivesApplyIncentiveCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__applyincentiverequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/incentives/{+selectedIncentiveId}:applyIncentive")
	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{
		"customerId":          c.customerId,
		"selectedIncentiveId": strconv.FormatInt(c.selectedIncentiveId, 10),
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.incentives.applyIncentive", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.incentives.applyIncentive" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ApplyIncentiveResponse.ServerResponse.Head
// er 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 *CustomersIncentivesApplyIncentiveCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ApplyIncentiveResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ApplyIncentiveResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.incentives.applyIncentive", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersInvoicesListCall struct {
	s            *Service
	customerId   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns all invoices associated with a billing setup, for a given
// month. List of thrown errors: AuthenticationError () [AuthorizationError]()
// FieldError () [HeaderError]() InternalError () [InvoiceError]() QuotaError
// () [RequestError]()
//
// - customerId: The ID of the customer to fetch invoices for.
func (r *CustomersInvoicesService) List(customerId string) *CustomersInvoicesListCall {
	c := &CustomersInvoicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	return c
}

// BillingSetup sets the optional parameter "billingSetup": Required. The
// billing setup resource name of the requested invoices.
// `customers/{customer_id}/billingSetups/{billing_setup_id}`
func (c *CustomersInvoicesListCall) BillingSetup(billingSetup string) *CustomersInvoicesListCall {
	c.urlParams_.Set("billingSetup", billingSetup)
	return c
}

// IncludeGranularLevelInvoiceDetails sets the optional parameter
// "includeGranularLevelInvoiceDetails": When true, the response will include
// more granular level invoice details such as campaign level cost breakdown,
// itemized regulatory costs and adjustments. The default value is false.
func (c *CustomersInvoicesListCall) IncludeGranularLevelInvoiceDetails(includeGranularLevelInvoiceDetails bool) *CustomersInvoicesListCall {
	c.urlParams_.Set("includeGranularLevelInvoiceDetails", fmt.Sprint(includeGranularLevelInvoiceDetails))
	return c
}

// IssueMonth sets the optional parameter "issueMonth": Required. The issue
// month to retrieve invoices.
//
// Possible values:
//
//	"UNSPECIFIED" - Not specified.
//	"UNKNOWN" - The value is unknown in this version.
//	"JANUARY" - January.
//	"FEBRUARY" - February.
//	"MARCH" - March.
//	"APRIL" - April.
//	"MAY" - May.
//	"JUNE" - June.
//	"JULY" - July.
//	"AUGUST" - August.
//	"SEPTEMBER" - September.
//	"OCTOBER" - October.
//	"NOVEMBER" - November.
//	"DECEMBER" - December.
func (c *CustomersInvoicesListCall) IssueMonth(issueMonth string) *CustomersInvoicesListCall {
	c.urlParams_.Set("issueMonth", issueMonth)
	return c
}

// IssueYear sets the optional parameter "issueYear": Required. The issue year
// to retrieve invoices, in yyyy format. Only invoices issued in 2019 or later
// can be retrieved.
func (c *CustomersInvoicesListCall) IssueYear(issueYear string) *CustomersInvoicesListCall {
	c.urlParams_.Set("issueYear", issueYear)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersInvoicesListCall) Fields(s ...googleapi.Field) *CustomersInvoicesListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersInvoicesListCall) IfNoneMatch(entityTag string) *CustomersInvoicesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersInvoicesListCall) Context(ctx context.Context) *CustomersInvoicesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersInvoicesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersInvoicesListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/invoices")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.invoices.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.invoices.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListInvoicesResponse.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 *CustomersInvoicesListCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListInvoicesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListInvoicesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.invoices.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersKeywordPlanAdGroupKeywordsMutateCall struct {
	s                                                                         *Service
	customerId                                                                string
	googleadssearchads360v23services__mutatekeywordplanadgroupkeywordsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest
	urlParams_                                                                gensupport.URLParams
	ctx_                                                                      context.Context
	header_                                                                   http.Header
}

// Mutate: Creates, updates, or removes Keyword Plan ad group keywords.
// Operation statuses are returned. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() KeywordPlanAdGroupKeywordError () [KeywordPlanError]()
// MutateError () [QuotaError]() RequestError ()
// [ResourceCountLimitExceededError]()
//
//   - customerId: The ID of the customer whose Keyword Plan ad group keywords
//     are being modified.
func (r *CustomersKeywordPlanAdGroupKeywordsService) Mutate(customerId string, googleadssearchads360v23services__mutatekeywordplanadgroupkeywordsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsRequest) *CustomersKeywordPlanAdGroupKeywordsMutateCall {
	c := &CustomersKeywordPlanAdGroupKeywordsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatekeywordplanadgroupkeywordsrequest = googleadssearchads360v23services__mutatekeywordplanadgroupkeywordsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersKeywordPlanAdGroupKeywordsMutateCall) Fields(s ...googleapi.Field) *CustomersKeywordPlanAdGroupKeywordsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersKeywordPlanAdGroupKeywordsMutateCall) Context(ctx context.Context) *CustomersKeywordPlanAdGroupKeywordsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersKeywordPlanAdGroupKeywordsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersKeywordPlanAdGroupKeywordsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatekeywordplanadgroupkeywordsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/keywordPlanAdGroupKeywords:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanAdGroupKeywords.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.keywordPlanAdGroupKeywords.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse.S
// erverResponse.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 *CustomersKeywordPlanAdGroupKeywordsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupKeywordsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanAdGroupKeywords.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersKeywordPlanAdGroupsMutateCall struct {
	s                                                                  *Service
	customerId                                                         string
	googleadssearchads360v23services__mutatekeywordplanadgroupsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Mutate: Creates, updates, or removes Keyword Plan ad groups. Operation
// statuses are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() FieldMaskError ()
// [HeaderError]() InternalError () [KeywordPlanAdGroupError]()
// KeywordPlanError () [MutateError]() NewResourceCreationError ()
// [QuotaError]() RequestError () [ResourceCountLimitExceededError]()
//
//   - customerId: The ID of the customer whose Keyword Plan ad groups are being
//     modified.
func (r *CustomersKeywordPlanAdGroupsService) Mutate(customerId string, googleadssearchads360v23services__mutatekeywordplanadgroupsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsRequest) *CustomersKeywordPlanAdGroupsMutateCall {
	c := &CustomersKeywordPlanAdGroupsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatekeywordplanadgroupsrequest = googleadssearchads360v23services__mutatekeywordplanadgroupsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersKeywordPlanAdGroupsMutateCall) Fields(s ...googleapi.Field) *CustomersKeywordPlanAdGroupsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersKeywordPlanAdGroupsMutateCall) Context(ctx context.Context) *CustomersKeywordPlanAdGroupsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersKeywordPlanAdGroupsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersKeywordPlanAdGroupsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatekeywordplanadgroupsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/keywordPlanAdGroups:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanAdGroups.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.keywordPlanAdGroups.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse.ServerRe
// sponse.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 *CustomersKeywordPlanAdGroupsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateKeywordPlanAdGroupsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanAdGroups.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersKeywordPlanCampaignKeywordsMutateCall struct {
	s                                                                          *Service
	customerId                                                                 string
	googleadssearchads360v23services__mutatekeywordplancampaignkeywordsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest
	urlParams_                                                                 gensupport.URLParams
	ctx_                                                                       context.Context
	header_                                                                    http.Header
}

// Mutate: Creates, updates, or removes Keyword Plan campaign keywords.
// Operation statuses are returned. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() KeywordPlanAdGroupKeywordError ()
// [KeywordPlanCampaignKeywordError]() QuotaError () [RequestError]()
// ResourceCountLimitExceededError ()
//
//   - customerId: The ID of the customer whose campaign keywords are being
//     modified.
func (r *CustomersKeywordPlanCampaignKeywordsService) Mutate(customerId string, googleadssearchads360v23services__mutatekeywordplancampaignkeywordsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsRequest) *CustomersKeywordPlanCampaignKeywordsMutateCall {
	c := &CustomersKeywordPlanCampaignKeywordsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatekeywordplancampaignkeywordsrequest = googleadssearchads360v23services__mutatekeywordplancampaignkeywordsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersKeywordPlanCampaignKeywordsMutateCall) Fields(s ...googleapi.Field) *CustomersKeywordPlanCampaignKeywordsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersKeywordPlanCampaignKeywordsMutateCall) Context(ctx context.Context) *CustomersKeywordPlanCampaignKeywordsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersKeywordPlanCampaignKeywordsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersKeywordPlanCampaignKeywordsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatekeywordplancampaignkeywordsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/keywordPlanCampaignKeywords:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanCampaignKeywords.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.keywordPlanCampaignKeywords.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse.
// 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 *CustomersKeywordPlanCampaignKeywordsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignKeywordsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanCampaignKeywords.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersKeywordPlanCampaignsMutateCall struct {
	s                                                                   *Service
	customerId                                                          string
	googleadssearchads360v23services__mutatekeywordplancampaignsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Mutate: Creates, updates, or removes Keyword Plan campaigns. Operation
// statuses are returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() FieldMaskError ()
// [HeaderError]() InternalError () [KeywordPlanCampaignError]()
// KeywordPlanError () [ListOperationError]() MutateError () [QuotaError]()
// RangeError () [RequestError]() ResourceCountLimitExceededError ()
//
//   - customerId: The ID of the customer whose Keyword Plan campaigns are being
//     modified.
func (r *CustomersKeywordPlanCampaignsService) Mutate(customerId string, googleadssearchads360v23services__mutatekeywordplancampaignsrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsRequest) *CustomersKeywordPlanCampaignsMutateCall {
	c := &CustomersKeywordPlanCampaignsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatekeywordplancampaignsrequest = googleadssearchads360v23services__mutatekeywordplancampaignsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersKeywordPlanCampaignsMutateCall) Fields(s ...googleapi.Field) *CustomersKeywordPlanCampaignsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersKeywordPlanCampaignsMutateCall) Context(ctx context.Context) *CustomersKeywordPlanCampaignsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersKeywordPlanCampaignsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersKeywordPlanCampaignsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatekeywordplancampaignsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/keywordPlanCampaigns:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanCampaigns.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.keywordPlanCampaigns.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse.ServerR
// esponse.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 *CustomersKeywordPlanCampaignsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateKeywordPlanCampaignsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlanCampaigns.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersKeywordPlansMutateCall struct {
	s                                                           *Service
	customerId                                                  string
	googleadssearchads360v23services__mutatekeywordplansrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Mutate: Creates, updates, or removes keyword plans. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() KeywordPlanError () [MutateError]()
// NewResourceCreationError () [QuotaError]() RequestError ()
// [ResourceCountLimitExceededError]() StringLengthError ()
//
// - customerId: The ID of the customer whose keyword plans are being modified.
func (r *CustomersKeywordPlansService) Mutate(customerId string, googleadssearchads360v23services__mutatekeywordplansrequest *GoogleAdsSearchads360V23Services__MutateKeywordPlansRequest) *CustomersKeywordPlansMutateCall {
	c := &CustomersKeywordPlansMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatekeywordplansrequest = googleadssearchads360v23services__mutatekeywordplansrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersKeywordPlansMutateCall) Fields(s ...googleapi.Field) *CustomersKeywordPlansMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersKeywordPlansMutateCall) Context(ctx context.Context) *CustomersKeywordPlansMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersKeywordPlansMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersKeywordPlansMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatekeywordplansrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/keywordPlans:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlans.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.keywordPlans.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse.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 *CustomersKeywordPlansMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateKeywordPlansResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.keywordPlans.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersLabelsMutateCall struct {
	s                                                     *Service
	customerId                                            string
	googleadssearchads360v23services__mutatelabelsrequest *GoogleAdsSearchads360V23Services__MutateLabelsRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// Mutate: Creates, updates, or removes labels. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [DateError]() DistinctError ()
// [FieldError]() FieldMaskError () [HeaderError]() IdError ()
// [InternalError]() LabelError () [MutateError]() NewResourceCreationError ()
// [NotEmptyError]() NullError () [OperatorError]() QuotaError ()
// [RangeError]() RequestError () [ResourceCountLimitExceededError]()
// SizeLimitError () [StringFormatError]() StringLengthError ()
//
// - customerId: ID of the customer whose labels are being modified.
func (r *CustomersLabelsService) Mutate(customerId string, googleadssearchads360v23services__mutatelabelsrequest *GoogleAdsSearchads360V23Services__MutateLabelsRequest) *CustomersLabelsMutateCall {
	c := &CustomersLabelsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatelabelsrequest = googleadssearchads360v23services__mutatelabelsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersLabelsMutateCall) Fields(s ...googleapi.Field) *CustomersLabelsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersLabelsMutateCall) Context(ctx context.Context) *CustomersLabelsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersLabelsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersLabelsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatelabelsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/labels:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.labels.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.labels.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateLabelsResponse.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 *CustomersLabelsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateLabelsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateLabelsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.labels.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersLocalServicesAppendLeadConversationCall struct {
	s                                                               *Service
	customerId                                                      string
	googleadssearchads360v23services__appendleadconversationrequest *GoogleAdsSearchads360V23Services__AppendLeadConversationRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// AppendLeadConversation: RPC to append Local Services Lead Conversation
// resources to Local Services Lead resources.
//
//   - customerId: The Id of the customer which owns the leads onto which the
//     conversations will be appended.
func (r *CustomersLocalServicesService) AppendLeadConversation(customerId string, googleadssearchads360v23services__appendleadconversationrequest *GoogleAdsSearchads360V23Services__AppendLeadConversationRequest) *CustomersLocalServicesAppendLeadConversationCall {
	c := &CustomersLocalServicesAppendLeadConversationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__appendleadconversationrequest = googleadssearchads360v23services__appendleadconversationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersLocalServicesAppendLeadConversationCall) Fields(s ...googleapi.Field) *CustomersLocalServicesAppendLeadConversationCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersLocalServicesAppendLeadConversationCall) Context(ctx context.Context) *CustomersLocalServicesAppendLeadConversationCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersLocalServicesAppendLeadConversationCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersLocalServicesAppendLeadConversationCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__appendleadconversationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/localServices:appendLeadConversation")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.localServices.appendLeadConversation", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.localServices.appendLeadConversation" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__AppendLeadConversationResponse.ServerRespo
// nse.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 *CustomersLocalServicesAppendLeadConversationCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__AppendLeadConversationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__AppendLeadConversationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.localServices.appendLeadConversation", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersLocalServicesLeadsProvideLeadFeedbackCall struct {
	s                                                            *Service
	resourceName                                                 string
	googleadssearchads360v23services__provideleadfeedbackrequest *GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// ProvideLeadFeedback: RPC to provide feedback on Local Services Lead
// resources.
//
//   - resourceName: The resource name of the local services lead that for which
//     the feedback is being provided.
func (r *CustomersLocalServicesLeadsService) ProvideLeadFeedback(resourceName string, googleadssearchads360v23services__provideleadfeedbackrequest *GoogleAdsSearchads360V23Services__ProvideLeadFeedbackRequest) *CustomersLocalServicesLeadsProvideLeadFeedbackCall {
	c := &CustomersLocalServicesLeadsProvideLeadFeedbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__provideleadfeedbackrequest = googleadssearchads360v23services__provideleadfeedbackrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersLocalServicesLeadsProvideLeadFeedbackCall) Fields(s ...googleapi.Field) *CustomersLocalServicesLeadsProvideLeadFeedbackCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersLocalServicesLeadsProvideLeadFeedbackCall) Context(ctx context.Context) *CustomersLocalServicesLeadsProvideLeadFeedbackCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersLocalServicesLeadsProvideLeadFeedbackCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersLocalServicesLeadsProvideLeadFeedbackCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__provideleadfeedbackrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:provideLeadFeedback")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.localServicesLeads.provideLeadFeedback", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.localServicesLeads.provideLeadFeedback" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse.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 *CustomersLocalServicesLeadsProvideLeadFeedbackCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ProvideLeadFeedbackResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.localServicesLeads.provideLeadFeedback", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersOfflineUserDataJobsAddOperationsCall struct {
	s                                                                        *Service
	resourceName                                                             string
	googleadssearchads360v23services__addofflineuserdatajoboperationsrequest *GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest
	urlParams_                                                               gensupport.URLParams
	ctx_                                                                     context.Context
	header_                                                                  http.Header
}

// AddOperations: Adds operations to the offline user data job. List of thrown
// errors: AuthenticationError () [AuthorizationError]() DatabaseError ()
// [FieldError]() HeaderError () [InternalError]() MutateError ()
// [OfflineUserDataJobError]() QuotaError () [RequestError]()
//
// - resourceName: The resource name of the OfflineUserDataJob.
func (r *CustomersOfflineUserDataJobsService) AddOperations(resourceName string, googleadssearchads360v23services__addofflineuserdatajoboperationsrequest *GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsRequest) *CustomersOfflineUserDataJobsAddOperationsCall {
	c := &CustomersOfflineUserDataJobsAddOperationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__addofflineuserdatajoboperationsrequest = googleadssearchads360v23services__addofflineuserdatajoboperationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersOfflineUserDataJobsAddOperationsCall) Fields(s ...googleapi.Field) *CustomersOfflineUserDataJobsAddOperationsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersOfflineUserDataJobsAddOperationsCall) Context(ctx context.Context) *CustomersOfflineUserDataJobsAddOperationsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersOfflineUserDataJobsAddOperationsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersOfflineUserDataJobsAddOperationsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__addofflineuserdatajoboperationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:addOperations")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.addOperations", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.offlineUserDataJobs.addOperations" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse.Se
// rverResponse.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 *CustomersOfflineUserDataJobsAddOperationsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__AddOfflineUserDataJobOperationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.addOperations", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersOfflineUserDataJobsCreateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__createofflineuserdatajobrequest *GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Create: Creates an offline user data job. List of thrown errors:
// AuthenticationError () [AuthorizationError]() DatabaseError ()
// [FieldError]() HeaderError () [InternalError]() NotAllowlistedError ()
// [OfflineUserDataJobError]() QuotaError () [RequestError]()
//
//   - customerId: The ID of the customer for which to create an offline user
//     data job.
func (r *CustomersOfflineUserDataJobsService) Create(customerId string, googleadssearchads360v23services__createofflineuserdatajobrequest *GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobRequest) *CustomersOfflineUserDataJobsCreateCall {
	c := &CustomersOfflineUserDataJobsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createofflineuserdatajobrequest = googleadssearchads360v23services__createofflineuserdatajobrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersOfflineUserDataJobsCreateCall) Fields(s ...googleapi.Field) *CustomersOfflineUserDataJobsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersOfflineUserDataJobsCreateCall) Context(ctx context.Context) *CustomersOfflineUserDataJobsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersOfflineUserDataJobsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersOfflineUserDataJobsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createofflineuserdatajobrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/offlineUserDataJobs:create")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.offlineUserDataJobs.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse.ServerRes
// ponse.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 *CustomersOfflineUserDataJobsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateOfflineUserDataJobResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersOfflineUserDataJobsRunCall struct {
	s                                                              *Service
	resourceName                                                   string
	googleadssearchads360v23services__runofflineuserdatajobrequest *GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Run: Runs the offline user data job. When finished, the long running
// operation will contain the processing result or failure information, if any.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// DatabaseError () [HeaderError]() InternalError ()
// [OfflineUserDataJobError]() QuotaError () [RequestError]()
//
// - resourceName: The resource name of the OfflineUserDataJob to run.
func (r *CustomersOfflineUserDataJobsService) Run(resourceName string, googleadssearchads360v23services__runofflineuserdatajobrequest *GoogleAdsSearchads360V23Services__RunOfflineUserDataJobRequest) *CustomersOfflineUserDataJobsRunCall {
	c := &CustomersOfflineUserDataJobsRunCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__runofflineuserdatajobrequest = googleadssearchads360v23services__runofflineuserdatajobrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersOfflineUserDataJobsRunCall) Fields(s ...googleapi.Field) *CustomersOfflineUserDataJobsRunCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersOfflineUserDataJobsRunCall) Context(ctx context.Context) *CustomersOfflineUserDataJobsRunCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersOfflineUserDataJobsRunCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersOfflineUserDataJobsRunCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__runofflineuserdatajobrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:run")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.run", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.offlineUserDataJobs.run" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunning__Operation.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 *CustomersOfflineUserDataJobsRunCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunning__Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleLongrunning__Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.offlineUserDataJobs.run", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersPaymentsAccountsListCall struct {
	s            *Service
	customerId   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Returns all payments accounts associated with all managers between the
// login customer ID and specified serving customer in the hierarchy,
// inclusive. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() HeaderError () [InternalError]() PaymentsAccountError
// () [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer to apply the PaymentsAccount list
//     operation to.
func (r *CustomersPaymentsAccountsService) List(customerId string) *CustomersPaymentsAccountsListCall {
	c := &CustomersPaymentsAccountsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersPaymentsAccountsListCall) Fields(s ...googleapi.Field) *CustomersPaymentsAccountsListCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersPaymentsAccountsListCall) IfNoneMatch(entityTag string) *CustomersPaymentsAccountsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersPaymentsAccountsListCall) Context(ctx context.Context) *CustomersPaymentsAccountsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersPaymentsAccountsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersPaymentsAccountsListCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/paymentsAccounts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.paymentsAccounts.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.paymentsAccounts.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse.ServerRespons
// e.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 *CustomersPaymentsAccountsListCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListPaymentsAccountsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.paymentsAccounts.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersProductLinkInvitationsCreateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__createproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Create: Creates a product link invitation.
//
// - customerId: The ID of the customer being modified.
func (r *CustomersProductLinkInvitationsService) Create(customerId string, googleadssearchads360v23services__createproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__CreateProductLinkInvitationRequest) *CustomersProductLinkInvitationsCreateCall {
	c := &CustomersProductLinkInvitationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createproductlinkinvitationrequest = googleadssearchads360v23services__createproductlinkinvitationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersProductLinkInvitationsCreateCall) Fields(s ...googleapi.Field) *CustomersProductLinkInvitationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersProductLinkInvitationsCreateCall) Context(ctx context.Context) *CustomersProductLinkInvitationsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersProductLinkInvitationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersProductLinkInvitationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createproductlinkinvitationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/productLinkInvitations:create")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.productLinkInvitations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse.Server
// Response.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 *CustomersProductLinkInvitationsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateProductLinkInvitationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersProductLinkInvitationsRemoveCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__removeproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Remove: Remove a product link invitation.
//
// - customerId: The ID of the product link invitation being removed.
func (r *CustomersProductLinkInvitationsService) Remove(customerId string, googleadssearchads360v23services__removeproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationRequest) *CustomersProductLinkInvitationsRemoveCall {
	c := &CustomersProductLinkInvitationsRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__removeproductlinkinvitationrequest = googleadssearchads360v23services__removeproductlinkinvitationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersProductLinkInvitationsRemoveCall) Fields(s ...googleapi.Field) *CustomersProductLinkInvitationsRemoveCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersProductLinkInvitationsRemoveCall) Context(ctx context.Context) *CustomersProductLinkInvitationsRemoveCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersProductLinkInvitationsRemoveCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersProductLinkInvitationsRemoveCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__removeproductlinkinvitationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/productLinkInvitations:remove")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.remove", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.productLinkInvitations.remove" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse.Server
// Response.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 *CustomersProductLinkInvitationsRemoveCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__RemoveProductLinkInvitationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.remove", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersProductLinkInvitationsUpdateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__updateproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Update: Update a product link invitation.
//
// - customerId: The ID of the customer being modified.
func (r *CustomersProductLinkInvitationsService) Update(customerId string, googleadssearchads360v23services__updateproductlinkinvitationrequest *GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationRequest) *CustomersProductLinkInvitationsUpdateCall {
	c := &CustomersProductLinkInvitationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__updateproductlinkinvitationrequest = googleadssearchads360v23services__updateproductlinkinvitationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersProductLinkInvitationsUpdateCall) Fields(s ...googleapi.Field) *CustomersProductLinkInvitationsUpdateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersProductLinkInvitationsUpdateCall) Context(ctx context.Context) *CustomersProductLinkInvitationsUpdateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersProductLinkInvitationsUpdateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersProductLinkInvitationsUpdateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__updateproductlinkinvitationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/productLinkInvitations:update")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.update", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.productLinkInvitations.update" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse.Server
// Response.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 *CustomersProductLinkInvitationsUpdateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__UpdateProductLinkInvitationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.productLinkInvitations.update", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersProductLinksCreateCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__createproductlinkrequest *GoogleAdsSearchads360V23Services__CreateProductLinkRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Create: Creates a product link. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() MutateError () [QuotaError]() RequestError ()
//
// - customerId: The ID of the customer for which the product link is created.
func (r *CustomersProductLinksService) Create(customerId string, googleadssearchads360v23services__createproductlinkrequest *GoogleAdsSearchads360V23Services__CreateProductLinkRequest) *CustomersProductLinksCreateCall {
	c := &CustomersProductLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__createproductlinkrequest = googleadssearchads360v23services__createproductlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersProductLinksCreateCall) Fields(s ...googleapi.Field) *CustomersProductLinksCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersProductLinksCreateCall) Context(ctx context.Context) *CustomersProductLinksCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersProductLinksCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersProductLinksCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__createproductlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/productLinks:create")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.productLinks.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.productLinks.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__CreateProductLinkResponse.ServerResponse.H
// eader 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 *CustomersProductLinksCreateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__CreateProductLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__CreateProductLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.productLinks.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersProductLinksRemoveCall struct {
	s                                                          *Service
	customerId                                                 string
	googleadssearchads360v23services__removeproductlinkrequest *GoogleAdsSearchads360V23Services__RemoveProductLinkRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// Remove: Removes a product link. List of thrown errors: AuthenticationError
// () [AuthorizationError]() FieldMaskError () [HeaderError]() InternalError ()
// [MutateError]() QuotaError () [RequestError]()
//
// - customerId: The ID of the customer being modified.
func (r *CustomersProductLinksService) Remove(customerId string, googleadssearchads360v23services__removeproductlinkrequest *GoogleAdsSearchads360V23Services__RemoveProductLinkRequest) *CustomersProductLinksRemoveCall {
	c := &CustomersProductLinksRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__removeproductlinkrequest = googleadssearchads360v23services__removeproductlinkrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersProductLinksRemoveCall) Fields(s ...googleapi.Field) *CustomersProductLinksRemoveCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersProductLinksRemoveCall) Context(ctx context.Context) *CustomersProductLinksRemoveCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersProductLinksRemoveCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersProductLinksRemoveCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__removeproductlinkrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/productLinks:remove")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.productLinks.remove", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.productLinks.remove" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__RemoveProductLinkResponse.ServerResponse.H
// eader 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 *CustomersProductLinksRemoveCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__RemoveProductLinkResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__RemoveProductLinkResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.productLinks.remove", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall struct {
	s                                                                         *Service
	customerId                                                                string
	googleadssearchads360v23services__mutaterecommendationsubscriptionrequest *GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest
	urlParams_                                                                gensupport.URLParams
	ctx_                                                                      context.Context
	header_                                                                   http.Header
}

// MutateRecommendationSubscription: Mutates given subscription with
// corresponding apply parameters. List of thrown errors: AuthenticationError
// () [AuthorizationError]() DatabaseError () [FieldError]() HeaderError ()
// [InternalError]() MutateError () [QuotaError]() RecommendationError ()
// [RecommendationSubscriptionError]() RequestError () [UrlFieldError]()
//
// - customerId: The ID of the subscribing customer.
func (r *CustomersRecommendationSubscriptionsService) MutateRecommendationSubscription(customerId string, googleadssearchads360v23services__mutaterecommendationsubscriptionrequest *GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionRequest) *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall {
	c := &CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutaterecommendationsubscriptionrequest = googleadssearchads360v23services__mutaterecommendationsubscriptionrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall) Fields(s ...googleapi.Field) *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall) Context(ctx context.Context) *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutaterecommendationsubscriptionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/recommendationSubscriptions:mutateRecommendationSubscription")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.recommendationSubscriptions.mutateRecommendationSubscription", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.recommendationSubscriptions.mutateRecommendationSubscription" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse.S
// erverResponse.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 *CustomersRecommendationSubscriptionsMutateRecommendationSubscriptionCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateRecommendationSubscriptionResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.recommendationSubscriptions.mutateRecommendationSubscription", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRecommendationsApplyCall struct {
	s                                                            *Service
	customerId                                                   string
	googleadssearchads360v23services__applyrecommendationrequest *GoogleAdsSearchads360V23Services__ApplyRecommendationRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Apply: Applies given recommendations with corresponding apply parameters.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// DatabaseError () [FieldError]() HeaderError () [InternalError]() MutateError
// () [QuotaError]() RecommendationError () [RequestError]() UrlFieldError ()
//
// - customerId: The ID of the customer with the recommendation.
func (r *CustomersRecommendationsService) Apply(customerId string, googleadssearchads360v23services__applyrecommendationrequest *GoogleAdsSearchads360V23Services__ApplyRecommendationRequest) *CustomersRecommendationsApplyCall {
	c := &CustomersRecommendationsApplyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__applyrecommendationrequest = googleadssearchads360v23services__applyrecommendationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRecommendationsApplyCall) Fields(s ...googleapi.Field) *CustomersRecommendationsApplyCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRecommendationsApplyCall) Context(ctx context.Context) *CustomersRecommendationsApplyCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRecommendationsApplyCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRecommendationsApplyCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__applyrecommendationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/recommendations:apply")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.apply", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.recommendations.apply" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ApplyRecommendationResponse.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 *CustomersRecommendationsApplyCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ApplyRecommendationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ApplyRecommendationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.apply", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRecommendationsDismissCall struct {
	s                                                              *Service
	customerId                                                     string
	googleadssearchads360v23services__dismissrecommendationrequest *GoogleAdsSearchads360V23Services__DismissRecommendationRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// Dismiss: Dismisses given recommendations. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RecommendationError]() RequestError ()
//
// - customerId: The ID of the customer with the recommendation.
func (r *CustomersRecommendationsService) Dismiss(customerId string, googleadssearchads360v23services__dismissrecommendationrequest *GoogleAdsSearchads360V23Services__DismissRecommendationRequest) *CustomersRecommendationsDismissCall {
	c := &CustomersRecommendationsDismissCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__dismissrecommendationrequest = googleadssearchads360v23services__dismissrecommendationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRecommendationsDismissCall) Fields(s ...googleapi.Field) *CustomersRecommendationsDismissCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRecommendationsDismissCall) Context(ctx context.Context) *CustomersRecommendationsDismissCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRecommendationsDismissCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRecommendationsDismissCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__dismissrecommendationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/recommendations:dismiss")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.dismiss", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.recommendations.dismiss" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__DismissRecommendationResponse.ServerRespon
// se.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 *CustomersRecommendationsDismissCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__DismissRecommendationResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__DismissRecommendationResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.dismiss", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRecommendationsGenerateCall struct {
	s                                                                *Service
	customerId                                                       string
	googleadssearchads360v23services__generaterecommendationsrequest *GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// Generate: Generates Recommendations based off the requested
// recommendation_types. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RecommendationError]() RequestError ()
//
// - customerId: The ID of the customer generating recommendations.
func (r *CustomersRecommendationsService) Generate(customerId string, googleadssearchads360v23services__generaterecommendationsrequest *GoogleAdsSearchads360V23Services__GenerateRecommendationsRequest) *CustomersRecommendationsGenerateCall {
	c := &CustomersRecommendationsGenerateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__generaterecommendationsrequest = googleadssearchads360v23services__generaterecommendationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRecommendationsGenerateCall) Fields(s ...googleapi.Field) *CustomersRecommendationsGenerateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRecommendationsGenerateCall) Context(ctx context.Context) *CustomersRecommendationsGenerateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRecommendationsGenerateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRecommendationsGenerateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generaterecommendationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/recommendations:generate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.generate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.recommendations.generate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse.ServerResp
// onse.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 *CustomersRecommendationsGenerateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateRecommendationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.recommendations.generate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersRemarketingActionsMutateCall struct {
	s                                                                 *Service
	customerId                                                        string
	googleadssearchads360v23services__mutateremarketingactionsrequest *GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Mutate: Creates or updates remarketing actions. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() ConversionActionError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer whose remarketing actions are being
//     modified.
func (r *CustomersRemarketingActionsService) Mutate(customerId string, googleadssearchads360v23services__mutateremarketingactionsrequest *GoogleAdsSearchads360V23Services__MutateRemarketingActionsRequest) *CustomersRemarketingActionsMutateCall {
	c := &CustomersRemarketingActionsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateremarketingactionsrequest = googleadssearchads360v23services__mutateremarketingactionsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersRemarketingActionsMutateCall) Fields(s ...googleapi.Field) *CustomersRemarketingActionsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersRemarketingActionsMutateCall) Context(ctx context.Context) *CustomersRemarketingActionsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersRemarketingActionsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersRemarketingActionsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateremarketingactionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/remarketingActions:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.remarketingActions.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.remarketingActions.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse.ServerRes
// ponse.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 *CustomersRemarketingActionsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateRemarketingActionsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.remarketingActions.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSearchAds360MutateCall struct {
	s                                                           *Service
	customerId                                                  string
	googleadssearchads360v23services__mutatesearchads360request *GoogleAdsSearchads360V23Services__MutateSearchAds360Request
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Mutate: This method is essentially a wrapper around a series of mutate
// methods. The only features it offers over calling those methods directly
// are: - Atomic transactions - Temp resource names (described below) -
// Somewhat reduced latency over making a series of mutate calls Note: Only
// resources that support atomic transactions are included, so this method
// can't replace all calls to individual services. ## Atomic Transaction
// Benefits Atomicity makes error handling much easier. If you're making a
// series of changes and one fails, it can leave your account in an
// inconsistent state. With atomicity, you either reach the chosen state
// directly, or the request fails and you can retry. ## Temp Resource Names
// Temp resource names are a special type of resource name used to create a
// resource and reference that resource in the same request. For example, if a
// is created with `resource_name` equal to “, that resource name can be
// reused in the “ field in the same request. That way, the two resources are
// created and linked atomically. To create a temp resource name, put a
// negative number in the part of the name that the server would normally
// allocate. Note: - Resources must be created with a temp name before the name
// can be reused. For example, the previous example would fail if the mutate
// order was reversed. - Temp names are not remembered across requests. -
// There's no limit to the number of temp names in a request. - Each temp name
// must use a unique negative number, even if the resource types differ. ##
// Latency It's important to group mutates by resource type or the request may
// time out and fail. Latency is roughly equal to a series of calls to
// individual mutate methods, where each change in resource type is a new call.
// For example, mutating is like 2 calls, while mutating is like 4 calls. List
// of thrown errors: AdCustomizerError () [AdError]() AdGroupAdError ()
// [AdGroupCriterionError]() AdGroupError () [AssetError]() AuthenticationError
// () [AuthorizationError]() BiddingError () [CampaignBudgetError]()
// CampaignCriterionError () [CampaignError]() CampaignExperimentError ()
// [CampaignSharedSetError]() CollectionSizeError () [ContextError]()
// ConversionActionError () [CriterionError]() CustomerFeedError ()
// [DatabaseError]() DateError () [DateRangeError]() DistinctError ()
// [ExtensionFeedItemError]() ExtensionSettingError ()
// [FeedAttributeReferenceError]() FeedError () [FeedItemError]()
// FeedItemSetError () [FieldError]() FieldMaskError ()
// [FunctionParsingError]() HeaderError () [ImageError]() InternalError ()
// [KeywordPlanAdGroupKeywordError]() KeywordPlanCampaignError ()
// [KeywordPlanError]() LabelError () [ListOperationError]() MediaUploadError
// () [MutateError]() NewResourceCreationError () [NullError]()
// OperationAccessDeniedError () [PolicyFindingError]() PolicyViolationError ()
// [QuotaError]() RangeError () [RequestError]()
// ResourceCountLimitExceededError () [SettingError]() SharedSetError ()
// [SizeLimitError]() StringFormatError () [StringLengthError]() UrlFieldError
// () [UserListError]() YoutubeVideoRegistrationError ()
//
// - customerId: The ID of the customer whose resources are being modified.
func (r *CustomersSearchAds360Service) Mutate(customerId string, googleadssearchads360v23services__mutatesearchads360request *GoogleAdsSearchads360V23Services__MutateSearchAds360Request) *CustomersSearchAds360MutateCall {
	c := &CustomersSearchAds360MutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatesearchads360request = googleadssearchads360v23services__mutatesearchads360request
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSearchAds360MutateCall) Fields(s ...googleapi.Field) *CustomersSearchAds360MutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSearchAds360MutateCall) Context(ctx context.Context) *CustomersSearchAds360MutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSearchAds360MutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSearchAds360MutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatesearchads360request)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/searchAds360:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.searchAds360.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateSearchAds360Response.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 *CustomersSearchAds360MutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateSearchAds360Response, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateSearchAds360Response{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSearchAds360SearchCall struct {
	s                                                           *Service
	customerId                                                  string
	googleadssearchads360v23services__searchsearchads360request *GoogleAdsSearchads360V23Services__SearchSearchAds360Request
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Search: Returns all rows that match the search query. List of thrown errors:
// AuthenticationError () [AuthorizationError]() ChangeEventError ()
// [ChangeStatusError]() ClickViewError () [HeaderError]() InternalError ()
// [QueryError]() QuotaError () [RequestError]()
//
// - customerId: The ID of the customer being queried.
func (r *CustomersSearchAds360Service) Search(customerId string, googleadssearchads360v23services__searchsearchads360request *GoogleAdsSearchads360V23Services__SearchSearchAds360Request) *CustomersSearchAds360SearchCall {
	c := &CustomersSearchAds360SearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__searchsearchads360request = googleadssearchads360v23services__searchsearchads360request
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSearchAds360SearchCall) Fields(s ...googleapi.Field) *CustomersSearchAds360SearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSearchAds360SearchCall) Context(ctx context.Context) *CustomersSearchAds360SearchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSearchAds360SearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSearchAds360SearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__searchsearchads360request)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/searchAds360:search")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.searchAds360.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SearchSearchAds360Response.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 *CustomersSearchAds360SearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SearchSearchAds360Response, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SearchSearchAds360Response{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.searchAds360.search", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *CustomersSearchAds360SearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__SearchSearchAds360Response) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleadssearchads360v23services__searchsearchads360request.PageToken = pt }(c.googleadssearchads360v23services__searchsearchads360request.PageToken)
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.googleadssearchads360v23services__searchsearchads360request.PageToken = x.NextPageToken
	}
}

type CustomersSharedCriteriaMutateCall struct {
	s                                                             *Service
	customerId                                                    string
	googleadssearchads360v23services__mutatesharedcriteriarequest *GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// Mutate: Creates or removes shared criteria. Operation statuses are returned.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// CriterionError () [DatabaseError]() DistinctError () [FieldError]()
// HeaderError () [IdError]() InternalError () [MutateError]() NotEmptyError ()
// [NullError]() OperatorError () [QuotaError]() RangeError () [RequestError]()
// ResourceCountLimitExceededError () [SizeLimitError]() StringFormatError ()
// [StringLengthError]()
//
//   - customerId: The ID of the customer whose shared criteria are being
//     modified.
func (r *CustomersSharedCriteriaService) Mutate(customerId string, googleadssearchads360v23services__mutatesharedcriteriarequest *GoogleAdsSearchads360V23Services__MutateSharedCriteriaRequest) *CustomersSharedCriteriaMutateCall {
	c := &CustomersSharedCriteriaMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatesharedcriteriarequest = googleadssearchads360v23services__mutatesharedcriteriarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSharedCriteriaMutateCall) Fields(s ...googleapi.Field) *CustomersSharedCriteriaMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSharedCriteriaMutateCall) Context(ctx context.Context) *CustomersSharedCriteriaMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSharedCriteriaMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSharedCriteriaMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatesharedcriteriarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/sharedCriteria:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.sharedCriteria.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.sharedCriteria.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse.ServerRespons
// e.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 *CustomersSharedCriteriaMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateSharedCriteriaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.sharedCriteria.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSharedSetsMutateCall struct {
	s                                                         *Service
	customerId                                                string
	googleadssearchads360v23services__mutatesharedsetsrequest *GoogleAdsSearchads360V23Services__MutateSharedSetsRequest
	urlParams_                                                gensupport.URLParams
	ctx_                                                      context.Context
	header_                                                   http.Header
}

// Mutate: Creates, updates, or removes shared sets. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() DatabaseError () [DateError]() DistinctError ()
// [FieldError]() FieldMaskError () [HeaderError]() IdError ()
// [InternalError]() MutateError () [NewResourceCreationError]() NotEmptyError
// () [NullError]() OperatorError () [QuotaError]() RangeError ()
// [RequestError]() ResourceCountLimitExceededError () [SharedSetError]()
// SizeLimitError () [StringFormatError]() StringLengthError ()
//
// - customerId: The ID of the customer whose shared sets are being modified.
func (r *CustomersSharedSetsService) Mutate(customerId string, googleadssearchads360v23services__mutatesharedsetsrequest *GoogleAdsSearchads360V23Services__MutateSharedSetsRequest) *CustomersSharedSetsMutateCall {
	c := &CustomersSharedSetsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatesharedsetsrequest = googleadssearchads360v23services__mutatesharedsetsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSharedSetsMutateCall) Fields(s ...googleapi.Field) *CustomersSharedSetsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSharedSetsMutateCall) Context(ctx context.Context) *CustomersSharedSetsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSharedSetsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSharedSetsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatesharedsetsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/sharedSets:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.sharedSets.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.sharedSets.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateSharedSetsResponse.ServerResponse.He
// ader 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 *CustomersSharedSetsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateSharedSetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateSharedSetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.sharedSets.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSmartCampaignSettingsGetSmartCampaignStatusCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetSmartCampaignStatus: Returns the status of the requested Smart campaign.
//
//   - resourceName: The resource name of the Smart campaign setting belonging to
//     the Smart campaign to fetch the status of.
func (r *CustomersSmartCampaignSettingsService) GetSmartCampaignStatus(resourceName string) *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall {
	c := &CustomersSmartCampaignSettingsGetSmartCampaignStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) Fields(s ...googleapi.Field) *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) IfNoneMatch(entityTag string) *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) Context(ctx context.Context) *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:getSmartCampaignStatus")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.smartCampaignSettings.getSmartCampaignStatus", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.smartCampaignSettings.getSmartCampaignStatus" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse.ServerRespo
// nse.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 *CustomersSmartCampaignSettingsGetSmartCampaignStatusCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GetSmartCampaignStatusResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.smartCampaignSettings.getSmartCampaignStatus", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersSmartCampaignSettingsMutateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__mutatesmartcampaignsettingsrequest *GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Mutate: Updates Smart campaign settings for campaigns.
//
//   - customerId: The ID of the customer whose Smart campaign settings are being
//     modified.
func (r *CustomersSmartCampaignSettingsService) Mutate(customerId string, googleadssearchads360v23services__mutatesmartcampaignsettingsrequest *GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsRequest) *CustomersSmartCampaignSettingsMutateCall {
	c := &CustomersSmartCampaignSettingsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutatesmartcampaignsettingsrequest = googleadssearchads360v23services__mutatesmartcampaignsettingsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersSmartCampaignSettingsMutateCall) Fields(s ...googleapi.Field) *CustomersSmartCampaignSettingsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersSmartCampaignSettingsMutateCall) Context(ctx context.Context) *CustomersSmartCampaignSettingsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersSmartCampaignSettingsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersSmartCampaignSettingsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutatesmartcampaignsettingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/smartCampaignSettings:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.smartCampaignSettings.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.smartCampaignSettings.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse.Server
// Response.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 *CustomersSmartCampaignSettingsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateSmartCampaignSettingsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.smartCampaignSettings.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall struct {
	s                                                                  *Service
	resourceName                                                       string
	googleadssearchads360v23services__regenerateshareablelinkidrequest *GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// RegenerateShareableLinkId: Regenerate
// ThirdPartyAppAnalyticsLink.shareable_link_id that should be provided to the
// third party when setting up app analytics. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
// - resourceName: Resource name of the third party app analytics link.
func (r *CustomersThirdPartyAppAnalyticsLinksService) RegenerateShareableLinkId(resourceName string, googleadssearchads360v23services__regenerateshareablelinkidrequest *GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdRequest) *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall {
	c := &CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	c.googleadssearchads360v23services__regenerateshareablelinkidrequest = googleadssearchads360v23services__regenerateshareablelinkidrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall) Fields(s ...googleapi.Field) *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall) Context(ctx context.Context) *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__regenerateshareablelinkidrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}:regenerateShareableLinkId")
	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{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse.ServerRe
// sponse.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 *CustomersThirdPartyAppAnalyticsLinksRegenerateShareableLinkIdCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__RegenerateShareableLinkIdResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.thirdPartyAppAnalyticsLinks.regenerateShareableLinkId", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersUserListCustomerTypesMutateCall struct {
	s                                                                    *Service
	customerId                                                           string
	googleadssearchads360v23services__mutateuserlistcustomertypesrequest *GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest
	urlParams_                                                           gensupport.URLParams
	ctx_                                                                 context.Context
	header_                                                              http.Header
}

// Mutate: Attach or remove user list customer types. Operation statuses are
// returned. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() UserListCustomerTypeError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
//
//   - customerId: The ID of the customer whose user list customer types are
//     being modified.
func (r *CustomersUserListCustomerTypesService) Mutate(customerId string, googleadssearchads360v23services__mutateuserlistcustomertypesrequest *GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesRequest) *CustomersUserListCustomerTypesMutateCall {
	c := &CustomersUserListCustomerTypesMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateuserlistcustomertypesrequest = googleadssearchads360v23services__mutateuserlistcustomertypesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersUserListCustomerTypesMutateCall) Fields(s ...googleapi.Field) *CustomersUserListCustomerTypesMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersUserListCustomerTypesMutateCall) Context(ctx context.Context) *CustomersUserListCustomerTypesMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersUserListCustomerTypesMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersUserListCustomerTypesMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateuserlistcustomertypesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/userListCustomerTypes:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.userListCustomerTypes.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.userListCustomerTypes.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse.Server
// Response.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 *CustomersUserListCustomerTypesMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateUserListCustomerTypesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.userListCustomerTypes.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type CustomersUserListsMutateCall struct {
	s                                                        *Service
	customerId                                               string
	googleadssearchads360v23services__mutateuserlistsrequest *GoogleAdsSearchads360V23Services__MutateUserListsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Mutate: Creates or updates user lists. Operation statuses are returned. List
// of thrown errors: AuthenticationError () [AuthorizationError]()
// CollectionSizeError () [DatabaseError]() DistinctError () [FieldError]()
// FieldMaskError () [HeaderError]() InternalError () [MutateError]()
// NewResourceCreationError () [NotAllowlistedError]() NotEmptyError ()
// [OperationAccessDeniedError]() QuotaError () [RangeError]() RequestError ()
// [StringFormatError]() StringLengthError () [UserListError]()
//
// - customerId: The ID of the customer whose user lists are being modified.
func (r *CustomersUserListsService) Mutate(customerId string, googleadssearchads360v23services__mutateuserlistsrequest *GoogleAdsSearchads360V23Services__MutateUserListsRequest) *CustomersUserListsMutateCall {
	c := &CustomersUserListsMutateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.customerId = customerId
	c.googleadssearchads360v23services__mutateuserlistsrequest = googleadssearchads360v23services__mutateuserlistsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *CustomersUserListsMutateCall) Fields(s ...googleapi.Field) *CustomersUserListsMutateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *CustomersUserListsMutateCall) Context(ctx context.Context) *CustomersUserListsMutateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *CustomersUserListsMutateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *CustomersUserListsMutateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__mutateuserlistsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/customers/{+customerId}/userLists:mutate")
	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{
		"customerId": c.customerId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.customers.userLists.mutate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.customers.userLists.mutate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__MutateUserListsResponse.ServerResponse.Hea
// der 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 *CustomersUserListsMutateCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__MutateUserListsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__MutateUserListsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.customers.userLists.mutate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type GeoTargetConstantsSuggestCall struct {
	s                                                                  *Service
	googleadssearchads360v23services__suggestgeotargetconstantsrequest *GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Suggest: Returns GeoTargetConstant suggestions by location name or by
// resource name. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() GeoTargetConstantSuggestionError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
func (r *GeoTargetConstantsService) Suggest(googleadssearchads360v23services__suggestgeotargetconstantsrequest *GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsRequest) *GeoTargetConstantsSuggestCall {
	c := &GeoTargetConstantsSuggestCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__suggestgeotargetconstantsrequest = googleadssearchads360v23services__suggestgeotargetconstantsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *GeoTargetConstantsSuggestCall) Fields(s ...googleapi.Field) *GeoTargetConstantsSuggestCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *GeoTargetConstantsSuggestCall) Context(ctx context.Context) *GeoTargetConstantsSuggestCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *GeoTargetConstantsSuggestCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *GeoTargetConstantsSuggestCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggestgeotargetconstantsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/geoTargetConstants:suggest")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.geoTargetConstants.suggest", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.geoTargetConstants.suggest" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse.ServerRe
// sponse.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 *GeoTargetConstantsSuggestCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestGeoTargetConstantsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.geoTargetConstants.suggest", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type IncentivesFetchIncentiveCall struct {
	s            *Service
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// FetchIncentive: Returns incentives for a given user.
func (r *IncentivesService) FetchIncentive() *IncentivesFetchIncentiveCall {
	c := &IncentivesFetchIncentiveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	return c
}

// CountryCode sets the optional parameter "countryCode": User's country code.
// If not provided, the server will default to "US". Possible country codes:
// https://developers.google.com/google-ads/api/data/codes-formats#country_codes
func (c *IncentivesFetchIncentiveCall) CountryCode(countryCode string) *IncentivesFetchIncentiveCall {
	c.urlParams_.Set("countryCode", countryCode)
	return c
}

// Email sets the optional parameter "email": Email of the user that the
// requested incentive is meant for. Will be used for channel partners who do
// NOT use OAuth to authenticate on behalf of user.
func (c *IncentivesFetchIncentiveCall) Email(email string) *IncentivesFetchIncentiveCall {
	c.urlParams_.Set("email", email)
	return c
}

// LanguageCode sets the optional parameter "languageCode": User's language
// code. If not provided, the server will default to "en". Possible language
// codes:
// https://developers.google.com/google-ads/api/data/codes-formats#languages
func (c *IncentivesFetchIncentiveCall) LanguageCode(languageCode string) *IncentivesFetchIncentiveCall {
	c.urlParams_.Set("languageCode", languageCode)
	return c
}

// Type sets the optional parameter "type": The type of incentive to get.
// Defaults to ACQUISITION.
//
// Possible values:
//
//	"UNSPECIFIED" - Not specified.
//	"UNKNOWN" - Unknown incentive type. Should not be used as a value
//
// explicitly.
//
//	"ACQUISITION" - An acquisition incentive.
func (c *IncentivesFetchIncentiveCall) Type(type_ string) *IncentivesFetchIncentiveCall {
	c.urlParams_.Set("type", type_)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *IncentivesFetchIncentiveCall) Fields(s ...googleapi.Field) *IncentivesFetchIncentiveCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *IncentivesFetchIncentiveCall) IfNoneMatch(entityTag string) *IncentivesFetchIncentiveCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *IncentivesFetchIncentiveCall) Context(ctx context.Context) *IncentivesFetchIncentiveCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *IncentivesFetchIncentiveCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *IncentivesFetchIncentiveCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/incentives:fetchIncentive")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.incentives.fetchIncentive", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.incentives.fetchIncentive" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__FetchIncentiveResponse.ServerResponse.Head
// er 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 *IncentivesFetchIncentiveCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__FetchIncentiveResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__FetchIncentiveResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.incentives.fetchIncentive", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type KeywordThemeConstantsSuggestCall struct {
	s                                                                     *Service
	googleadssearchads360v23services__suggestkeywordthemeconstantsrequest *GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest
	urlParams_                                                            gensupport.URLParams
	ctx_                                                                  context.Context
	header_                                                               http.Header
}

// Suggest: Returns KeywordThemeConstant suggestions by keyword themes. List of
// thrown errors: AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
func (r *KeywordThemeConstantsService) Suggest(googleadssearchads360v23services__suggestkeywordthemeconstantsrequest *GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsRequest) *KeywordThemeConstantsSuggestCall {
	c := &KeywordThemeConstantsSuggestCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__suggestkeywordthemeconstantsrequest = googleadssearchads360v23services__suggestkeywordthemeconstantsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *KeywordThemeConstantsSuggestCall) Fields(s ...googleapi.Field) *KeywordThemeConstantsSuggestCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *KeywordThemeConstantsSuggestCall) Context(ctx context.Context) *KeywordThemeConstantsSuggestCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *KeywordThemeConstantsSuggestCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *KeywordThemeConstantsSuggestCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__suggestkeywordthemeconstantsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/keywordThemeConstants:suggest")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.keywordThemeConstants.suggest", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.keywordThemeConstants.suggest" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse.Serve
// rResponse.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 *KeywordThemeConstantsSuggestCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SuggestKeywordThemeConstantsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.keywordThemeConstants.suggest", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type SearchAds360FieldsGetCall struct {
	s            *Service
	resourceName string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Returns just the requested field. List of thrown errors:
// AuthenticationError () [AuthorizationError]() HeaderError ()
// [InternalError]() QuotaError () [RequestError]()
//
// - resourceName: The resource name of the field to get.
func (r *SearchAds360FieldsService) Get(resourceName string) *SearchAds360FieldsGetCall {
	c := &SearchAds360FieldsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.resourceName = resourceName
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *SearchAds360FieldsGetCall) Fields(s ...googleapi.Field) *SearchAds360FieldsGetCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// IfNoneMatch sets an optional parameter which makes the operation fail if the
// object's ETag matches the given value. This is useful for getting updates
// only after the object has changed since the last request.
func (c *SearchAds360FieldsGetCall) IfNoneMatch(entityTag string) *SearchAds360FieldsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *SearchAds360FieldsGetCall) Context(ctx context.Context) *SearchAds360FieldsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *SearchAds360FieldsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *SearchAds360FieldsGetCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	if c.ifNoneMatch_ != "" {
		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/{+resourceName}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("GET", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"resourceName": c.resourceName,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.searchAds360Fields.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Resources__SearchAds360Field.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 *SearchAds360FieldsGetCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Resources__SearchAds360Field, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Resources__SearchAds360Field{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type SearchAds360FieldsSearchCall struct {
	s                                                                 *Service
	googleadssearchads360v23services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// Search: Returns all fields that match the search query
// (/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_detail
// s). List of thrown errors: AuthenticationError () [AuthorizationError]()
// HeaderError () [InternalError]() QueryError () [QuotaError]() RequestError
// ()
func (r *SearchAds360FieldsService) Search(googleadssearchads360v23services__searchsearchads360fieldsrequest *GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsRequest) *SearchAds360FieldsSearchCall {
	c := &SearchAds360FieldsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__searchsearchads360fieldsrequest = googleadssearchads360v23services__searchsearchads360fieldsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *SearchAds360FieldsSearchCall) Fields(s ...googleapi.Field) *SearchAds360FieldsSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *SearchAds360FieldsSearchCall) Context(ctx context.Context) *SearchAds360FieldsSearchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *SearchAds360FieldsSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *SearchAds360FieldsSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__searchsearchads360fieldsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23/searchAds360Fields:search")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.searchAds360Fields.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse.ServerRes
// ponse.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 *SearchAds360FieldsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.searchAds360Fields.search", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *SearchAds360FieldsSearchCall) Pages(ctx context.Context, f func(*GoogleAdsSearchads360V23Services__SearchSearchAds360FieldsResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleadssearchads360v23services__searchsearchads360fieldsrequest.PageToken = pt }(c.googleadssearchads360v23services__searchsearchads360fieldsrequest.PageToken)
	for {
		x, err := c.Do()
		if err != nil {
			return err
		}
		if err := f(x); err != nil {
			return err
		}
		if x.NextPageToken == "" {
			return nil
		}
		c.googleadssearchads360v23services__searchsearchads360fieldsrequest.PageToken = x.NextPageToken
	}
}

type V23GenerateConversionRatesCall struct {
	s                                                                *Service
	googleadssearchads360v23services__generateconversionratesrequest *GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// GenerateConversionRates: Returns a collection of conversion rate suggestions
// for supported plannable products. List of thrown errors: AuthenticationError
// () [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]()
func (r *V23Service) GenerateConversionRates(googleadssearchads360v23services__generateconversionratesrequest *GoogleAdsSearchads360V23Services__GenerateConversionRatesRequest) *V23GenerateConversionRatesCall {
	c := &V23GenerateConversionRatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__generateconversionratesrequest = googleadssearchads360v23services__generateconversionratesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23GenerateConversionRatesCall) Fields(s ...googleapi.Field) *V23GenerateConversionRatesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23GenerateConversionRatesCall) Context(ctx context.Context) *V23GenerateConversionRatesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23GenerateConversionRatesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23GenerateConversionRatesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__generateconversionratesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:generateConversionRates")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.generateConversionRates", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.generateConversionRates" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse.ServerResp
// onse.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 *V23GenerateConversionRatesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__GenerateConversionRatesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.generateConversionRates", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListBenchmarksAvailableDatesCall struct {
	s                                                                     *Service
	googleadssearchads360v23services__listbenchmarksavailabledatesrequest *GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest
	urlParams_                                                            gensupport.URLParams
	ctx_                                                                  context.Context
	header_                                                               http.Header
}

// ListBenchmarksAvailableDates: Returns a date range that supports benchmarks.
// List of thrown errors: AuthenticationError () [AuthorizationError]()
// FieldError () [HeaderError]() InternalError () [QuotaError]() RequestError
// ()
func (r *V23Service) ListBenchmarksAvailableDates(googleadssearchads360v23services__listbenchmarksavailabledatesrequest *GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesRequest) *V23ListBenchmarksAvailableDatesCall {
	c := &V23ListBenchmarksAvailableDatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listbenchmarksavailabledatesrequest = googleadssearchads360v23services__listbenchmarksavailabledatesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListBenchmarksAvailableDatesCall) Fields(s ...googleapi.Field) *V23ListBenchmarksAvailableDatesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListBenchmarksAvailableDatesCall) Context(ctx context.Context) *V23ListBenchmarksAvailableDatesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListBenchmarksAvailableDatesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListBenchmarksAvailableDatesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listbenchmarksavailabledatesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listBenchmarksAvailableDates")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksAvailableDates", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listBenchmarksAvailableDates" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse.Serve
// rResponse.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 *V23ListBenchmarksAvailableDatesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListBenchmarksAvailableDatesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksAvailableDates", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListBenchmarksLocationsCall struct {
	s                                                                *Service
	googleadssearchads360v23services__listbenchmarkslocationsrequest *GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// ListBenchmarksLocations: Returns the list of locations that support
// benchmarks (for example, countries). List of thrown errors:
// AuthenticationError () [AuthorizationError]() FieldError () [HeaderError]()
// InternalError () [QuotaError]() RequestError ()
func (r *V23Service) ListBenchmarksLocations(googleadssearchads360v23services__listbenchmarkslocationsrequest *GoogleAdsSearchads360V23Services__ListBenchmarksLocationsRequest) *V23ListBenchmarksLocationsCall {
	c := &V23ListBenchmarksLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listbenchmarkslocationsrequest = googleadssearchads360v23services__listbenchmarkslocationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListBenchmarksLocationsCall) Fields(s ...googleapi.Field) *V23ListBenchmarksLocationsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListBenchmarksLocationsCall) Context(ctx context.Context) *V23ListBenchmarksLocationsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListBenchmarksLocationsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListBenchmarksLocationsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listbenchmarkslocationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listBenchmarksLocations")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksLocations", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listBenchmarksLocations" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse.ServerResp
// onse.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 *V23ListBenchmarksLocationsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListBenchmarksLocationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksLocations", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListBenchmarksProductsCall struct {
	s                                                               *Service
	googleadssearchads360v23services__listbenchmarksproductsrequest *GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// ListBenchmarksProducts: Returns the list of products that supports
// benchmarks. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
func (r *V23Service) ListBenchmarksProducts(googleadssearchads360v23services__listbenchmarksproductsrequest *GoogleAdsSearchads360V23Services__ListBenchmarksProductsRequest) *V23ListBenchmarksProductsCall {
	c := &V23ListBenchmarksProductsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listbenchmarksproductsrequest = googleadssearchads360v23services__listbenchmarksproductsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListBenchmarksProductsCall) Fields(s ...googleapi.Field) *V23ListBenchmarksProductsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListBenchmarksProductsCall) Context(ctx context.Context) *V23ListBenchmarksProductsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListBenchmarksProductsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListBenchmarksProductsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listbenchmarksproductsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listBenchmarksProducts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksProducts", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listBenchmarksProducts" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse.ServerRespo
// nse.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 *V23ListBenchmarksProductsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListBenchmarksProductsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksProducts", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListBenchmarksSourcesCall struct {
	s                                                              *Service
	googleadssearchads360v23services__listbenchmarkssourcesrequest *GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// ListBenchmarksSources: Returns the list of benchmarks sources (for example,
// Industry Verticals). List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RequestError ()
func (r *V23Service) ListBenchmarksSources(googleadssearchads360v23services__listbenchmarkssourcesrequest *GoogleAdsSearchads360V23Services__ListBenchmarksSourcesRequest) *V23ListBenchmarksSourcesCall {
	c := &V23ListBenchmarksSourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listbenchmarkssourcesrequest = googleadssearchads360v23services__listbenchmarkssourcesrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListBenchmarksSourcesCall) Fields(s ...googleapi.Field) *V23ListBenchmarksSourcesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListBenchmarksSourcesCall) Context(ctx context.Context) *V23ListBenchmarksSourcesCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListBenchmarksSourcesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListBenchmarksSourcesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listbenchmarkssourcesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listBenchmarksSources")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksSources", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listBenchmarksSources" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse.ServerRespon
// se.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 *V23ListBenchmarksSourcesCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListBenchmarksSourcesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listBenchmarksSources", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListPlannableLocationsCall struct {
	s                                                               *Service
	googleadssearchads360v23services__listplannablelocationsrequest *GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// ListPlannableLocations: Returns the list of plannable locations (for
// example, countries). List of thrown errors: AuthenticationError ()
// [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]()
func (r *V23Service) ListPlannableLocations(googleadssearchads360v23services__listplannablelocationsrequest *GoogleAdsSearchads360V23Services__ListPlannableLocationsRequest) *V23ListPlannableLocationsCall {
	c := &V23ListPlannableLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listplannablelocationsrequest = googleadssearchads360v23services__listplannablelocationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListPlannableLocationsCall) Fields(s ...googleapi.Field) *V23ListPlannableLocationsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListPlannableLocationsCall) Context(ctx context.Context) *V23ListPlannableLocationsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListPlannableLocationsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListPlannableLocationsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listplannablelocationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listPlannableLocations")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listPlannableLocations", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listPlannableLocations" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse.ServerRespo
// nse.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 *V23ListPlannableLocationsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListPlannableLocationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listPlannableLocations", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListPlannableProductsCall struct {
	s                                                              *Service
	googleadssearchads360v23services__listplannableproductsrequest *GoogleAdsSearchads360V23Services__ListPlannableProductsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// ListPlannableProducts: Returns the list of per-location plannable YouTube ad
// formats with allowed targeting. List of thrown errors: AuthenticationError
// () [AuthorizationError]() HeaderError () [InternalError]() QuotaError ()
// [RequestError]()
func (r *V23Service) ListPlannableProducts(googleadssearchads360v23services__listplannableproductsrequest *GoogleAdsSearchads360V23Services__ListPlannableProductsRequest) *V23ListPlannableProductsCall {
	c := &V23ListPlannableProductsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listplannableproductsrequest = googleadssearchads360v23services__listplannableproductsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListPlannableProductsCall) Fields(s ...googleapi.Field) *V23ListPlannableProductsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListPlannableProductsCall) Context(ctx context.Context) *V23ListPlannableProductsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListPlannableProductsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListPlannableProductsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listplannableproductsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listPlannableProducts")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listPlannableProducts", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listPlannableProducts" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListPlannableProductsResponse.ServerRespon
// se.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 *V23ListPlannableProductsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListPlannableProductsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListPlannableProductsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listPlannableProducts", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListPlannableUserInterestsCall struct {
	s                                                                   *Service
	googleadssearchads360v23services__listplannableuserinterestsrequest *GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// ListPlannableUserInterests: Returns the list of plannable user interests. A
// plannable user interest is one that can be targeted in a reach forecast
// using ReachPlanService.GenerateReachForecast. List of thrown errors:
// AuthenticationError () [AuthorizationError]() FieldError () [HeaderError]()
// InternalError () [ListOperationError]() QuotaError () [RequestError]()
// StringLengthError ()
func (r *V23Service) ListPlannableUserInterests(googleadssearchads360v23services__listplannableuserinterestsrequest *GoogleAdsSearchads360V23Services__ListPlannableUserInterestsRequest) *V23ListPlannableUserInterestsCall {
	c := &V23ListPlannableUserInterestsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listplannableuserinterestsrequest = googleadssearchads360v23services__listplannableuserinterestsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListPlannableUserInterestsCall) Fields(s ...googleapi.Field) *V23ListPlannableUserInterestsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListPlannableUserInterestsCall) Context(ctx context.Context) *V23ListPlannableUserInterestsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListPlannableUserInterestsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListPlannableUserInterestsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listplannableuserinterestsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listPlannableUserInterests")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listPlannableUserInterests", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listPlannableUserInterests" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse.ServerR
// esponse.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 *V23ListPlannableUserInterestsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListPlannableUserInterestsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listPlannableUserInterests", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type V23ListPlannableUserListsCall struct {
	s                                                               *Service
	googleadssearchads360v23services__listplannableuserlistsrequest *GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// ListPlannableUserLists: Returns the list of plannable user lists with their
// plannable status. User lists may not be plannable for a number of reasons,
// including: - They are less than 10 days old. - They have a membership
// lifespan that is less than 30 days - They have less than 10,000 or more than
// 700,000 users. List of thrown errors: AuthenticationError ()
// [AuthorizationError]() FieldError () [HeaderError]() InternalError ()
// [QuotaError]() RangeError () [ReachPlanError]() RequestError ()
func (r *V23Service) ListPlannableUserLists(googleadssearchads360v23services__listplannableuserlistsrequest *GoogleAdsSearchads360V23Services__ListPlannableUserListsRequest) *V23ListPlannableUserListsCall {
	c := &V23ListPlannableUserListsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.googleadssearchads360v23services__listplannableuserlistsrequest = googleadssearchads360v23services__listplannableuserlistsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *V23ListPlannableUserListsCall) Fields(s ...googleapi.Field) *V23ListPlannableUserListsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *V23ListPlannableUserListsCall) Context(ctx context.Context) *V23ListPlannableUserListsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *V23ListPlannableUserListsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *V23ListPlannableUserListsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleadssearchads360v23services__listplannableuserlistsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v23:listPlannableUserLists")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("POST", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "searchads360.listPlannableUserLists", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "searchads360.listPlannableUserLists" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse.ServerRespo
// nse.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 *V23ListPlannableUserListsCall) Do(opts ...googleapi.CallOption) (*GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GoogleAdsSearchads360V23Services__ListPlannableUserListsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "searchads360.listPlannableUserLists", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}
