// Copyright 2025 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 discoveryengine provides access to the Discovery Engine API.
//
// For product documentation, see: https://cloud.google.com/generative-ai-app-builder/docs/
//
// # 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/discoveryengine/v1alpha"
//	...
//	ctx := context.Background()
//	discoveryengineService, err := discoveryengine.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for
// authentication. For information on how to create and obtain Application
// Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// # Other authentication options
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
//	discoveryengineService, err := discoveryengine.NewService(ctx, option.WithScopes(discoveryengine.DiscoveryengineReadwriteScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	discoveryengineService, err := discoveryengine.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, ...)
//	discoveryengineService, err := discoveryengine.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package discoveryengine // import "google.golang.org/api/discoveryengine/v1alpha"

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 = "discoveryengine:v1alpha"
const apiName = "discoveryengine"
const apiVersion = "v1alpha"
const basePath = "https://discoveryengine.googleapis.com/"
const basePathTemplate = "https://discoveryengine.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://discoveryengine.mtls.googleapis.com/"

// OAuth2 scopes used by this API.
const (
	// See, edit, configure, and delete your Google Cloud data and see the email
	// address for your Google Account.
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"

	// Search your organization's data in the Cloud Search index
	CloudSearchQueryScope = "https://www.googleapis.com/auth/cloud_search.query"

	// View your Agentspace chat history, including uploaded files and generated
	// reports and visualizations, and interact with the Agentspace assistant on
	// your behalf.
	DiscoveryengineAssistReadwriteScope = "https://www.googleapis.com/auth/discoveryengine.assist.readwrite"

	// View, edit, create, and delete all your data associated with any Discovery
	// Engine API product, such as Agentspace, Vertex AI Search, or NotebookLM
	// Enterprise, including both end user data and administration or configuration
	// data.
	DiscoveryengineReadwriteScope = "https://www.googleapis.com/auth/discoveryengine.readwrite"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/cloud-platform",
		"https://www.googleapis.com/auth/cloud_search.query",
		"https://www.googleapis.com/auth/discoveryengine.assist.readwrite",
		"https://www.googleapis.com/auth/discoveryengine.readwrite",
	)
	// 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.Media = NewMediaService(s)
	s.Projects = NewProjectsService(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

	Media *MediaService

	Projects *ProjectsService
}

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

func NewMediaService(s *Service) *MediaService {
	rs := &MediaService{s: s}
	return rs
}

type MediaService struct {
	s *Service
}

func NewProjectsService(s *Service) *ProjectsService {
	rs := &ProjectsService{s: s}
	rs.Locations = NewProjectsLocationsService(s)
	rs.Operations = NewProjectsOperationsService(s)
	return rs
}

type ProjectsService struct {
	s *Service

	Locations *ProjectsLocationsService

	Operations *ProjectsOperationsService
}

func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
	rs := &ProjectsLocationsService{s: s}
	rs.CmekConfigs = NewProjectsLocationsCmekConfigsService(s)
	rs.Collections = NewProjectsLocationsCollectionsService(s)
	rs.DataStores = NewProjectsLocationsDataStoresService(s)
	rs.Evaluations = NewProjectsLocationsEvaluationsService(s)
	rs.GroundingConfigs = NewProjectsLocationsGroundingConfigsService(s)
	rs.IdentityMappingStores = NewProjectsLocationsIdentityMappingStoresService(s)
	rs.LicenseConfigs = NewProjectsLocationsLicenseConfigsService(s)
	rs.Notebooks = NewProjectsLocationsNotebooksService(s)
	rs.Operations = NewProjectsLocationsOperationsService(s)
	rs.Podcasts = NewProjectsLocationsPodcastsService(s)
	rs.RankingConfigs = NewProjectsLocationsRankingConfigsService(s)
	rs.Requirements = NewProjectsLocationsRequirementsService(s)
	rs.SampleQuerySets = NewProjectsLocationsSampleQuerySetsService(s)
	rs.UserEvents = NewProjectsLocationsUserEventsService(s)
	rs.UserStores = NewProjectsLocationsUserStoresService(s)
	return rs
}

type ProjectsLocationsService struct {
	s *Service

	CmekConfigs *ProjectsLocationsCmekConfigsService

	Collections *ProjectsLocationsCollectionsService

	DataStores *ProjectsLocationsDataStoresService

	Evaluations *ProjectsLocationsEvaluationsService

	GroundingConfigs *ProjectsLocationsGroundingConfigsService

	IdentityMappingStores *ProjectsLocationsIdentityMappingStoresService

	LicenseConfigs *ProjectsLocationsLicenseConfigsService

	Notebooks *ProjectsLocationsNotebooksService

	Operations *ProjectsLocationsOperationsService

	Podcasts *ProjectsLocationsPodcastsService

	RankingConfigs *ProjectsLocationsRankingConfigsService

	Requirements *ProjectsLocationsRequirementsService

	SampleQuerySets *ProjectsLocationsSampleQuerySetsService

	UserEvents *ProjectsLocationsUserEventsService

	UserStores *ProjectsLocationsUserStoresService
}

func NewProjectsLocationsCmekConfigsService(s *Service) *ProjectsLocationsCmekConfigsService {
	rs := &ProjectsLocationsCmekConfigsService{s: s}
	return rs
}

type ProjectsLocationsCmekConfigsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsService(s *Service) *ProjectsLocationsCollectionsService {
	rs := &ProjectsLocationsCollectionsService{s: s}
	rs.DataConnector = NewProjectsLocationsCollectionsDataConnectorService(s)
	rs.DataStores = NewProjectsLocationsCollectionsDataStoresService(s)
	rs.Engines = NewProjectsLocationsCollectionsEnginesService(s)
	rs.Operations = NewProjectsLocationsCollectionsOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsService struct {
	s *Service

	DataConnector *ProjectsLocationsCollectionsDataConnectorService

	DataStores *ProjectsLocationsCollectionsDataStoresService

	Engines *ProjectsLocationsCollectionsEnginesService

	Operations *ProjectsLocationsCollectionsOperationsService
}

func NewProjectsLocationsCollectionsDataConnectorService(s *Service) *ProjectsLocationsCollectionsDataConnectorService {
	rs := &ProjectsLocationsCollectionsDataConnectorService{s: s}
	rs.ConnectorRuns = NewProjectsLocationsCollectionsDataConnectorConnectorRunsService(s)
	rs.Operations = NewProjectsLocationsCollectionsDataConnectorOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataConnectorService struct {
	s *Service

	ConnectorRuns *ProjectsLocationsCollectionsDataConnectorConnectorRunsService

	Operations *ProjectsLocationsCollectionsDataConnectorOperationsService
}

func NewProjectsLocationsCollectionsDataConnectorConnectorRunsService(s *Service) *ProjectsLocationsCollectionsDataConnectorConnectorRunsService {
	rs := &ProjectsLocationsCollectionsDataConnectorConnectorRunsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataConnectorConnectorRunsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataConnectorOperationsService(s *Service) *ProjectsLocationsCollectionsDataConnectorOperationsService {
	rs := &ProjectsLocationsCollectionsDataConnectorOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataConnectorOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresService(s *Service) *ProjectsLocationsCollectionsDataStoresService {
	rs := &ProjectsLocationsCollectionsDataStoresService{s: s}
	rs.Branches = NewProjectsLocationsCollectionsDataStoresBranchesService(s)
	rs.CompletionConfig = NewProjectsLocationsCollectionsDataStoresCompletionConfigService(s)
	rs.CompletionSuggestions = NewProjectsLocationsCollectionsDataStoresCompletionSuggestionsService(s)
	rs.Controls = NewProjectsLocationsCollectionsDataStoresControlsService(s)
	rs.Conversations = NewProjectsLocationsCollectionsDataStoresConversationsService(s)
	rs.CustomModels = NewProjectsLocationsCollectionsDataStoresCustomModelsService(s)
	rs.Models = NewProjectsLocationsCollectionsDataStoresModelsService(s)
	rs.Operations = NewProjectsLocationsCollectionsDataStoresOperationsService(s)
	rs.Schemas = NewProjectsLocationsCollectionsDataStoresSchemasService(s)
	rs.ServingConfigs = NewProjectsLocationsCollectionsDataStoresServingConfigsService(s)
	rs.Sessions = NewProjectsLocationsCollectionsDataStoresSessionsService(s)
	rs.SiteSearchEngine = NewProjectsLocationsCollectionsDataStoresSiteSearchEngineService(s)
	rs.SuggestionDenyListEntries = NewProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService(s)
	rs.UserEvents = NewProjectsLocationsCollectionsDataStoresUserEventsService(s)
	rs.WidgetConfigs = NewProjectsLocationsCollectionsDataStoresWidgetConfigsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresService struct {
	s *Service

	Branches *ProjectsLocationsCollectionsDataStoresBranchesService

	CompletionConfig *ProjectsLocationsCollectionsDataStoresCompletionConfigService

	CompletionSuggestions *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService

	Controls *ProjectsLocationsCollectionsDataStoresControlsService

	Conversations *ProjectsLocationsCollectionsDataStoresConversationsService

	CustomModels *ProjectsLocationsCollectionsDataStoresCustomModelsService

	Models *ProjectsLocationsCollectionsDataStoresModelsService

	Operations *ProjectsLocationsCollectionsDataStoresOperationsService

	Schemas *ProjectsLocationsCollectionsDataStoresSchemasService

	ServingConfigs *ProjectsLocationsCollectionsDataStoresServingConfigsService

	Sessions *ProjectsLocationsCollectionsDataStoresSessionsService

	SiteSearchEngine *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService

	SuggestionDenyListEntries *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService

	UserEvents *ProjectsLocationsCollectionsDataStoresUserEventsService

	WidgetConfigs *ProjectsLocationsCollectionsDataStoresWidgetConfigsService
}

func NewProjectsLocationsCollectionsDataStoresBranchesService(s *Service) *ProjectsLocationsCollectionsDataStoresBranchesService {
	rs := &ProjectsLocationsCollectionsDataStoresBranchesService{s: s}
	rs.Documents = NewProjectsLocationsCollectionsDataStoresBranchesDocumentsService(s)
	rs.Operations = NewProjectsLocationsCollectionsDataStoresBranchesOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresBranchesService struct {
	s *Service

	Documents *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService

	Operations *ProjectsLocationsCollectionsDataStoresBranchesOperationsService
}

func NewProjectsLocationsCollectionsDataStoresBranchesDocumentsService(s *Service) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService {
	rs := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsService{s: s}
	rs.Chunks = NewProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsService struct {
	s *Service

	Chunks *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService
}

func NewProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService(s *Service) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService {
	rs := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresBranchesOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresBranchesOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresBranchesOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresBranchesOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresCompletionConfigService(s *Service) *ProjectsLocationsCollectionsDataStoresCompletionConfigService {
	rs := &ProjectsLocationsCollectionsDataStoresCompletionConfigService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresCompletionConfigService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresCompletionSuggestionsService(s *Service) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService {
	rs := &ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresControlsService(s *Service) *ProjectsLocationsCollectionsDataStoresControlsService {
	rs := &ProjectsLocationsCollectionsDataStoresControlsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresControlsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresConversationsService(s *Service) *ProjectsLocationsCollectionsDataStoresConversationsService {
	rs := &ProjectsLocationsCollectionsDataStoresConversationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresConversationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresCustomModelsService(s *Service) *ProjectsLocationsCollectionsDataStoresCustomModelsService {
	rs := &ProjectsLocationsCollectionsDataStoresCustomModelsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresCustomModelsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresModelsService(s *Service) *ProjectsLocationsCollectionsDataStoresModelsService {
	rs := &ProjectsLocationsCollectionsDataStoresModelsService{s: s}
	rs.Operations = NewProjectsLocationsCollectionsDataStoresModelsOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresModelsService struct {
	s *Service

	Operations *ProjectsLocationsCollectionsDataStoresModelsOperationsService
}

func NewProjectsLocationsCollectionsDataStoresModelsOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresModelsOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresModelsOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresModelsOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSchemasService(s *Service) *ProjectsLocationsCollectionsDataStoresSchemasService {
	rs := &ProjectsLocationsCollectionsDataStoresSchemasService{s: s}
	rs.Operations = NewProjectsLocationsCollectionsDataStoresSchemasOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresSchemasService struct {
	s *Service

	Operations *ProjectsLocationsCollectionsDataStoresSchemasOperationsService
}

func NewProjectsLocationsCollectionsDataStoresSchemasOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresSchemasOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresSchemasOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSchemasOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresServingConfigsService(s *Service) *ProjectsLocationsCollectionsDataStoresServingConfigsService {
	rs := &ProjectsLocationsCollectionsDataStoresServingConfigsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresServingConfigsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSessionsService(s *Service) *ProjectsLocationsCollectionsDataStoresSessionsService {
	rs := &ProjectsLocationsCollectionsDataStoresSessionsService{s: s}
	rs.Answers = NewProjectsLocationsCollectionsDataStoresSessionsAnswersService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresSessionsService struct {
	s *Service

	Answers *ProjectsLocationsCollectionsDataStoresSessionsAnswersService
}

func NewProjectsLocationsCollectionsDataStoresSessionsAnswersService(s *Service) *ProjectsLocationsCollectionsDataStoresSessionsAnswersService {
	rs := &ProjectsLocationsCollectionsDataStoresSessionsAnswersService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSessionsAnswersService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSiteSearchEngineService(s *Service) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService {
	rs := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineService{s: s}
	rs.Operations = NewProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService(s)
	rs.Sitemaps = NewProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService(s)
	rs.TargetSites = NewProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineService struct {
	s *Service

	Operations *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService

	Sitemaps *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService

	TargetSites *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService
}

func NewProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService(s *Service) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService {
	rs := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService(s *Service) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService {
	rs := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService{s: s}
	rs.Operations = NewProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService(s)
	return rs
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService struct {
	s *Service

	Operations *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService
}

func NewProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService(s *Service) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService {
	rs := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService(s *Service) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService {
	rs := &ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresUserEventsService(s *Service) *ProjectsLocationsCollectionsDataStoresUserEventsService {
	rs := &ProjectsLocationsCollectionsDataStoresUserEventsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresUserEventsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsDataStoresWidgetConfigsService(s *Service) *ProjectsLocationsCollectionsDataStoresWidgetConfigsService {
	rs := &ProjectsLocationsCollectionsDataStoresWidgetConfigsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsDataStoresWidgetConfigsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesService(s *Service) *ProjectsLocationsCollectionsEnginesService {
	rs := &ProjectsLocationsCollectionsEnginesService{s: s}
	rs.Analytics = NewProjectsLocationsCollectionsEnginesAnalyticsService(s)
	rs.Assistants = NewProjectsLocationsCollectionsEnginesAssistantsService(s)
	rs.CompletionConfig = NewProjectsLocationsCollectionsEnginesCompletionConfigService(s)
	rs.Controls = NewProjectsLocationsCollectionsEnginesControlsService(s)
	rs.Conversations = NewProjectsLocationsCollectionsEnginesConversationsService(s)
	rs.Operations = NewProjectsLocationsCollectionsEnginesOperationsService(s)
	rs.ServingConfigs = NewProjectsLocationsCollectionsEnginesServingConfigsService(s)
	rs.Sessions = NewProjectsLocationsCollectionsEnginesSessionsService(s)
	rs.WidgetConfigs = NewProjectsLocationsCollectionsEnginesWidgetConfigsService(s)
	return rs
}

type ProjectsLocationsCollectionsEnginesService struct {
	s *Service

	Analytics *ProjectsLocationsCollectionsEnginesAnalyticsService

	Assistants *ProjectsLocationsCollectionsEnginesAssistantsService

	CompletionConfig *ProjectsLocationsCollectionsEnginesCompletionConfigService

	Controls *ProjectsLocationsCollectionsEnginesControlsService

	Conversations *ProjectsLocationsCollectionsEnginesConversationsService

	Operations *ProjectsLocationsCollectionsEnginesOperationsService

	ServingConfigs *ProjectsLocationsCollectionsEnginesServingConfigsService

	Sessions *ProjectsLocationsCollectionsEnginesSessionsService

	WidgetConfigs *ProjectsLocationsCollectionsEnginesWidgetConfigsService
}

func NewProjectsLocationsCollectionsEnginesAnalyticsService(s *Service) *ProjectsLocationsCollectionsEnginesAnalyticsService {
	rs := &ProjectsLocationsCollectionsEnginesAnalyticsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesAnalyticsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesAssistantsService(s *Service) *ProjectsLocationsCollectionsEnginesAssistantsService {
	rs := &ProjectsLocationsCollectionsEnginesAssistantsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesAssistantsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesCompletionConfigService(s *Service) *ProjectsLocationsCollectionsEnginesCompletionConfigService {
	rs := &ProjectsLocationsCollectionsEnginesCompletionConfigService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesCompletionConfigService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesControlsService(s *Service) *ProjectsLocationsCollectionsEnginesControlsService {
	rs := &ProjectsLocationsCollectionsEnginesControlsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesControlsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesConversationsService(s *Service) *ProjectsLocationsCollectionsEnginesConversationsService {
	rs := &ProjectsLocationsCollectionsEnginesConversationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesConversationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesOperationsService(s *Service) *ProjectsLocationsCollectionsEnginesOperationsService {
	rs := &ProjectsLocationsCollectionsEnginesOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesOperationsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesServingConfigsService(s *Service) *ProjectsLocationsCollectionsEnginesServingConfigsService {
	rs := &ProjectsLocationsCollectionsEnginesServingConfigsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesServingConfigsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesSessionsService(s *Service) *ProjectsLocationsCollectionsEnginesSessionsService {
	rs := &ProjectsLocationsCollectionsEnginesSessionsService{s: s}
	rs.Answers = NewProjectsLocationsCollectionsEnginesSessionsAnswersService(s)
	rs.Files = NewProjectsLocationsCollectionsEnginesSessionsFilesService(s)
	return rs
}

type ProjectsLocationsCollectionsEnginesSessionsService struct {
	s *Service

	Answers *ProjectsLocationsCollectionsEnginesSessionsAnswersService

	Files *ProjectsLocationsCollectionsEnginesSessionsFilesService
}

func NewProjectsLocationsCollectionsEnginesSessionsAnswersService(s *Service) *ProjectsLocationsCollectionsEnginesSessionsAnswersService {
	rs := &ProjectsLocationsCollectionsEnginesSessionsAnswersService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesSessionsAnswersService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesSessionsFilesService(s *Service) *ProjectsLocationsCollectionsEnginesSessionsFilesService {
	rs := &ProjectsLocationsCollectionsEnginesSessionsFilesService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesSessionsFilesService struct {
	s *Service
}

func NewProjectsLocationsCollectionsEnginesWidgetConfigsService(s *Service) *ProjectsLocationsCollectionsEnginesWidgetConfigsService {
	rs := &ProjectsLocationsCollectionsEnginesWidgetConfigsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsEnginesWidgetConfigsService struct {
	s *Service
}

func NewProjectsLocationsCollectionsOperationsService(s *Service) *ProjectsLocationsCollectionsOperationsService {
	rs := &ProjectsLocationsCollectionsOperationsService{s: s}
	return rs
}

type ProjectsLocationsCollectionsOperationsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresService(s *Service) *ProjectsLocationsDataStoresService {
	rs := &ProjectsLocationsDataStoresService{s: s}
	rs.Branches = NewProjectsLocationsDataStoresBranchesService(s)
	rs.CompletionConfig = NewProjectsLocationsDataStoresCompletionConfigService(s)
	rs.CompletionSuggestions = NewProjectsLocationsDataStoresCompletionSuggestionsService(s)
	rs.Controls = NewProjectsLocationsDataStoresControlsService(s)
	rs.Conversations = NewProjectsLocationsDataStoresConversationsService(s)
	rs.Models = NewProjectsLocationsDataStoresModelsService(s)
	rs.Operations = NewProjectsLocationsDataStoresOperationsService(s)
	rs.Schemas = NewProjectsLocationsDataStoresSchemasService(s)
	rs.ServingConfigs = NewProjectsLocationsDataStoresServingConfigsService(s)
	rs.Sessions = NewProjectsLocationsDataStoresSessionsService(s)
	rs.SiteSearchEngine = NewProjectsLocationsDataStoresSiteSearchEngineService(s)
	rs.SuggestionDenyListEntries = NewProjectsLocationsDataStoresSuggestionDenyListEntriesService(s)
	rs.UserEvents = NewProjectsLocationsDataStoresUserEventsService(s)
	rs.WidgetConfigs = NewProjectsLocationsDataStoresWidgetConfigsService(s)
	return rs
}

type ProjectsLocationsDataStoresService struct {
	s *Service

	Branches *ProjectsLocationsDataStoresBranchesService

	CompletionConfig *ProjectsLocationsDataStoresCompletionConfigService

	CompletionSuggestions *ProjectsLocationsDataStoresCompletionSuggestionsService

	Controls *ProjectsLocationsDataStoresControlsService

	Conversations *ProjectsLocationsDataStoresConversationsService

	Models *ProjectsLocationsDataStoresModelsService

	Operations *ProjectsLocationsDataStoresOperationsService

	Schemas *ProjectsLocationsDataStoresSchemasService

	ServingConfigs *ProjectsLocationsDataStoresServingConfigsService

	Sessions *ProjectsLocationsDataStoresSessionsService

	SiteSearchEngine *ProjectsLocationsDataStoresSiteSearchEngineService

	SuggestionDenyListEntries *ProjectsLocationsDataStoresSuggestionDenyListEntriesService

	UserEvents *ProjectsLocationsDataStoresUserEventsService

	WidgetConfigs *ProjectsLocationsDataStoresWidgetConfigsService
}

func NewProjectsLocationsDataStoresBranchesService(s *Service) *ProjectsLocationsDataStoresBranchesService {
	rs := &ProjectsLocationsDataStoresBranchesService{s: s}
	rs.Documents = NewProjectsLocationsDataStoresBranchesDocumentsService(s)
	rs.Operations = NewProjectsLocationsDataStoresBranchesOperationsService(s)
	return rs
}

type ProjectsLocationsDataStoresBranchesService struct {
	s *Service

	Documents *ProjectsLocationsDataStoresBranchesDocumentsService

	Operations *ProjectsLocationsDataStoresBranchesOperationsService
}

func NewProjectsLocationsDataStoresBranchesDocumentsService(s *Service) *ProjectsLocationsDataStoresBranchesDocumentsService {
	rs := &ProjectsLocationsDataStoresBranchesDocumentsService{s: s}
	rs.Chunks = NewProjectsLocationsDataStoresBranchesDocumentsChunksService(s)
	return rs
}

type ProjectsLocationsDataStoresBranchesDocumentsService struct {
	s *Service

	Chunks *ProjectsLocationsDataStoresBranchesDocumentsChunksService
}

func NewProjectsLocationsDataStoresBranchesDocumentsChunksService(s *Service) *ProjectsLocationsDataStoresBranchesDocumentsChunksService {
	rs := &ProjectsLocationsDataStoresBranchesDocumentsChunksService{s: s}
	return rs
}

type ProjectsLocationsDataStoresBranchesDocumentsChunksService struct {
	s *Service
}

func NewProjectsLocationsDataStoresBranchesOperationsService(s *Service) *ProjectsLocationsDataStoresBranchesOperationsService {
	rs := &ProjectsLocationsDataStoresBranchesOperationsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresBranchesOperationsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresCompletionConfigService(s *Service) *ProjectsLocationsDataStoresCompletionConfigService {
	rs := &ProjectsLocationsDataStoresCompletionConfigService{s: s}
	return rs
}

type ProjectsLocationsDataStoresCompletionConfigService struct {
	s *Service
}

func NewProjectsLocationsDataStoresCompletionSuggestionsService(s *Service) *ProjectsLocationsDataStoresCompletionSuggestionsService {
	rs := &ProjectsLocationsDataStoresCompletionSuggestionsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresCompletionSuggestionsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresControlsService(s *Service) *ProjectsLocationsDataStoresControlsService {
	rs := &ProjectsLocationsDataStoresControlsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresControlsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresConversationsService(s *Service) *ProjectsLocationsDataStoresConversationsService {
	rs := &ProjectsLocationsDataStoresConversationsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresConversationsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresModelsService(s *Service) *ProjectsLocationsDataStoresModelsService {
	rs := &ProjectsLocationsDataStoresModelsService{s: s}
	rs.Operations = NewProjectsLocationsDataStoresModelsOperationsService(s)
	return rs
}

type ProjectsLocationsDataStoresModelsService struct {
	s *Service

	Operations *ProjectsLocationsDataStoresModelsOperationsService
}

func NewProjectsLocationsDataStoresModelsOperationsService(s *Service) *ProjectsLocationsDataStoresModelsOperationsService {
	rs := &ProjectsLocationsDataStoresModelsOperationsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresModelsOperationsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresOperationsService(s *Service) *ProjectsLocationsDataStoresOperationsService {
	rs := &ProjectsLocationsDataStoresOperationsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresOperationsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresSchemasService(s *Service) *ProjectsLocationsDataStoresSchemasService {
	rs := &ProjectsLocationsDataStoresSchemasService{s: s}
	return rs
}

type ProjectsLocationsDataStoresSchemasService struct {
	s *Service
}

func NewProjectsLocationsDataStoresServingConfigsService(s *Service) *ProjectsLocationsDataStoresServingConfigsService {
	rs := &ProjectsLocationsDataStoresServingConfigsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresServingConfigsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresSessionsService(s *Service) *ProjectsLocationsDataStoresSessionsService {
	rs := &ProjectsLocationsDataStoresSessionsService{s: s}
	rs.Answers = NewProjectsLocationsDataStoresSessionsAnswersService(s)
	return rs
}

type ProjectsLocationsDataStoresSessionsService struct {
	s *Service

	Answers *ProjectsLocationsDataStoresSessionsAnswersService
}

func NewProjectsLocationsDataStoresSessionsAnswersService(s *Service) *ProjectsLocationsDataStoresSessionsAnswersService {
	rs := &ProjectsLocationsDataStoresSessionsAnswersService{s: s}
	return rs
}

type ProjectsLocationsDataStoresSessionsAnswersService struct {
	s *Service
}

func NewProjectsLocationsDataStoresSiteSearchEngineService(s *Service) *ProjectsLocationsDataStoresSiteSearchEngineService {
	rs := &ProjectsLocationsDataStoresSiteSearchEngineService{s: s}
	rs.Sitemaps = NewProjectsLocationsDataStoresSiteSearchEngineSitemapsService(s)
	rs.TargetSites = NewProjectsLocationsDataStoresSiteSearchEngineTargetSitesService(s)
	return rs
}

type ProjectsLocationsDataStoresSiteSearchEngineService struct {
	s *Service

	Sitemaps *ProjectsLocationsDataStoresSiteSearchEngineSitemapsService

	TargetSites *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService
}

func NewProjectsLocationsDataStoresSiteSearchEngineSitemapsService(s *Service) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsService {
	rs := &ProjectsLocationsDataStoresSiteSearchEngineSitemapsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresSiteSearchEngineSitemapsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresSiteSearchEngineTargetSitesService(s *Service) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService {
	rs := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService{s: s}
	return rs
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService struct {
	s *Service
}

func NewProjectsLocationsDataStoresSuggestionDenyListEntriesService(s *Service) *ProjectsLocationsDataStoresSuggestionDenyListEntriesService {
	rs := &ProjectsLocationsDataStoresSuggestionDenyListEntriesService{s: s}
	return rs
}

type ProjectsLocationsDataStoresSuggestionDenyListEntriesService struct {
	s *Service
}

func NewProjectsLocationsDataStoresUserEventsService(s *Service) *ProjectsLocationsDataStoresUserEventsService {
	rs := &ProjectsLocationsDataStoresUserEventsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresUserEventsService struct {
	s *Service
}

func NewProjectsLocationsDataStoresWidgetConfigsService(s *Service) *ProjectsLocationsDataStoresWidgetConfigsService {
	rs := &ProjectsLocationsDataStoresWidgetConfigsService{s: s}
	return rs
}

type ProjectsLocationsDataStoresWidgetConfigsService struct {
	s *Service
}

func NewProjectsLocationsEvaluationsService(s *Service) *ProjectsLocationsEvaluationsService {
	rs := &ProjectsLocationsEvaluationsService{s: s}
	rs.Operations = NewProjectsLocationsEvaluationsOperationsService(s)
	return rs
}

type ProjectsLocationsEvaluationsService struct {
	s *Service

	Operations *ProjectsLocationsEvaluationsOperationsService
}

func NewProjectsLocationsEvaluationsOperationsService(s *Service) *ProjectsLocationsEvaluationsOperationsService {
	rs := &ProjectsLocationsEvaluationsOperationsService{s: s}
	return rs
}

type ProjectsLocationsEvaluationsOperationsService struct {
	s *Service
}

func NewProjectsLocationsGroundingConfigsService(s *Service) *ProjectsLocationsGroundingConfigsService {
	rs := &ProjectsLocationsGroundingConfigsService{s: s}
	return rs
}

type ProjectsLocationsGroundingConfigsService struct {
	s *Service
}

func NewProjectsLocationsIdentityMappingStoresService(s *Service) *ProjectsLocationsIdentityMappingStoresService {
	rs := &ProjectsLocationsIdentityMappingStoresService{s: s}
	rs.Operations = NewProjectsLocationsIdentityMappingStoresOperationsService(s)
	return rs
}

type ProjectsLocationsIdentityMappingStoresService struct {
	s *Service

	Operations *ProjectsLocationsIdentityMappingStoresOperationsService
}

func NewProjectsLocationsIdentityMappingStoresOperationsService(s *Service) *ProjectsLocationsIdentityMappingStoresOperationsService {
	rs := &ProjectsLocationsIdentityMappingStoresOperationsService{s: s}
	return rs
}

type ProjectsLocationsIdentityMappingStoresOperationsService struct {
	s *Service
}

func NewProjectsLocationsLicenseConfigsService(s *Service) *ProjectsLocationsLicenseConfigsService {
	rs := &ProjectsLocationsLicenseConfigsService{s: s}
	return rs
}

type ProjectsLocationsLicenseConfigsService struct {
	s *Service
}

func NewProjectsLocationsNotebooksService(s *Service) *ProjectsLocationsNotebooksService {
	rs := &ProjectsLocationsNotebooksService{s: s}
	rs.AudioOverviews = NewProjectsLocationsNotebooksAudioOverviewsService(s)
	rs.Sources = NewProjectsLocationsNotebooksSourcesService(s)
	return rs
}

type ProjectsLocationsNotebooksService struct {
	s *Service

	AudioOverviews *ProjectsLocationsNotebooksAudioOverviewsService

	Sources *ProjectsLocationsNotebooksSourcesService
}

func NewProjectsLocationsNotebooksAudioOverviewsService(s *Service) *ProjectsLocationsNotebooksAudioOverviewsService {
	rs := &ProjectsLocationsNotebooksAudioOverviewsService{s: s}
	return rs
}

type ProjectsLocationsNotebooksAudioOverviewsService struct {
	s *Service
}

func NewProjectsLocationsNotebooksSourcesService(s *Service) *ProjectsLocationsNotebooksSourcesService {
	rs := &ProjectsLocationsNotebooksSourcesService{s: s}
	return rs
}

type ProjectsLocationsNotebooksSourcesService struct {
	s *Service
}

func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
	rs := &ProjectsLocationsOperationsService{s: s}
	return rs
}

type ProjectsLocationsOperationsService struct {
	s *Service
}

func NewProjectsLocationsPodcastsService(s *Service) *ProjectsLocationsPodcastsService {
	rs := &ProjectsLocationsPodcastsService{s: s}
	rs.Operations = NewProjectsLocationsPodcastsOperationsService(s)
	return rs
}

type ProjectsLocationsPodcastsService struct {
	s *Service

	Operations *ProjectsLocationsPodcastsOperationsService
}

func NewProjectsLocationsPodcastsOperationsService(s *Service) *ProjectsLocationsPodcastsOperationsService {
	rs := &ProjectsLocationsPodcastsOperationsService{s: s}
	return rs
}

type ProjectsLocationsPodcastsOperationsService struct {
	s *Service
}

func NewProjectsLocationsRankingConfigsService(s *Service) *ProjectsLocationsRankingConfigsService {
	rs := &ProjectsLocationsRankingConfigsService{s: s}
	return rs
}

type ProjectsLocationsRankingConfigsService struct {
	s *Service
}

func NewProjectsLocationsRequirementsService(s *Service) *ProjectsLocationsRequirementsService {
	rs := &ProjectsLocationsRequirementsService{s: s}
	return rs
}

type ProjectsLocationsRequirementsService struct {
	s *Service
}

func NewProjectsLocationsSampleQuerySetsService(s *Service) *ProjectsLocationsSampleQuerySetsService {
	rs := &ProjectsLocationsSampleQuerySetsService{s: s}
	rs.Operations = NewProjectsLocationsSampleQuerySetsOperationsService(s)
	rs.SampleQueries = NewProjectsLocationsSampleQuerySetsSampleQueriesService(s)
	return rs
}

type ProjectsLocationsSampleQuerySetsService struct {
	s *Service

	Operations *ProjectsLocationsSampleQuerySetsOperationsService

	SampleQueries *ProjectsLocationsSampleQuerySetsSampleQueriesService
}

func NewProjectsLocationsSampleQuerySetsOperationsService(s *Service) *ProjectsLocationsSampleQuerySetsOperationsService {
	rs := &ProjectsLocationsSampleQuerySetsOperationsService{s: s}
	return rs
}

type ProjectsLocationsSampleQuerySetsOperationsService struct {
	s *Service
}

func NewProjectsLocationsSampleQuerySetsSampleQueriesService(s *Service) *ProjectsLocationsSampleQuerySetsSampleQueriesService {
	rs := &ProjectsLocationsSampleQuerySetsSampleQueriesService{s: s}
	return rs
}

type ProjectsLocationsSampleQuerySetsSampleQueriesService struct {
	s *Service
}

func NewProjectsLocationsUserEventsService(s *Service) *ProjectsLocationsUserEventsService {
	rs := &ProjectsLocationsUserEventsService{s: s}
	return rs
}

type ProjectsLocationsUserEventsService struct {
	s *Service
}

func NewProjectsLocationsUserStoresService(s *Service) *ProjectsLocationsUserStoresService {
	rs := &ProjectsLocationsUserStoresService{s: s}
	rs.Operations = NewProjectsLocationsUserStoresOperationsService(s)
	rs.UserLicenses = NewProjectsLocationsUserStoresUserLicensesService(s)
	return rs
}

type ProjectsLocationsUserStoresService struct {
	s *Service

	Operations *ProjectsLocationsUserStoresOperationsService

	UserLicenses *ProjectsLocationsUserStoresUserLicensesService
}

func NewProjectsLocationsUserStoresOperationsService(s *Service) *ProjectsLocationsUserStoresOperationsService {
	rs := &ProjectsLocationsUserStoresOperationsService{s: s}
	return rs
}

type ProjectsLocationsUserStoresOperationsService struct {
	s *Service
}

func NewProjectsLocationsUserStoresUserLicensesService(s *Service) *ProjectsLocationsUserStoresUserLicensesService {
	rs := &ProjectsLocationsUserStoresUserLicensesService{s: s}
	return rs
}

type ProjectsLocationsUserStoresUserLicensesService struct {
	s *Service
}

func NewProjectsOperationsService(s *Service) *ProjectsOperationsService {
	rs := &ProjectsOperationsService{s: s}
	return rs
}

type ProjectsOperationsService struct {
	s *Service
}

// ApiservingMediaRequestInfo: Extra information added to operations that
// support Scotty media requests.
type ApiservingMediaRequestInfo struct {
	// CurrentBytes: The number of current bytes uploaded or downloaded.
	CurrentBytes int64 `json:"currentBytes,omitempty,string"`
	// CustomData: Data to be copied to backend requests. Custom data is returned
	// to Scotty in the agent_state field, which Scotty will then provide in
	// subsequent upload notifications.
	CustomData string `json:"customData,omitempty"`
	// DiffObjectVersion: Set if the http request info is diff encoded. The value
	// of this field is the version number of the base revision. This is
	// corresponding to Apiary's mediaDiffObjectVersion
	// (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionV
	// ariable.java). See go/esf-scotty-diff-upload for more information.
	DiffObjectVersion string `json:"diffObjectVersion,omitempty"`
	// FinalStatus: The existence of the final_status field indicates that this is
	// the last call to the agent for this request_id.
	// http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929
	FinalStatus int64 `json:"finalStatus,omitempty"`
	// NotificationType: The type of notification received from Scotty.
	//
	// Possible values:
	//   "START" - Such requests signals the start of a request containing media
	// upload. Only the media field(s) in the inserted/updated resource are set.
	// The response should either return an error or succeed. On success, responses
	// don't need to contain anything.
	//   "PROGRESS" - Such requests signals that the upload has progressed and that
	// the backend might want to access the media file specified in relevant fields
	// in the resource. Only the media field(s) in the inserted/updated resource
	// are set. The response should either return an error or succeed. On success,
	// responses don't need to contain anything.
	//   "END" - Such requests signals the end of a request containing media
	// upload. END should be handled just like normal Insert/Upload requests, that
	// is, they should process the request and return a complete resource in the
	// response. Pointers to media data (a GFS path usually) appear in the relevant
	// fields in the inserted/updated resource. See gdata.Media in data.proto.
	//   "RESPONSE_SENT" - Such requests occur after an END and signal that the
	// response has been sent back to the client. RESPONSE_SENT is only sent to the
	// backend if it is configured to receive them. The response does not need to
	// contain anything.
	//   "ERROR" - Such requests indicate that an error occurred while processing
	// the request. ERROR is only sent to the backend if it is configured to
	// receive them. It is not guaranteed that all errors will result in this
	// notification to the backend, even if the backend requests them. Since these
	// requests are just for informational purposes, the response does not need to
	// contain anything.
	NotificationType string `json:"notificationType,omitempty"`
	// PhysicalHeaders: The physical headers provided by RequestReceivedParameters
	// in Scotty request. type is uploader_service.KeyValuePairs.
	PhysicalHeaders string `json:"physicalHeaders,omitempty"`
	// RequestId: The Scotty request ID.
	RequestId string `json:"requestId,omitempty"`
	// RequestReceivedParamsServingInfo: The partition of the Scotty server
	// handling this request. type is
	// uploader_service.RequestReceivedParamsServingInfo
	// LINT.IfChange(request_received_params_serving_info_annotations)
	// LINT.ThenChange()
	RequestReceivedParamsServingInfo string `json:"requestReceivedParamsServingInfo,omitempty"`
	// TotalBytes: The total size of the file.
	TotalBytes int64 `json:"totalBytes,omitempty,string"`
	// TotalBytesIsEstimated: Whether the total bytes field contains an estimated
	// data.
	TotalBytesIsEstimated bool `json:"totalBytesIsEstimated,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CurrentBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentBytes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ApiservingMediaResponseInfo: This message is for backends to pass their
// scotty media specific fields to ESF. Backend will include this in their
// response message to ESF. Example: ExportFile is an rpc defined for upload
// using scotty from ESF. rpc ExportFile(ExportFileRequest) returns
// (ExportFileResponse) Message ExportFileResponse will include
// apiserving.MediaResponseInfo to tell ESF about data like dynamic_dropzone it
// needs to pass to Scotty. message ExportFileResponse { optional gdata.Media
// blob = 1; optional apiserving.MediaResponseInfo media_response_info = 2 }
type ApiservingMediaResponseInfo struct {
	// CustomData: Data to copy from backend response to the next backend requests.
	// Custom data is returned to Scotty in the agent_state field, which Scotty
	// will then provide in subsequent upload notifications.
	CustomData string `json:"customData,omitempty"`
	// DataStorageTransform: Specifies any transformation to be applied to data
	// before persisting it or retrieving from storage. E.g., encryption options
	// for blobstore2. This should be of the form
	// uploader_service.DataStorageTransform.
	DataStorageTransform string `json:"dataStorageTransform,omitempty"`
	// DestinationBlobMintIndex: For the first notification of a |diff_encoded|
	// HttpRequestInfo, this is the index of the blob mint that Scotty should use
	// when writing the resulting blob. This field is optional. It's not required
	// ever, even if `original_object_blob_mint_index` is set. In situations like
	// that, we will use the destination blob's mint for the destination blob and
	// regular blob ACL checks for the original object. Note: This field is only
	// for use by Drive API for diff uploads.
	DestinationBlobMintIndex int64 `json:"destinationBlobMintIndex,omitempty"`
	// DynamicDropTarget: Specifies the Scotty Drop Target to use for uploads. If
	// present in a media response, Scotty does not upload to a standard drop zone.
	// Instead, Scotty saves the upload directly to the location specified in this
	// drop target. Unlike drop zones, the drop target is the final storage
	// location for an upload. So, the agent does not need to clone the blob at the
	// end of the upload. The agent is responsible for garbage collecting any
	// orphaned blobs that may occur due to aborted uploads. For more information,
	// see the drop target design doc here: http://goto/ScottyDropTarget This field
	// will be preferred to dynamicDropzone. If provided, the identified field in
	// the response must be of the type uploader.agent.DropTarget.
	DynamicDropTarget string `json:"dynamicDropTarget,omitempty"`
	// DynamicDropzone: Specifies the Scotty dropzone to use for uploads.
	DynamicDropzone string `json:"dynamicDropzone,omitempty"`
	// MediaForDiff: Diff Updates must respond to a START notification with this
	// Media proto to tell Scotty to decode the diff encoded payload and apply the
	// diff against this field. If the request was diff encoded, but this field is
	// not set, Scotty will treat the encoding as identity. This is corresponding
	// to Apiary's DiffUploadResponse.original_object
	// (//depot/google3/gdata/rosy/proto/data.proto?l=413). See
	// go/esf-scotty-diff-upload for more information.
	MediaForDiff *GdataMedia `json:"mediaForDiff,omitempty"`
	// OriginalObjectBlobMintIndex: For the first notification of a |diff_encoded|
	// HttpRequestInfo, this is the index of the blob mint that Scotty should use
	// when reading the original blob. This field is optional. It's not required
	// ever, even if `destination_blob_mint_index` is set. In situations like that,
	// we will use the destination blob's mint for the destination blob and regular
	// blob ACL checks for the original object. Note: This field is only for use by
	// Drive API for diff uploads.
	OriginalObjectBlobMintIndex int64 `json:"originalObjectBlobMintIndex,omitempty"`
	// RequestClass: Request class to use for all Blobstore operations for this
	// request.
	//
	// Possible values:
	//   "UNKNOWN_REQUEST_CLASS" - Unpopulated request_class in log files will be
	// taken as 0 in dremel query. GoogleSQL will try to cast it to enum by
	// default. An unused 0 value is added to avoid GoogleSQL casting error. Please
	// refer to b/69677280.
	//   "LATENCY_SENSITIVE" - A latency-sensitive request.
	//   "PRODUCTION_BATCH" - A request generated by a batch process.
	//   "BEST_EFFORT" - A best-effort request.
	RequestClass string `json:"requestClass,omitempty"`
	// ScottyAgentUserId: Requester ID passed along to be recorded in the Scotty
	// logs
	ScottyAgentUserId int64 `json:"scottyAgentUserId,omitempty,string"`
	// ScottyCustomerLog: Customer-specific data to be recorded in the Scotty logs
	// type is logs_proto_scotty.CustomerLog
	ScottyCustomerLog string `json:"scottyCustomerLog,omitempty"`
	// TrafficClassField: Specifies the TrafficClass that Scotty should use for any
	// RPCs to fetch the response bytes. Will override the traffic class GTOS of
	// the incoming http request. This is a temporary field to facilitate
	// whitelisting and experimentation by the bigstore agent only. For instance,
	// this does not apply to RTMP reads. WARNING: DO NOT USE WITHOUT PERMISSION
	// FROM THE SCOTTY TEAM.
	//
	// Possible values:
	//   "BE1" - Application-selectable traffic classes Best effort
	//   "AF1" - Assured forwarding priority 1
	//   "AF2" - Assured forwarding priority 2
	//   "AF3" - Assured forwarding priority 3
	//   "AF4" - Assured forwarding priority 4
	//   "NC1" - Network control
	//   "NC0" - Network control
	//   "BE0" - Best effort at high packet loss
	//   "LLQ" - Low-latency queue (LLQ) best effort (go/llq)
	//   "LLQ1" - LLQ assured forwarding priority 1 (go/llq2)
	//   "LLQ2" - LLQ assured forwarding priority 2 (go/llq2)
	//   "LLQ3" - LLQ assured forwarding priority 3 (go/llq3)
	TrafficClassField string `json:"trafficClassField,omitempty"`
	// VerifyHashFromHeader: Tells Scotty to verify hashes on the agent's behalf by
	// parsing out the X-Goog-Hash header.
	VerifyHashFromHeader bool `json:"verifyHashFromHeader,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomData") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomData") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataBlobstore2Info: Information to read/write to blobstore2.
type GdataBlobstore2Info struct {
	// BlobGeneration: The blob generation id.
	BlobGeneration int64 `json:"blobGeneration,omitempty,string"`
	// BlobId: The blob id, e.g., /blobstore/prod/playground/scotty
	BlobId string `json:"blobId,omitempty"`
	// DownloadReadHandle: Read handle passed from Bigstore -> Scotty for a GCS
	// download. This is a signed, serialized blobstore2.ReadHandle proto which
	// must never be set outside of Bigstore, and is not applicable to non-GCS
	// media downloads.
	DownloadReadHandle string `json:"downloadReadHandle,omitempty"`
	// ReadToken: The blob read token. Needed to read blobs that have not been
	// replicated. Might not be available until the final call.
	ReadToken string `json:"readToken,omitempty"`
	// UploadMetadataContainer: Metadata passed from Blobstore -> Scotty for a new
	// GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer
	// proto which must never be consumed outside of Bigstore, and is not
	// applicable to non-GCS media uploads.
	UploadMetadataContainer string `json:"uploadMetadataContainer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobGeneration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobGeneration") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataCompositeMedia: A sequence of media data references representing
// composite data. Introduced to support Bigstore composite objects. For
// details, visit http://go/bigstore-composites.
type GdataCompositeMedia struct {
	// BlobRef: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This
	// should be the byte representation of a blobstore.BlobRef. Since Blobstore is
	// deprecating v1, use blobstore2_info instead. For now, any v2 blob will also
	// be represented in this field as v1 BlobRef.
	BlobRef string `json:"blobRef,omitempty"`
	// Blobstore2Info: Blobstore v2 info, set if reference_type is BLOBSTORE_REF
	// and it refers to a v2 blob.
	Blobstore2Info *GdataBlobstore2Info `json:"blobstore2Info,omitempty"`
	// CosmoBinaryReference: A binary data reference for a media download. Serves
	// as a technology-agnostic binary reference in some Google infrastructure.
	// This value is a serialized storage_cosmo.BinaryReference proto. Storing it
	// as bytes is a hack to get around the fact that the cosmo proto (as well as
	// others it includes) doesn't support JavaScript. This prevents us from
	// including the actual type of this field.
	CosmoBinaryReference string `json:"cosmoBinaryReference,omitempty"`
	// Crc32cHash: crc32.c hash for the payload.
	Crc32cHash int64 `json:"crc32cHash,omitempty"`
	// Inline: Media data, set if reference_type is INLINE
	Inline string `json:"inline,omitempty"`
	// Length: Size of the data, in bytes
	Length int64 `json:"length,omitempty,string"`
	// Md5Hash: MD5 hash for the payload.
	Md5Hash string `json:"md5Hash,omitempty"`
	// ObjectId: Reference to a TI Blob, set if reference_type is BIGSTORE_REF.
	ObjectId *GdataObjectId `json:"objectId,omitempty"`
	// Path: Path to the data, set if reference_type is PATH
	Path string `json:"path,omitempty"`
	// ReferenceType: Describes what the field reference contains.
	//
	// Possible values:
	//   "PATH" - Reference contains a GFS path or a local path.
	//   "BLOB_REF" - Reference points to a blobstore object. This could be either
	// a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info
	// first, since v1 is being deprecated.
	//   "INLINE" - Data is included into this proto buffer
	//   "BIGSTORE_REF" - Reference points to a bigstore object
	//   "COSMO_BINARY_REFERENCE" - Indicates the data is stored in
	// cosmo_binary_reference.
	ReferenceType string `json:"referenceType,omitempty"`
	// Sha1Hash: SHA-1 hash for the payload.
	Sha1Hash string `json:"sha1Hash,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobRef") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobRef") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataContentTypeInfo: Detailed Content-Type information from Scotty. The
// Content-Type of the media will typically be filled in by the header or
// Scotty's best_guess, but this extended information provides the backend with
// more information so that it can make a better decision if needed. This is
// only used on media upload requests from Scotty.
type GdataContentTypeInfo struct {
	// BestGuess: Scotty's best guess of what the content type of the file is.
	BestGuess string `json:"bestGuess,omitempty"`
	// FromBytes: The content type of the file derived by looking at specific bytes
	// (i.e. "magic bytes") of the actual file.
	FromBytes string `json:"fromBytes,omitempty"`
	// FromFileName: The content type of the file derived from the file extension
	// of the original file name used by the client.
	FromFileName string `json:"fromFileName,omitempty"`
	// FromHeader: The content type of the file as specified in the request
	// headers, multipart headers, or RUPIO start request.
	FromHeader string `json:"fromHeader,omitempty"`
	// FromUrlPath: The content type of the file derived from the file extension of
	// the URL path. The URL path is assumed to represent a file name (which is
	// typically only true for agents that are providing a REST API).
	FromUrlPath string `json:"fromUrlPath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BestGuess") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BestGuess") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDiffChecksumsResponse: Backend response for a Diff get checksums
// response. For details on the Scotty Diff protocol, visit
// http://go/scotty-diff-protocol.
type GdataDiffChecksumsResponse struct {
	// ChecksumsLocation: Exactly one of these fields must be populated. If
	// checksums_location is filled, the server will return the corresponding
	// contents to the user. If object_location is filled, the server will
	// calculate the checksums based on the content there and return that to the
	// user. For details on the format of the checksums, see
	// http://go/scotty-diff-protocol.
	ChecksumsLocation *GdataCompositeMedia `json:"checksumsLocation,omitempty"`
	// ChunkSizeBytes: The chunk size of checksums. Must be a multiple of 256KB.
	ChunkSizeBytes int64 `json:"chunkSizeBytes,omitempty,string"`
	// ObjectLocation: If set, calculate the checksums based on the contents and
	// return them to the caller.
	ObjectLocation *GdataCompositeMedia `json:"objectLocation,omitempty"`
	// ObjectSizeBytes: The total size of the server object.
	ObjectSizeBytes int64 `json:"objectSizeBytes,omitempty,string"`
	// ObjectVersion: The object version of the object the checksums are being
	// returned for.
	ObjectVersion string `json:"objectVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChecksumsLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChecksumsLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDiffDownloadResponse: Backend response for a Diff download response.
// For details on the Scotty Diff protocol, visit
// http://go/scotty-diff-protocol.
type GdataDiffDownloadResponse struct {
	// ObjectLocation: The original object location.
	ObjectLocation *GdataCompositeMedia `json:"objectLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ObjectLocation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ObjectLocation") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDiffUploadRequest: A Diff upload request. For details on the Scotty
// Diff protocol, visit http://go/scotty-diff-protocol.
type GdataDiffUploadRequest struct {
	// ChecksumsInfo: The location of the checksums for the new object. Agents must
	// clone the object located here, as the upload server will delete the contents
	// once a response is received. For details on the format of the checksums, see
	// http://go/scotty-diff-protocol.
	ChecksumsInfo *GdataCompositeMedia `json:"checksumsInfo,omitempty"`
	// ObjectInfo: The location of the new object. Agents must clone the object
	// located here, as the upload server will delete the contents once a response
	// is received.
	ObjectInfo *GdataCompositeMedia `json:"objectInfo,omitempty"`
	// ObjectVersion: The object version of the object that is the base version the
	// incoming diff script will be applied to. This field will always be filled
	// in.
	ObjectVersion string `json:"objectVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChecksumsInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChecksumsInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDiffUploadResponse: Backend response for a Diff upload request. For
// details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
type GdataDiffUploadResponse struct {
	// ObjectVersion: The object version of the object at the server. Must be
	// included in the end notification response. The version in the end
	// notification response must correspond to the new version of the object that
	// is now stored at the server, after the upload.
	ObjectVersion string `json:"objectVersion,omitempty"`
	// OriginalObject: The location of the original file for a diff upload request.
	// Must be filled in if responding to an upload start notification.
	OriginalObject *GdataCompositeMedia `json:"originalObject,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ObjectVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ObjectVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDiffVersionResponse: Backend response for a Diff get version response.
// For details on the Scotty Diff protocol, visit
// http://go/scotty-diff-protocol.
type GdataDiffVersionResponse struct {
	// ObjectSizeBytes: The total size of the server object.
	ObjectSizeBytes int64 `json:"objectSizeBytes,omitempty,string"`
	// ObjectVersion: The version of the object stored at the server.
	ObjectVersion string `json:"objectVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ObjectSizeBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ObjectSizeBytes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataDownloadParameters: Parameters specific to media downloads.
type GdataDownloadParameters struct {
	// AllowGzipCompression: A boolean to be returned in the response to Scotty.
	// Allows/disallows gzip encoding of the payload content when the server thinks
	// it's advantageous (hence, does not guarantee compression) which allows
	// Scotty to GZip the response to the client.
	AllowGzipCompression bool `json:"allowGzipCompression,omitempty"`
	// IgnoreRange: Determining whether or not Apiary should skip the inclusion of
	// any Content-Range header on its response to Scotty.
	IgnoreRange bool `json:"ignoreRange,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowGzipCompression") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowGzipCompression") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataMedia: A reference to data stored on the filesystem, on GFS or in
// blobstore.
type GdataMedia struct {
	// Algorithm: Deprecated, use one of explicit hash type fields instead.
	// Algorithm used for calculating the hash. As of 2011/01/21, "MD5" is the only
	// possible value for this field. New values may be added at any time.
	Algorithm string `json:"algorithm,omitempty"`
	// BigstoreObjectRef: Use object_id instead.
	BigstoreObjectRef string `json:"bigstoreObjectRef,omitempty"`
	// BlobRef: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This
	// should be the byte representation of a blobstore.BlobRef. Since Blobstore is
	// deprecating v1, use blobstore2_info instead. For now, any v2 blob will also
	// be represented in this field as v1 BlobRef.
	BlobRef string `json:"blobRef,omitempty"`
	// Blobstore2Info: Blobstore v2 info, set if reference_type is BLOBSTORE_REF
	// and it refers to a v2 blob.
	Blobstore2Info *GdataBlobstore2Info `json:"blobstore2Info,omitempty"`
	// CompositeMedia: A composite media composed of one or more media objects, set
	// if reference_type is COMPOSITE_MEDIA. The media length field must be set to
	// the sum of the lengths of all composite media objects. Note: All composite
	// media must have length specified.
	CompositeMedia []*GdataCompositeMedia `json:"compositeMedia,omitempty"`
	// ContentType: MIME type of the data
	ContentType string `json:"contentType,omitempty"`
	// ContentTypeInfo: Extended content type information provided for Scotty
	// uploads.
	ContentTypeInfo *GdataContentTypeInfo `json:"contentTypeInfo,omitempty"`
	// CosmoBinaryReference: A binary data reference for a media download. Serves
	// as a technology-agnostic binary reference in some Google infrastructure.
	// This value is a serialized storage_cosmo.BinaryReference proto. Storing it
	// as bytes is a hack to get around the fact that the cosmo proto (as well as
	// others it includes) doesn't support JavaScript. This prevents us from
	// including the actual type of this field.
	CosmoBinaryReference string `json:"cosmoBinaryReference,omitempty"`
	// Crc32cHash: For Scotty Uploads: Scotty-provided hashes for uploads For
	// Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY
	// TEAM.) A Hash provided by the agent to be used to verify the data being
	// downloaded. Currently only supported for inline payloads. Further, only
	// crc32c_hash is currently supported.
	Crc32cHash int64 `json:"crc32cHash,omitempty"`
	// DiffChecksumsResponse: Set if reference_type is DIFF_CHECKSUMS_RESPONSE.
	DiffChecksumsResponse *GdataDiffChecksumsResponse `json:"diffChecksumsResponse,omitempty"`
	// DiffDownloadResponse: Set if reference_type is DIFF_DOWNLOAD_RESPONSE.
	DiffDownloadResponse *GdataDiffDownloadResponse `json:"diffDownloadResponse,omitempty"`
	// DiffUploadRequest: Set if reference_type is DIFF_UPLOAD_REQUEST.
	DiffUploadRequest *GdataDiffUploadRequest `json:"diffUploadRequest,omitempty"`
	// DiffUploadResponse: Set if reference_type is DIFF_UPLOAD_RESPONSE.
	DiffUploadResponse *GdataDiffUploadResponse `json:"diffUploadResponse,omitempty"`
	// DiffVersionResponse: Set if reference_type is DIFF_VERSION_RESPONSE.
	DiffVersionResponse *GdataDiffVersionResponse `json:"diffVersionResponse,omitempty"`
	// DownloadParameters: Parameters for a media download.
	DownloadParameters *GdataDownloadParameters `json:"downloadParameters,omitempty"`
	// Filename: Original file name
	Filename string `json:"filename,omitempty"`
	// Hash: Deprecated, use one of explicit hash type fields instead. These two
	// hash related fields will only be populated on Scotty based media uploads and
	// will contain the content of the hash group in the NotificationRequest:
	// http://cs/#google3/blobstore2/api/scotty/service/proto/upload_listener.proto&q=class:Hash
	// Hex encoded hash value of the uploaded media.
	Hash string `json:"hash,omitempty"`
	// HashVerified: For Scotty uploads only. If a user sends a hash code and the
	// backend has requested that Scotty verify the upload against the client hash,
	// Scotty will perform the check on behalf of the backend and will reject it if
	// the hashes don't match. This is set to true if Scotty performed this
	// verification.
	HashVerified bool `json:"hashVerified,omitempty"`
	// Inline: Media data, set if reference_type is INLINE
	Inline string `json:"inline,omitempty"`
	// IsPotentialRetry: |is_potential_retry| is set false only when Scotty is
	// certain that it has not sent the request before. When a client resumes an
	// upload, this field must be set true in agent calls, because Scotty cannot be
	// certain that it has never sent the request before due to potential failure
	// in the session state persistence.
	IsPotentialRetry bool `json:"isPotentialRetry,omitempty"`
	// Length: Size of the data, in bytes
	Length int64 `json:"length,omitempty,string"`
	// Md5Hash: Scotty-provided MD5 hash for an upload.
	Md5Hash string `json:"md5Hash,omitempty"`
	// MediaId: Media id to forward to the operation GetMedia. Can be set if
	// reference_type is GET_MEDIA.
	MediaId string `json:"mediaId,omitempty"`
	// ObjectId: Reference to a TI Blob, set if reference_type is BIGSTORE_REF.
	ObjectId *GdataObjectId `json:"objectId,omitempty"`
	// Path: Path to the data, set if reference_type is PATH
	Path string `json:"path,omitempty"`
	// ReferenceType: Describes what the field reference contains.
	//
	// Possible values:
	//   "PATH" - Reference contains a GFS path or a local path.
	//   "BLOB_REF" - Reference points to a blobstore object. This could be either
	// a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info
	// first, since v1 is being deprecated.
	//   "INLINE" - Data is included into this proto buffer
	//   "GET_MEDIA" - Data should be accessed from the current service using the
	// operation GetMedia.
	//   "COMPOSITE_MEDIA" - The content for this media object is stored across
	// multiple partial media objects under the composite_media field.
	//   "BIGSTORE_REF" - Reference points to a bigstore object
	//   "DIFF_VERSION_RESPONSE" - Indicates the data is stored in
	// diff_version_response.
	//   "DIFF_CHECKSUMS_RESPONSE" - Indicates the data is stored in
	// diff_checksums_response.
	//   "DIFF_DOWNLOAD_RESPONSE" - Indicates the data is stored in
	// diff_download_response.
	//   "DIFF_UPLOAD_REQUEST" - Indicates the data is stored in
	// diff_upload_request.
	//   "DIFF_UPLOAD_RESPONSE" - Indicates the data is stored in
	// diff_upload_response.
	//   "COSMO_BINARY_REFERENCE" - Indicates the data is stored in
	// cosmo_binary_reference.
	//   "ARBITRARY_BYTES" - Informs Scotty to generate a response payload with the
	// size specified in the length field. The contents of the payload are
	// generated by Scotty and are undefined. This is useful for testing download
	// speeds between the user and Scotty without involving a real payload source.
	// Note: range is not supported when using arbitrary_bytes.
	ReferenceType string `json:"referenceType,omitempty"`
	// Sha1Hash: Scotty-provided SHA1 hash for an upload.
	Sha1Hash string `json:"sha1Hash,omitempty"`
	// Sha256Hash: Scotty-provided SHA256 hash for an upload.
	Sha256Hash string `json:"sha256Hash,omitempty"`
	// Timestamp: Time at which the media data was last updated, in milliseconds
	// since UNIX epoch
	Timestamp uint64 `json:"timestamp,omitempty,string"`
	// Token: A unique fingerprint/version id for the media data
	Token string `json:"token,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Algorithm") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Algorithm") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GdataObjectId: This is a copy of the tech.blob.ObjectId proto, which could
// not be used directly here due to transitive closure issues with JavaScript
// support; see http://b/8801763.
type GdataObjectId struct {
	// BucketName: The name of the bucket to which this object belongs.
	BucketName string `json:"bucketName,omitempty"`
	// Generation: Generation of the object. Generations are monotonically
	// increasing across writes, allowing them to be be compared to determine which
	// generation is newer. If this is omitted in a request, then you are
	// requesting the live object. See http://go/bigstore-versions
	Generation int64 `json:"generation,omitempty,string"`
	// ObjectName: The name of the object.
	ObjectName string `json:"objectName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BucketName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BucketName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleApiDistribution: `Distribution` contains summary statistics for a
// population of values. It optionally contains a histogram representing the
// distribution of those values across a set of buckets. The summary statistics
// are the count, mean, sum of the squared deviation from the mean, the
// minimum, and the maximum of the set of population of values. The histogram
// is based on a sequence of buckets and gives a count of values that fall into
// each bucket. The boundaries of the buckets are given either explicitly or by
// formulas for buckets of fixed or exponentially increasing widths. Although
// it is not forbidden, it is generally a bad idea to include non-finite values
// (infinities or NaNs) in the population of values, as this will render the
// `mean` and `sum_of_squared_deviation` fields meaningless.
type GoogleApiDistribution struct {
	// BucketCounts: The number of values in each bucket of the histogram, as
	// described in `bucket_options`. If the distribution does not have a
	// histogram, then omit this field. If there is a histogram, then the sum of
	// the values in `bucket_counts` must equal the value in the `count` field of
	// the distribution. If present, `bucket_counts` should contain N values, where
	// N is the number of buckets specified in `bucket_options`. If you supply
	// fewer than N values, the remaining values are assumed to be 0. The order of
	// the values in `bucket_counts` follows the bucket numbering schemes described
	// for the three bucket types. The first value must be the count for the
	// underflow bucket (number 0). The next N-2 values are the counts for the
	// finite buckets (number 1 through N-2). The N'th value in `bucket_counts` is
	// the count for the overflow bucket (number N-1).
	BucketCounts googleapi.Int64s `json:"bucketCounts,omitempty"`
	// BucketOptions: Defines the histogram bucket boundaries. If the distribution
	// does not contain a histogram, then omit this field.
	BucketOptions *GoogleApiDistributionBucketOptions `json:"bucketOptions,omitempty"`
	// Count: The number of values in the population. Must be non-negative. This
	// value must equal the sum of the values in `bucket_counts` if a histogram is
	// provided.
	Count int64 `json:"count,omitempty,string"`
	// Exemplars: Must be in increasing order of `value` field.
	Exemplars []*GoogleApiDistributionExemplar `json:"exemplars,omitempty"`
	// Mean: The arithmetic mean of the values in the population. If `count` is
	// zero then this field must be zero.
	Mean float64 `json:"mean,omitempty"`
	// Range: If specified, contains the range of the population values. The field
	// must not be present if the `count` is zero.
	Range *GoogleApiDistributionRange `json:"range,omitempty"`
	// SumOfSquaredDeviation: The sum of squared deviations from the mean of the
	// values in the population. For values x_i this is: Sumi=1..n ((x_i - mean)^2)
	// Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition
	// describes Welford's method for accumulating this sum in one pass. If `count`
	// is zero then this field must be zero.
	SumOfSquaredDeviation float64 `json:"sumOfSquaredDeviation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BucketCounts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BucketCounts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleApiDistributionBucketOptions: `BucketOptions` describes the bucket
// boundaries used to create a histogram for the distribution. The buckets can
// be in a linear sequence, an exponential sequence, or each bucket can be
// specified explicitly. `BucketOptions` does not include the number of values
// in each bucket. A bucket has an inclusive lower bound and exclusive upper
// bound for the values that are counted for that bucket. The upper bound of a
// bucket must be strictly greater than the lower bound. The sequence of N
// buckets for a distribution consists of an underflow bucket (number 0), zero
// or more finite buckets (number 1 through N - 2) and an overflow bucket
// (number N - 1). The buckets are contiguous: the lower bound of bucket i (i >
// 0) is the same as the upper bound of bucket i - 1. The buckets span the
// whole range of finite values: lower bound of the underflow bucket is
// -infinity and the upper bound of the overflow bucket is +infinity. The
// finite buckets are so-called because both bounds are finite.
type GoogleApiDistributionBucketOptions struct {
	// ExplicitBuckets: The explicit buckets.
	ExplicitBuckets *GoogleApiDistributionBucketOptionsExplicit `json:"explicitBuckets,omitempty"`
	// ExponentialBuckets: The exponential buckets.
	ExponentialBuckets *GoogleApiDistributionBucketOptionsExponential `json:"exponentialBuckets,omitempty"`
	// LinearBuckets: The linear bucket.
	LinearBuckets *GoogleApiDistributionBucketOptionsLinear `json:"linearBuckets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExplicitBuckets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExplicitBuckets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleApiDistributionBucketOptionsExplicit: Specifies a set of buckets with
// arbitrary widths. There are `size(bounds) + 1` (= N) buckets. Bucket `i` has
// the following boundaries: Upper bound (0 <= i < N-1): bounds[i] Lower bound
// (1 <= i < N); bounds[i - 1] The `bounds` field must contain at least one
// element. If `bounds` has only one element, then there are no finite buckets,
// and that single element is the common boundary of the overflow and underflow
// buckets.
type GoogleApiDistributionBucketOptionsExplicit struct {
	// Bounds: The values must be monotonically increasing.
	Bounds []float64 `json:"bounds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Bounds") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Bounds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleApiDistributionBucketOptionsExplicit) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleApiDistributionBucketOptionsExplicit
	var s1 struct {
		Bounds []gensupport.JSONFloat64 `json:"bounds"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Bounds = make([]float64, len(s1.Bounds))
	for i := range s1.Bounds {
		s.Bounds[i] = float64(s1.Bounds[i])
	}
	return nil
}

// GoogleApiDistributionBucketOptionsExponential: Specifies an exponential
// sequence of buckets that have a width that is proportional to the value of
// the lower bound. Each bucket represents a constant relative uncertainty on a
// specific value in the bucket. There are `num_finite_buckets + 2` (= N)
// buckets. Bucket `i` has the following boundaries: Upper bound (0 <= i <
// N-1): scale * (growth_factor ^ i). Lower bound (1 <= i < N): scale *
// (growth_factor ^ (i - 1)).
type GoogleApiDistributionBucketOptionsExponential struct {
	// GrowthFactor: Must be greater than 1.
	GrowthFactor float64 `json:"growthFactor,omitempty"`
	// NumFiniteBuckets: Must be greater than 0.
	NumFiniteBuckets int64 `json:"numFiniteBuckets,omitempty"`
	// Scale: Must be greater than 0.
	Scale float64 `json:"scale,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GrowthFactor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GrowthFactor") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleApiDistributionBucketOptionsLinear: Specifies a linear sequence of
// buckets that all have the same width (except overflow and underflow). Each
// bucket represents a constant absolute uncertainty on the specific value in
// the bucket. There are `num_finite_buckets + 2` (= N) buckets. Bucket `i` has
// the following boundaries: Upper bound (0 <= i < N-1): offset + (width * i).
// Lower bound (1 <= i < N): offset + (width * (i - 1)).
type GoogleApiDistributionBucketOptionsLinear struct {
	// NumFiniteBuckets: Must be greater than 0.
	NumFiniteBuckets int64 `json:"numFiniteBuckets,omitempty"`
	// Offset: Lower bound of the first bucket.
	Offset float64 `json:"offset,omitempty"`
	// Width: Must be greater than 0.
	Width float64 `json:"width,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumFiniteBuckets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumFiniteBuckets") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleApiDistributionExemplar: Exemplars are example points that may be used
// to annotate aggregated distribution values. They are metadata that gives
// information about a particular value added to a Distribution bucket, such as
// a trace ID that was active when a value was added. They may contain further
// information, such as a example values and timestamps, origin, etc.
type GoogleApiDistributionExemplar struct {
	// Attachments: Contextual information about the example value. Examples are:
	// Trace: type.googleapis.com/google.monitoring.v3.SpanContext Literal string:
	// type.googleapis.com/google.protobuf.StringValue Labels dropped during
	// aggregation: type.googleapis.com/google.monitoring.v3.DroppedLabels There
	// may be only a single attachment of any given message type in a single
	// exemplar, and this is enforced by the system.
	Attachments []googleapi.RawMessage `json:"attachments,omitempty"`
	// Timestamp: The observation (sampling) time of the above value.
	Timestamp string `json:"timestamp,omitempty"`
	// Value: Value of the exemplar point. This value determines to which bucket
	// the exemplar belongs.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Attachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Attachments") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleApiDistributionExemplar) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleApiDistributionExemplar
	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
}

// GoogleApiDistributionRange: The range of the population values.
type GoogleApiDistributionRange struct {
	// Max: The maximum of the population values.
	Max float64 `json:"max,omitempty"`
	// Min: The minimum of the population values.
	Min float64 `json:"min,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Max") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Max") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleApiHttpBody: Message that represents an arbitrary HTTP body. It should
// only be used for payload formats that can't be represented as JSON, such as
// raw binary or an HTML page. This message can be used both in streaming and
// non-streaming API methods in the request as well as the response. It can be
// used as a top-level request field, which is convenient if one wants to
// extract parameters from either the URL or HTTP template into the request
// fields and also want access to the raw HTTP body. Example: message
// GetResourceRequest { // A unique request id. string request_id = 1; // The
// raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; }
// service ResourceService { rpc GetResource(GetResourceRequest) returns
// (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns
// (google.protobuf.Empty); } Example with streaming methods: service
// CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream
// google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns
// (stream google.api.HttpBody); } Use of this type only changes how the
// request and response bodies are handled, all other features will continue to
// work unchanged.
type GoogleApiHttpBody struct {
	// ContentType: The HTTP Content-Type header value specifying the content type
	// of the body.
	ContentType string `json:"contentType,omitempty"`
	// Data: The HTTP request/response body as raw binary.
	Data string `json:"data,omitempty"`
	// Extensions: Application specific response metadata. Must be set in the first
	// response for streaming APIs.
	Extensions []googleapi.RawMessage `json:"extensions,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ContentType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleApiMetric: A specific metric, identified by specifying values for all
// of the labels of a `MetricDescriptor`.
type GoogleApiMetric struct {
	// Labels: The set of label values that uniquely identify this metric. All
	// labels listed in the `MetricDescriptor` must be assigned values.
	Labels map[string]string `json:"labels,omitempty"`
	// Type: An existing metric type, see google.api.MetricDescriptor. For example,
	// `custom.googleapis.com/invoice/paid/amount`.
	Type string `json:"type,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 GoogleApiMetric) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleApiMetric
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleApiMonitoredResource: An object representing a resource that can be
// used for monitoring, logging, billing, or other purposes. Examples include
// virtual machine instances, databases, and storage devices such as disks. The
// `type` field identifies a MonitoredResourceDescriptor object that describes
// the resource's schema. Information in the `labels` field identifies the
// actual resource and its attributes according to the schema. For example, a
// particular Compute Engine VM instance could be represented by the following
// object, because the MonitoredResourceDescriptor for "gce_instance" has
// labels "project_id", "instance_id" and "zone": { "type":
// "gce_instance", "labels": { "project_id": "my-project", "instance_id":
// "12345678901234", "zone": "us-central1-a" }}
type GoogleApiMonitoredResource struct {
	// Labels: Required. Values for all of the labels listed in the associated
	// monitored resource descriptor. For example, Compute Engine VM instances use
	// the labels "project_id", "instance_id", and "zone".
	Labels map[string]string `json:"labels,omitempty"`
	// Type: Required. The monitored resource type. This field must match the
	// `type` field of a MonitoredResourceDescriptor object. For example, the type
	// of a Compute Engine VM instance is `gce_instance`. Some descriptors include
	// the service name in the type; for example, the type of a Datastream stream
	// is `datastream.googleapis.com/Stream`.
	Type string `json:"type,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 GoogleApiMonitoredResource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleApiMonitoredResource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleApiMonitoredResourceMetadata: Auxiliary metadata for a
// MonitoredResource object. MonitoredResource objects contain the minimum set
// of information to uniquely identify a monitored resource instance. There is
// some other useful auxiliary metadata. Monitoring and Logging use an
// ingestion pipeline to extract metadata for cloud resources of all types, and
// store the metadata in this message.
type GoogleApiMonitoredResourceMetadata struct {
	// SystemLabels: Output only. Values for predefined system metadata labels.
	// System labels are a kind of metadata extracted by Google, including
	// "machine_image", "vpc", "subnet_id", "security_group", "name", etc. System
	// label values can be only strings, Boolean values, or a list of strings. For
	// example: { "name": "my-test-instance", "security_group": ["a", "b", "c"],
	// "spot_instance": false }
	SystemLabels googleapi.RawMessage `json:"systemLabels,omitempty"`
	// UserLabels: Output only. A map of user-defined metadata labels.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SystemLabels") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SystemLabels") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingConnectorRunErrorContext: The error payload
// that is populated on LRO sync APIs, including the following: *
// `google.cloud.discoveryengine.v1main.DataConnectorService.SetUpDataConnector`
//
//	*
//
// `google.cloud.discoveryengine.v1main.DataConnectorService.StartConnectorRun`
type GoogleCloudDiscoveryengineLoggingConnectorRunErrorContext struct {
	// ConnectorRun: The full resource name of the Connector Run. Format:
	// `projects/*/locations/*/collections/*/dataConnector/connectorRuns/*`. The
	// `connector_run_id` is system-generated.
	ConnectorRun string `json:"connectorRun,omitempty"`
	// DataConnector: The full resource name of the DataConnector. Format:
	// `projects/*/locations/*/collections/*/dataConnector`.
	DataConnector string `json:"dataConnector,omitempty"`
	// EndTime: The time when the connector run ended.
	EndTime string `json:"endTime,omitempty"`
	// Entity: The entity to sync for the connector run.
	Entity string `json:"entity,omitempty"`
	// Operation: The operation resource name of the LRO to sync the connector.
	Operation string `json:"operation,omitempty"`
	// StartTime: The time when the connector run started.
	StartTime string `json:"startTime,omitempty"`
	// SyncType: The type of sync run. Can be one of the following: * `FULL` *
	// `INCREMENTAL`
	SyncType string `json:"syncType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectorRun") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorRun") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingErrorContext: A description of the context
// in which an error occurred.
type GoogleCloudDiscoveryengineLoggingErrorContext struct {
	// HttpRequest: The HTTP request which was processed when the error was
	// triggered.
	HttpRequest *GoogleCloudDiscoveryengineLoggingHttpRequestContext `json:"httpRequest,omitempty"`
	// ReportLocation: The location in the source code where the decision was made
	// to report the error, usually the place where it was logged.
	ReportLocation *GoogleCloudDiscoveryengineLoggingSourceLocation `json:"reportLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HttpRequest") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HttpRequest") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingErrorLog: An error log which is reported to
// the Error Reporting system.
type GoogleCloudDiscoveryengineLoggingErrorLog struct {
	// ConnectorRunPayload: The error payload that is populated on LRO connector
	// sync APIs.
	ConnectorRunPayload *GoogleCloudDiscoveryengineLoggingConnectorRunErrorContext `json:"connectorRunPayload,omitempty"`
	// Context: A description of the context in which the error occurred.
	Context *GoogleCloudDiscoveryengineLoggingErrorContext `json:"context,omitempty"`
	// ImportPayload: The error payload that is populated on LRO import APIs.
	ImportPayload *GoogleCloudDiscoveryengineLoggingImportErrorContext `json:"importPayload,omitempty"`
	// Message: A message describing the error.
	Message string `json:"message,omitempty"`
	// RequestPayload: The API request payload, represented as a protocol buffer.
	// Most API request types are supported—for example: *
	// `type.googleapis.com/google.cloud.discoveryengine.v1alpha.DocumentService.Cre
	// ateDocumentRequest` *
	// `type.googleapis.com/google.cloud.discoveryengine.v1alpha.UserEventService.Wr
	// iteUserEventRequest`
	RequestPayload googleapi.RawMessage `json:"requestPayload,omitempty"`
	// ResponsePayload: The API response payload, represented as a protocol buffer.
	// This is used to log some "soft errors", where the response is valid but we
	// consider there are some quality issues like unjoined events. The following
	// API responses are supported, and no PII is included: *
	// `google.cloud.discoveryengine.v1alpha.RecommendationService.Recommend` *
	// `google.cloud.discoveryengine.v1alpha.UserEventService.WriteUserEvent` *
	// `google.cloud.discoveryengine.v1alpha.UserEventService.CollectUserEvent`
	ResponsePayload googleapi.RawMessage `json:"responsePayload,omitempty"`
	// ServiceContext: The service context in which this error has occurred.
	ServiceContext *GoogleCloudDiscoveryengineLoggingServiceContext `json:"serviceContext,omitempty"`
	// Status: The RPC status associated with the error log.
	Status *GoogleRpcStatus `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectorRunPayload") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorRunPayload") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingHttpRequestContext: HTTP request data that
// is related to a reported error.
type GoogleCloudDiscoveryengineLoggingHttpRequestContext struct {
	// ResponseStatusCode: The HTTP response status code for the request.
	ResponseStatusCode int64 `json:"responseStatusCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResponseStatusCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResponseStatusCode") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingImportErrorContext: The error payload that
// is populated on LRO import APIs, including the following: *
// `google.cloud.discoveryengine.v1alpha.DocumentService.ImportDocuments` *
// `google.cloud.discoveryengine.v1alpha.UserEventService.ImportUserEvents`
type GoogleCloudDiscoveryengineLoggingImportErrorContext struct {
	// Document: The detailed content which caused the error on importing a
	// document.
	Document string `json:"document,omitempty"`
	// GcsPath: Google Cloud Storage file path of the import source. Can be set for
	// batch operation error.
	GcsPath string `json:"gcsPath,omitempty"`
	// LineNumber: Line number of the content in file. Should be empty for
	// permission or batch operation error.
	LineNumber string `json:"lineNumber,omitempty"`
	// Operation: The operation resource name of the LRO.
	Operation string `json:"operation,omitempty"`
	// UserEvent: The detailed content which caused the error on importing a user
	// event.
	UserEvent string `json:"userEvent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingServiceContext: Describes a running service
// that sends errors.
type GoogleCloudDiscoveryengineLoggingServiceContext struct {
	// Service: An identifier of the service—for example,
	// `discoveryengine.googleapis.com`.
	Service string `json:"service,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Service") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Service") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineLoggingSourceLocation: Indicates a location in the
// source code of the service for which errors are reported.
type GoogleCloudDiscoveryengineLoggingSourceLocation struct {
	// FunctionName: Human-readable name of a function or method—for example,
	// `google.cloud.discoveryengine.v1alpha.RecommendationService.Recommend`.
	FunctionName string `json:"functionName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FunctionName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FunctionName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AclConfig: Access Control Configuration.
type GoogleCloudDiscoveryengineV1AclConfig struct {
	// IdpConfig: Identity provider config.
	IdpConfig *GoogleCloudDiscoveryengineV1IdpConfig `json:"idpConfig,omitempty"`
	// Name: Immutable. The full resource name of the acl configuration. Format:
	// `projects/{project}/locations/{location}/aclConfig`. This field must be a
	// UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdpConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ActionConfig: Informations to support actions on
// the connector.
type GoogleCloudDiscoveryengineV1ActionConfig struct {
	// ActionParams: Optional. Action parameters in structured json format.
	ActionParams googleapi.RawMessage `json:"actionParams,omitempty"`
	// IsActionConfigured: Output only. The connector contains the necessary
	// parameters and is configured to support actions.
	IsActionConfigured bool `json:"isActionConfigured,omitempty"`
	// JsonActionParams: Optional. Action parameters in json string format.
	JsonActionParams string `json:"jsonActionParams,omitempty"`
	// ServiceName: Optional. The Service Directory resource name
	// (projects/*/locations/*/namespaces/*/services/*) representing a VPC network
	// endpoint used to connect to the data source's `instance_uri`, defined in
	// DataConnector.params. Required when VPC Service Controls are enabled.
	ServiceName string `json:"serviceName,omitempty"`
	// UseStaticSecrets: Optional. Whether to use static secrets for the connector.
	// If true, the secrets provided in the action_params will be ignored.
	UseStaticSecrets bool `json:"useStaticSecrets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionParams") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AdvancedSiteSearchConfig: Configuration data for
// advance site search.
type GoogleCloudDiscoveryengineV1AdvancedSiteSearchConfig struct {
	// DisableAutomaticRefresh: If set true, automatic refresh is disabled for the
	// DataStore.
	DisableAutomaticRefresh bool `json:"disableAutomaticRefresh,omitempty"`
	// DisableInitialIndex: If set true, initial indexing is disabled for the
	// DataStore.
	DisableInitialIndex bool `json:"disableInitialIndex,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AlertPolicyConfig: The connector level alert
// config.
type GoogleCloudDiscoveryengineV1AlertPolicyConfig struct {
	// AlertEnrollments: Optional. The enrollment states of each alert.
	AlertEnrollments []*GoogleCloudDiscoveryengineV1AlertPolicyConfigAlertEnrollment `json:"alertEnrollments,omitempty"`
	// AlertPolicyName: Immutable. The fully qualified resource name of the
	// AlertPolicy.
	AlertPolicyName string `json:"alertPolicyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertEnrollments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertEnrollments") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AlertPolicyConfigAlertEnrollment: The alert
// enrollment status.
type GoogleCloudDiscoveryengineV1AlertPolicyConfigAlertEnrollment struct {
	// AlertId: Immutable. The id of an alert.
	AlertId string `json:"alertId,omitempty"`
	// EnrollState: Required. The enrollment status of a customer.
	//
	// Possible values:
	//   "ENROLL_STATES_UNSPECIFIED" - Default value. Used for customers who have
	// not responded to the alert policy.
	//   "ENROLLED" - Customer is enrolled in this policy.
	//   "DECLINED" - Customer declined this policy.
	EnrollState string `json:"enrollState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AnswerGenerationSpec: The specification for
// answer generation.
type GoogleCloudDiscoveryengineV1AnswerGenerationSpec struct {
	// UserDefinedClassifierSpec: Optional. The specification for user specified
	// classifier spec.
	UserDefinedClassifierSpec *GoogleCloudDiscoveryengineV1AnswerGenerationSpecUserDefinedClassifierSpec `json:"userDefinedClassifierSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserDefinedClassifierSpec")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserDefinedClassifierSpec") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AnswerGenerationSpecUserDefinedClassifierSpec:
// The specification for user defined classifier.
type GoogleCloudDiscoveryengineV1AnswerGenerationSpecUserDefinedClassifierSpec struct {
	// EnableUserDefinedClassifier: Optional. Whether or not to enable and include
	// user defined classifier.
	EnableUserDefinedClassifier bool `json:"enableUserDefinedClassifier,omitempty"`
	// ModelId: Optional. The model id to be used for the user defined classifier.
	ModelId string `json:"modelId,omitempty"`
	// Preamble: Optional. The preamble to be used for the user defined classifier.
	Preamble string `json:"preamble,omitempty"`
	// Seed: Optional. The seed value to be used for the user defined classifier.
	Seed int64 `json:"seed,omitempty"`
	// TaskMarker: Optional. The task marker to be used for the user defined
	// classifier.
	TaskMarker string `json:"taskMarker,omitempty"`
	// Temperature: Optional. The temperature value to be used for the user defined
	// classifier.
	Temperature float64 `json:"temperature,omitempty"`
	// TopK: Optional. The top-k value to be used for the user defined classifier.
	TopK int64 `json:"topK,omitempty,string"`
	// TopP: Optional. The top-p value to be used for the user defined classifier.
	TopP float64 `json:"topP,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableUserDefinedClassifier") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableUserDefinedClassifier") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1Assistant: Discovery Engine Assistant resource.
type GoogleCloudDiscoveryengineV1Assistant struct {
	// CustomerPolicy: Optional. Customer policy for the assistant.
	CustomerPolicy *GoogleCloudDiscoveryengineV1AssistantCustomerPolicy `json:"customerPolicy,omitempty"`
	// EnabledTools: Optional. Note: not implemented yet. Use enabled_actions
	// instead. The enabled tools on this assistant. The keys are connector name,
	// for example
	// "projects/{projectId}/locations/{locationId}/collections/{collectionId}/datac
	// onnector The values consist of admin enabled tools towards the connector
	// instance. Admin can selectively enable multiple tools on any of the
	// connector instances that they created in the project. For example
	// {"jira1ConnectorName": [(toolId1, "createTicket"), (toolId2,
	// "transferTicket")], "gmail1ConnectorName": [(toolId3, "sendEmail"),..] }
	EnabledTools map[string]GoogleCloudDiscoveryengineV1AssistantToolList `json:"enabledTools,omitempty"`
	// GenerationConfig: Optional. Configuration for the generation of the
	// assistant response.
	GenerationConfig *GoogleCloudDiscoveryengineV1AssistantGenerationConfig `json:"generationConfig,omitempty"`
	// Name: Immutable. Resource name of the assistant. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/assistants/{assistant}` It must be a UTF-8 encoded string with a
	// length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// WebGroundingType: Optional. The type of web grounding to use.
	//
	// Possible values:
	//   "WEB_GROUNDING_TYPE_UNSPECIFIED" - Default, unspecified setting. This is
	// the same as disabled.
	//   "WEB_GROUNDING_TYPE_DISABLED" - Web grounding is disabled.
	//   "WEB_GROUNDING_TYPE_GOOGLE_SEARCH" - Grounding with Google Search is
	// enabled.
	//   "WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH" - Grounding with Enterprise Web
	// Search is enabled.
	WebGroundingType string `json:"webGroundingType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantCustomerPolicy: Customer-defined policy
// for the assistant.
type GoogleCloudDiscoveryengineV1AssistantCustomerPolicy struct {
	// BannedPhrases: Optional. List of banned phrases.
	BannedPhrases []*GoogleCloudDiscoveryengineV1AssistantCustomerPolicyBannedPhrase `json:"bannedPhrases,omitempty"`
	// ModelArmorConfig: Optional. Model Armor configuration to be used for
	// sanitizing user prompts and assistant responses.
	ModelArmorConfig *GoogleCloudDiscoveryengineV1AssistantCustomerPolicyModelArmorConfig `json:"modelArmorConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BannedPhrases") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BannedPhrases") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantCustomerPolicyBannedPhrase: Definition
// of a customer-defined banned phrase. A banned phrase is not allowed to
// appear in the user query or the LLM response, or else the answer will be
// refused.
type GoogleCloudDiscoveryengineV1AssistantCustomerPolicyBannedPhrase struct {
	// IgnoreDiacritics: Optional. If true, diacritical marks (e.g., accents,
	// umlauts) are ignored when matching banned phrases. For example, "cafe" would
	// match "café".
	IgnoreDiacritics bool `json:"ignoreDiacritics,omitempty"`
	// MatchType: Optional. Match type for the banned phrase.
	//
	// Possible values:
	//   "BANNED_PHRASE_MATCH_TYPE_UNSPECIFIED" - Defaults to SIMPLE_STRING_MATCH.
	//   "SIMPLE_STRING_MATCH" - The banned phrase matches if it is found anywhere
	// in the text as an exact substring.
	//   "WORD_BOUNDARY_STRING_MATCH" - Banned phrase only matches if the pattern
	// found in the text is surrounded by word delimiters. The phrase itself may
	// still contain word delimiters.
	MatchType string `json:"matchType,omitempty"`
	// Phrase: Required. The raw string content to be banned.
	Phrase string `json:"phrase,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IgnoreDiacritics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreDiacritics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantCustomerPolicyModelArmorConfig:
// Configuration for customer defined Model Armor templates to be used for
// sanitizing user prompts and assistant responses.
type GoogleCloudDiscoveryengineV1AssistantCustomerPolicyModelArmorConfig struct {
	// FailureMode: Optional. Defines the failure mode for Model Armor
	// sanitization.
	//
	// Possible values:
	//   "FAILURE_MODE_UNSPECIFIED" - Unspecified failure mode, default behavior is
	// `FAIL_CLOSED`.
	//   "FAIL_OPEN" - In case of a Model Armor processing failure, the request is
	// allowed to proceed without any changes.
	//   "FAIL_CLOSED" - In case of a Model Armor processing failure, the request
	// is rejected.
	FailureMode string `json:"failureMode,omitempty"`
	// ResponseTemplate: Optional. The resource name of the Model Armor template
	// for sanitizing assistant responses. Format:
	// `projects/{project}/locations/{location}/templates/{template_id}` If not
	// specified, no sanitization will be applied to the assistant response.
	ResponseTemplate string `json:"responseTemplate,omitempty"`
	// UserPromptTemplate: Optional. The resource name of the Model Armor template
	// for sanitizing user prompts. Format:
	// `projects/{project}/locations/{location}/templates/{template_id}` If not
	// specified, no sanitization will be applied to the user prompt.
	UserPromptTemplate string `json:"userPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailureMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantGenerationConfig: Configuration for the
// generation of the assistant response.
type GoogleCloudDiscoveryengineV1AssistantGenerationConfig struct {
	// DefaultLanguage: The default language to use for the generation of the
	// assistant response. Use an ISO 639-1 language code such as `en`. If not
	// specified, the language will be automatically detected.
	DefaultLanguage string `json:"defaultLanguage,omitempty"`
	// SystemInstruction: System instruction, also known as the prompt preamble for
	// LLM calls. See also
	// https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/system-instructions
	SystemInstruction *GoogleCloudDiscoveryengineV1AssistantGenerationConfigSystemInstruction `json:"systemInstruction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultLanguage") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLanguage") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantGenerationConfigSystemInstruction:
// System instruction, also known as the prompt preamble for LLM calls.
type GoogleCloudDiscoveryengineV1AssistantGenerationConfigSystemInstruction struct {
	// AdditionalSystemInstruction: Optional. Additional system instruction that
	// will be added to the default system instruction.
	AdditionalSystemInstruction string `json:"additionalSystemInstruction,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdditionalSystemInstruction") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalSystemInstruction") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantToolInfo: Information to identify a
// tool.
type GoogleCloudDiscoveryengineV1AssistantToolInfo struct {
	// ToolDisplayName: The display name of the tool.
	ToolDisplayName string `json:"toolDisplayName,omitempty"`
	// ToolName: The name of the tool as defined by
	// DataConnectorService.QueryAvailableActions. Note: it's using `action` in the
	// DataConnectorService apis, but they are the same as the `tool` here.
	ToolName string `json:"toolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolDisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolDisplayName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1AssistantToolList: The enabled tools on a
// connector
type GoogleCloudDiscoveryengineV1AssistantToolList struct {
	// ToolInfo: The list of tools with corresponding tool information.
	ToolInfo []*GoogleCloudDiscoveryengineV1AssistantToolInfo `json:"toolInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1BAPConfig: The configuration for the BAP
// connector.
type GoogleCloudDiscoveryengineV1BAPConfig struct {
	// EnabledActions: Optional. The actions enabled on the associated BAP
	// connection.
	EnabledActions []string `json:"enabledActions,omitempty"`
	// SupportedConnectorModes: Required. The supported connector modes for the
	// associated BAP connection.
	//
	// Possible values:
	//   "CONNECTOR_MODE_UNSPECIFIED" - Connector mode unspecified.
	//   "DATA_INGESTION" - Connector utilized for data ingestion.
	//   "ACTIONS" - Connector utilized for Actions
	//   "END_USER_AUTHENTICATION" - Connector utilized for End User
	// Authentication.
	SupportedConnectorModes []string `json:"supportedConnectorModes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnabledActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnabledActions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1BatchCreateTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.BatchCreateTargetSites
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1BatchCreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1BatchCreateTargetSitesResponse: Response message
// for SiteSearchEngineService.BatchCreateTargetSites method.
type GoogleCloudDiscoveryengineV1BatchCreateTargetSitesResponse struct {
	// TargetSites: TargetSites created.
	TargetSites []*GoogleCloudDiscoveryengineV1TargetSite `json:"targetSites,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetSites") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetSites") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1BatchUpdateUserLicensesMetadata: Metadata
// related to the progress of the UserLicenseService.BatchUpdateUserLicenses
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1BatchUpdateUserLicensesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of user licenses that failed to be updated.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of user licenses successfully updated.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1BatchUpdateUserLicensesResponse: Response
// message for UserLicenseService.BatchUpdateUserLicenses method.
type GoogleCloudDiscoveryengineV1BatchUpdateUserLicensesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// UserLicenses: UserLicenses successfully updated.
	UserLicenses []*GoogleCloudDiscoveryengineV1UserLicense `json:"userLicenses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CmekConfig: Configurations used to enable CMEK
// data encryption with Cloud KMS keys.
type GoogleCloudDiscoveryengineV1CmekConfig struct {
	// IsDefault: Output only. The default CmekConfig for the Customer.
	IsDefault bool `json:"isDefault,omitempty"`
	// KmsKey: Required. KMS key resource name which will be used to encrypt
	// resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// KmsKeyVersion: Output only. KMS key version resource name which will be used
	// to encrypt resources `/cryptoKeyVersions/{keyVersion}`.
	KmsKeyVersion string `json:"kmsKeyVersion,omitempty"`
	// LastRotationTimestampMicros: Output only. The timestamp of the last key
	// rotation.
	LastRotationTimestampMicros int64 `json:"lastRotationTimestampMicros,omitempty,string"`
	// Name: Required. The name of the CmekConfig of the form
	// `projects/{project}/locations/{location}/cmekConfig` or
	// `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
	Name string `json:"name,omitempty"`
	// NotebooklmState: Output only. Whether the NotebookLM Corpus is ready to be
	// used.
	//
	// Possible values:
	//   "NOTEBOOK_LM_STATE_UNSPECIFIED" - The NotebookLM state is unknown.
	//   "NOTEBOOK_LM_NOT_READY" - The NotebookLM is not ready.
	//   "NOTEBOOK_LM_READY" - The NotebookLM is ready to be used.
	//   "NOTEBOOK_LM_NOT_ENABLED" - The NotebookLM is not enabled.
	NotebooklmState string `json:"notebooklmState,omitempty"`
	// SingleRegionKeys: Optional. Single-regional CMEKs that are required for some
	// VAIS features.
	SingleRegionKeys []*GoogleCloudDiscoveryengineV1SingleRegionKey `json:"singleRegionKeys,omitempty"`
	// State: Output only. The states of the CmekConfig.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The CmekConfig state is unknown.
	//   "CREATING" - The CmekConfig is creating.
	//   "ACTIVE" - The CmekConfig can be used with DataStores.
	//   "KEY_ISSUE" - The CmekConfig is unavailable, most likely due to the KMS
	// Key being revoked.
	//   "DELETING" - The CmekConfig is deleting.
	//   "DELETE_FAILED" - The CmekConfig deletion process failed.
	//   "UNUSABLE" - The CmekConfig is not usable, most likely due to some
	// internal issue.
	//   "ACTIVE_ROTATING" - The KMS key version is being rotated.
	//   "DELETED" - The KMS key is soft deleted. Some cleanup policy will
	// eventually be applied.
	//   "EXPIRED" - The KMS key is expired, meaning the key has been disabled for
	// 30+ days. The customer can call DeleteCmekConfig to change the state to
	// DELETED.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IsDefault") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IsDefault") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Collection: Collection is a container for
// configuring resources and access to a set of DataStores.
type GoogleCloudDiscoveryengineV1Collection struct {
	// CreateTime: Output only. Timestamp the Collection was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Required. The Collection display name. This field must be a
	// UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Immutable. The full resource name of the Collection. Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Condition: Defines circumstances to be checked
// before allowing a behavior
type GoogleCloudDiscoveryengineV1Condition struct {
	// ActiveTimeRange: Range of time(s) specifying when condition is active.
	// Maximum of 10 time ranges.
	ActiveTimeRange []*GoogleCloudDiscoveryengineV1ConditionTimeRange `json:"activeTimeRange,omitempty"`
	// QueryRegex: Optional. Query regex to match the whole search query. Cannot be
	// set when Condition.query_terms is set. Only supported for Basic Site Search
	// promotion serving controls.
	QueryRegex string `json:"queryRegex,omitempty"`
	// QueryTerms: Search only A list of terms to match the query on. Cannot be set
	// when Condition.query_regex is set. Maximum of 10 query terms.
	QueryTerms []*GoogleCloudDiscoveryengineV1ConditionQueryTerm `json:"queryTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveTimeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveTimeRange") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ConditionQueryTerm: Matcher for search request
// query
type GoogleCloudDiscoveryengineV1ConditionQueryTerm struct {
	// FullMatch: Whether the search query needs to exactly match the query term.
	FullMatch bool `json:"fullMatch,omitempty"`
	// Value: The specific query value to match against Must be lowercase, must be
	// UTF-8. Can have at most 3 space separated terms if full_match is true.
	// Cannot be an empty string. Maximum length of 5000 characters.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ConditionTimeRange: Used for time-dependent
// conditions.
type GoogleCloudDiscoveryengineV1ConditionTimeRange struct {
	// EndTime: End of time range. Range is inclusive. Must be in the future.
	EndTime string `json:"endTime,omitempty"`
	// StartTime: Start of time range. Range is inclusive.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Control: Defines a conditioned behavior to
// employ during serving. Must be attached to a ServingConfig to be considered
// at serving time. Permitted actions dependent on `SolutionType`.
type GoogleCloudDiscoveryengineV1Control struct {
	// AssociatedServingConfigIds: Output only. List of all ServingConfig IDs this
	// control is attached to. May take up to 10 minutes to update after changes.
	AssociatedServingConfigIds []string `json:"associatedServingConfigIds,omitempty"`
	// BoostAction: Defines a boost-type control
	BoostAction *GoogleCloudDiscoveryengineV1ControlBoostAction `json:"boostAction,omitempty"`
	// Conditions: Determines when the associated action will trigger. Omit to
	// always apply the action. Currently only a single condition may be specified.
	// Otherwise an INVALID ARGUMENT error is thrown.
	Conditions []*GoogleCloudDiscoveryengineV1Condition `json:"conditions,omitempty"`
	// DisplayName: Required. Human readable name. The identifier used in UI views.
	// Must be UTF-8 encoded string. Length limit is 128 characters. Otherwise an
	// INVALID ARGUMENT error is thrown.
	DisplayName string `json:"displayName,omitempty"`
	// FilterAction: Defines a filter-type control Currently not supported by
	// Recommendation
	FilterAction *GoogleCloudDiscoveryengineV1ControlFilterAction `json:"filterAction,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/*/locations/global/dataStore/*/controls/*`
	Name string `json:"name,omitempty"`
	// PromoteAction: Promote certain links based on predefined trigger queries.
	PromoteAction *GoogleCloudDiscoveryengineV1ControlPromoteAction `json:"promoteAction,omitempty"`
	// RedirectAction: Defines a redirect-type control.
	RedirectAction *GoogleCloudDiscoveryengineV1ControlRedirectAction `json:"redirectAction,omitempty"`
	// SolutionType: Required. Immutable. What solution the control belongs to.
	// Must be compatible with vertical of resource. Otherwise an INVALID ARGUMENT
	// error is thrown.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// SynonymsAction: Treats a group of terms as synonyms of one another.
	SynonymsAction *GoogleCloudDiscoveryengineV1ControlSynonymsAction `json:"synonymsAction,omitempty"`
	// UseCases: Specifies the use case for the control. Affects what condition
	// fields can be set. Only applies to SOLUTION_TYPE_SEARCH. Currently only
	// allow one use case per control. Must be set when solution_type is
	// SolutionType.SOLUTION_TYPE_SEARCH.
	//
	// Possible values:
	//   "SEARCH_USE_CASE_UNSPECIFIED" - Value used when unset. Will not occur in
	// CSS.
	//   "SEARCH_USE_CASE_SEARCH" - Search use case. Expects the traffic has a
	// non-empty query.
	//   "SEARCH_USE_CASE_BROWSE" - Browse use case. Expects the traffic has an
	// empty query.
	UseCases []string `json:"useCases,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssociatedServingConfigIds")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssociatedServingConfigIds") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ControlBoostAction: Adjusts order of products in
// returned list.
type GoogleCloudDiscoveryengineV1ControlBoostAction struct {
	// Boost: Strength of the boost, which should be in [-1, 1]. Negative boost
	// means demotion. Default is 0.0 (No-op).
	Boost float64 `json:"boost,omitempty"`
	// DataStore: Required. Specifies which data store's documents can be boosted
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. Specifies which products to apply the boost to. If no
	// filter is provided all products will be boosted (No-op). Syntax
	// documentation: https://cloud.google.com/retail/docs/filter-and-order Maximum
	// length is 5000 characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// FixedBoost: Optional. Strength of the boost, which should be in [-1, 1].
	// Negative boost means demotion. Default is 0.0 (No-op).
	FixedBoost float64 `json:"fixedBoost,omitempty"`
	// InterpolationBoostSpec: Optional. Complex specification for custom ranking
	// based on customer defined attribute value.
	InterpolationBoostSpec *GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpec `json:"interpolationBoostSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpec:
// Specification for custom ranking based on customer specified attribute
// value. It provides more controls for customized ranking than the simple
// (condition, boost) combination above.
type GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpec struct {
	// AttributeType: Optional. The attribute type to be used to determine the
	// boost amount. The attribute value can be derived from the field value of the
	// specified field_name. In the case of numerical it is straightforward i.e.
	// attribute_value = numerical_field_value. In the case of freshness however,
	// attribute_value = (time.now() - datetime_field_value).
	//
	// Possible values:
	//   "ATTRIBUTE_TYPE_UNSPECIFIED" - Unspecified AttributeType.
	//   "NUMERICAL" - The value of the numerical field will be used to dynamically
	// update the boost amount. In this case, the attribute_value (the x value) of
	// the control point will be the actual value of the numerical field for which
	// the boost_amount is specified.
	//   "FRESHNESS" - For the freshness use case the attribute value will be the
	// duration between the current time and the date in the datetime field
	// specified. The value must be formatted as an XSD `dayTimeDuration` value (a
	// restricted subset of an ISO 8601 duration value). The pattern for this is:
	// `nDnM]`. For example, `5D`, `3DT12H30M`, `T24H`.
	AttributeType string `json:"attributeType,omitempty"`
	// ControlPoints: Optional. The control points used to define the curve. The
	// monotonic function (defined through the interpolation_type above) passes
	// through the control points listed here.
	ControlPoints []*GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpecControlPoint `json:"controlPoints,omitempty"`
	// FieldName: Optional. The name of the field whose value will be used to
	// determine the boost amount.
	FieldName string `json:"fieldName,omitempty"`
	// InterpolationType: Optional. The interpolation type to be applied to connect
	// the control points listed below.
	//
	// Possible values:
	//   "INTERPOLATION_TYPE_UNSPECIFIED" - Interpolation type is unspecified. In
	// this case, it defaults to Linear.
	//   "LINEAR" - Piecewise linear interpolation will be applied.
	InterpolationType string `json:"interpolationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpecControlPo
// int: The control points used to define the curve. The curve defined through
// these control points can only be monotonically increasing or
// decreasing(constant values are acceptable).
type GoogleCloudDiscoveryengineV1ControlBoostActionInterpolationBoostSpecControlPoint struct {
	// AttributeValue: Optional. Can be one of: 1. The numerical field value. 2.
	// The duration spec for freshness: The value must be formatted as an XSD
	// `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value).
	// The pattern for this is: `nDnM]`.
	AttributeValue string `json:"attributeValue,omitempty"`
	// BoostAmount: Optional. The value between -1 to 1 by which to boost the score
	// if the attribute_value evaluates to the value specified above.
	BoostAmount float64 `json:"boostAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1ControlFilterAction: Specified which products
// may be included in results. Uses same filter as boost.
type GoogleCloudDiscoveryengineV1ControlFilterAction struct {
	// DataStore: Required. Specifies which data store's documents can be filtered
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. A filter to apply on the matching condition results.
	// Required Syntax documentation:
	// https://cloud.google.com/retail/docs/filter-and-order Maximum length is 5000
	// characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ControlPromoteAction: Promote certain links
// based on some trigger queries. Example: Promote shoe store link when
// searching for `shoe` keyword. The link can be outside of associated data
// store.
type GoogleCloudDiscoveryengineV1ControlPromoteAction struct {
	// DataStore: Required. Data store with which this promotion is attached to.
	DataStore string `json:"dataStore,omitempty"`
	// SearchLinkPromotion: Required. Promotion attached to this action.
	SearchLinkPromotion *GoogleCloudDiscoveryengineV1SearchLinkPromotion `json:"searchLinkPromotion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ControlRedirectAction: Redirects a shopper to
// the provided URI.
type GoogleCloudDiscoveryengineV1ControlRedirectAction struct {
	// RedirectUri: Required. The URI to which the shopper will be redirected.
	// Required. URI must have length equal or less than 2000 characters. Otherwise
	// an INVALID ARGUMENT error is thrown.
	RedirectUri string `json:"redirectUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RedirectUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RedirectUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ControlSynonymsAction: Creates a set of terms
// that will act as synonyms of one another. Example: "happy" will also be
// considered as "glad", "glad" will also be considered as "happy".
type GoogleCloudDiscoveryengineV1ControlSynonymsAction struct {
	// Synonyms: Defines a set of synonyms. Can specify up to 100 synonyms. Must
	// specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is thrown.
	Synonyms []string `json:"synonyms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Synonyms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Synonyms") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CreateDataStoreMetadata: Metadata related to the
// progress of the DataStoreService.CreateDataStore operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1CreateDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CreateEngineMetadata: Metadata related to the
// progress of the EngineService.CreateEngine operation. This will be returned
// by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1CreateEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CreateSchemaMetadata: Metadata for Create Schema
// LRO.
type GoogleCloudDiscoveryengineV1CreateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CreateSitemapMetadata: Metadata related to the
// progress of the SiteSearchEngineService.CreateSitemap operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1CreateSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1CreateTargetSiteMetadata: Metadata related to
// the progress of the SiteSearchEngineService.CreateTargetSite operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1CreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataConnector: Manages the connection to
// external data sources for all data stores grouped under a Collection. It's a
// singleton resource of Collection. The initialization is only supported
// through DataConnectorService.SetUpDataConnector method, which will create a
// new Collection and initialize its DataConnector.
type GoogleCloudDiscoveryengineV1DataConnector struct {
	// AclEnabled: Optional. Whether the connector will be created with an ACL
	// config. Currently this field only affects Cloud Storage and BigQuery
	// connectors.
	AclEnabled bool `json:"aclEnabled,omitempty"`
	// ActionConfig: Optional. Action configurations to make the connector support
	// actions.
	ActionConfig *GoogleCloudDiscoveryengineV1ActionConfig `json:"actionConfig,omitempty"`
	// ActionState: Output only. State of the action connector. This reflects
	// whether the action connector is initializing, active or has encountered
	// errors.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	ActionState string `json:"actionState,omitempty"`
	// AlertPolicyConfigs: Optional. The connector level alert config.
	AlertPolicyConfigs []*GoogleCloudDiscoveryengineV1AlertPolicyConfig `json:"alertPolicyConfigs,omitempty"`
	// AutoRunDisabled: Optional. Indicates whether the connector is disabled for
	// auto run. It can be used to pause periodical and real time sync. Update:
	// with the introduction of incremental_sync_disabled, auto_run_disabled is
	// used to pause/disable only full syncs
	AutoRunDisabled bool `json:"autoRunDisabled,omitempty"`
	// BapConfig: Optional. The configuration for establishing a BAP connection.
	BapConfig *GoogleCloudDiscoveryengineV1BAPConfig `json:"bapConfig,omitempty"`
	// BlockingReasons: Output only. User actions that must be completed before the
	// connector can start syncing data.
	//
	// Possible values:
	//   "BLOCKING_REASON_UNSPECIFIED" - Default value.
	//   "ALLOWLIST_STATIC_IP" - Connector requires customer to allowlist static
	// IPs.
	//   "ALLOWLIST_IN_SERVICE_ATTACHMENT" - Connector requires customer to
	// allowlist our project in their service attachment.
	//   "ALLOWLIST_SERVICE_ACCOUNT" - Connector requires customer to allowlist
	// service account in their project.
	BlockingReasons []string `json:"blockingReasons,omitempty"`
	// ConnectorModes: Optional. The modes enabled for this connector. Default
	// state is CONNECTOR_MODE_UNSPECIFIED.
	//
	// Possible values:
	//   "CONNECTOR_MODE_UNSPECIFIED" - Connector mode unspecified.
	//   "DATA_INGESTION" - Connector utilized for data ingestion.
	//   "ACTIONS" - Connector utilized for actions.
	//   "FEDERATED" - Connector utilized for federated search.
	//   "EUA" - Connector utilized for End User Authentication.
	//   "FEDERATED_AND_EUA" - Hybrid connector utilized for federated search and
	// End User Authentication.
	ConnectorModes []string `json:"connectorModes,omitempty"`
	// ConnectorType: Output only. The type of connector. Each source can only map
	// to one type. For example, salesforce, confluence and jira have THIRD_PARTY
	// connector type. It is not mutable once set by system.
	//
	// Possible values:
	//   "CONNECTOR_TYPE_UNSPECIFIED" - Default value.
	//   "THIRD_PARTY" - Third party connector to connector to third party
	// application.
	//   "GCP_FHIR" - Data connector connects between FHIR store and VAIS
	// datastore.
	//   "BIG_QUERY" - Big query connector.
	//   "GCS" - Google Cloud Storage connector.
	//   "GOOGLE_MAIL" - Gmail connector.
	//   "GOOGLE_CALENDAR" - Google Calendar connector.
	//   "GOOGLE_DRIVE" - Google Drive connector.
	//   "NATIVE_CLOUD_IDENTITY" - Native Cloud Identity connector for people
	// search powered by People API.
	//   "THIRD_PARTY_FEDERATED" - Federated connector, it is a third party
	// connector that doesn't ingestion data, and search is powered by third party
	// application's API.
	//   "THIRD_PARTY_EUA" - Connector utilized for End User Authentication
	// features.
	//   "GCNV" - Google Cloud NetApp Volumes connector.
	ConnectorType string `json:"connectorType,omitempty"`
	// CreateEuaSaas: Optional. Whether the END USER AUTHENTICATION connector is
	// created in SaaS.
	CreateEuaSaas bool `json:"createEuaSaas,omitempty"`
	// CreateTime: Output only. Timestamp the DataConnector was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataSource: Required. The name of the data source. Supported values:
	// `salesforce`, `jira`, `confluence`, `bigquery`.
	DataSource string `json:"dataSource,omitempty"`
	// DestinationConfigs: Optional. Any target destinations used to connect to
	// third-party services.
	DestinationConfigs []*GoogleCloudDiscoveryengineV1DestinationConfig `json:"destinationConfigs,omitempty"`
	// EndUserConfig: Optional. Any params and credentials used specifically for
	// EUA connectors.
	EndUserConfig *GoogleCloudDiscoveryengineV1DataConnectorEndUserConfig `json:"endUserConfig,omitempty"`
	// Entities: List of entities from the connected data source to ingest.
	Entities []*GoogleCloudDiscoveryengineV1DataConnectorSourceEntity `json:"entities,omitempty"`
	// Errors: Output only. The errors from initialization or from the latest
	// connector run.
	Errors []*GoogleRpcStatus `json:"errors,omitempty"`
	// FederatedConfig: Optional. Any params and credentials used specifically for
	// hybrid connectors supporting FEDERATED mode. This field should only be set
	// if the connector is a hybrid connector and we want to enable FEDERATED mode.
	FederatedConfig *GoogleCloudDiscoveryengineV1DataConnectorFederatedConfig `json:"federatedConfig,omitempty"`
	// HybridIngestionDisabled: Optional. If the connector is a hybrid connector,
	// determines whether ingestion is enabled and appropriate resources are
	// provisioned during connector creation. If the connector is not a hybrid
	// connector, this field is ignored.
	HybridIngestionDisabled bool `json:"hybridIngestionDisabled,omitempty"`
	// IdentityRefreshInterval: The refresh interval to sync the Access Control
	// List information for the documents ingested by this connector. If not set,
	// the access control list will be refreshed at the default interval of 30
	// minutes. The identity refresh interval can be at least 30 minutes and at
	// most 7 days.
	IdentityRefreshInterval string `json:"identityRefreshInterval,omitempty"`
	// IdentityScheduleConfig: The configuration for the identity data
	// synchronization runs. This contains the refresh interval to sync the Access
	// Control List information for the documents ingested by this connector.
	IdentityScheduleConfig *GoogleCloudDiscoveryengineV1IdentityScheduleConfig `json:"identityScheduleConfig,omitempty"`
	// IncrementalRefreshInterval: Optional. The refresh interval specifically for
	// incremental data syncs. If unset, incremental syncs will use the default
	// from env, set to 3hrs. The minimum is 30 minutes and maximum is 7 days.
	// Applicable to only 3P connectors. When the refresh interval is set to the
	// same value as the incremental refresh interval, incremental sync will be
	// disabled.
	IncrementalRefreshInterval string `json:"incrementalRefreshInterval,omitempty"`
	// IncrementalSyncDisabled: Optional. Indicates whether incremental syncs are
	// paused for this connector. This is independent of auto_run_disabled.
	// Applicable to only 3P connectors. When the refresh interval is set to the
	// same value as the incremental refresh interval, incremental sync will be
	// disabled, i.e. set to true.
	IncrementalSyncDisabled bool `json:"incrementalSyncDisabled,omitempty"`
	// JsonParams: Required data connector parameters in json string format.
	JsonParams string `json:"jsonParams,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect the DataStores
	// managed by this connector. Must be set for requests that need to comply with
	// CMEK Org Policy protections. If this field is set and processed
	// successfully, the DataStores created by this connector will be protected by
	// the KMS key.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// LastSyncTime: Output only. For periodic connectors only, the last time a
	// data sync was completed.
	LastSyncTime string `json:"lastSyncTime,omitempty"`
	// LatestPauseTime: Output only. The most recent timestamp when this
	// DataConnector was paused, affecting all functionalities such as data
	// synchronization. Pausing a connector has the following effects: - All
	// functionalities, including data synchronization, are halted. - Any ongoing
	// data synchronization job will be canceled. - No future data synchronization
	// runs will be scheduled nor can be triggered.
	LatestPauseTime string `json:"latestPauseTime,omitempty"`
	// Name: Output only. The full resource name of the Data Connector. Format:
	// `projects/*/locations/*/collections/*/dataConnector`.
	Name string `json:"name,omitempty"`
	// NextSyncTime: Defines the scheduled time for the next data synchronization.
	// This field requires hour , minute, and time_zone from the IANA Time Zone
	// Database (https://www.iana.org/time-zones). This is utilized when the data
	// connector has a refresh interval greater than 1 day. When the hours or
	// minutes are not specified, we will assume a sync time of 0:00. The user must
	// provide a time zone to avoid ambiguity.
	NextSyncTime *GoogleTypeDateTime `json:"nextSyncTime,omitempty"`
	// Params: Required data connector parameters in structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// PrivateConnectivityProjectId: Output only. The tenant project ID associated
	// with private connectivity connectors. This project must be allowlisted by in
	// order for the connector to function.
	PrivateConnectivityProjectId string `json:"privateConnectivityProjectId,omitempty"`
	// RealtimeState: Output only. real-time sync state
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	RealtimeState string `json:"realtimeState,omitempty"`
	// RealtimeSyncConfig: Optional. The configuration for realtime sync.
	RealtimeSyncConfig *GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfig `json:"realtimeSyncConfig,omitempty"`
	// RefreshInterval: Required. The refresh interval for data sync. If duration
	// is set to 0, the data will be synced in real time. The streaming feature is
	// not supported yet. The minimum is 30 minutes and maximum is 7 days. When the
	// refresh interval is set to the same value as the incremental refresh
	// interval, incremental sync will be disabled.
	RefreshInterval string `json:"refreshInterval,omitempty"`
	// RemoveParamKeys: Optional. Specifies keys to be removed from the 'params'
	// field. This is only active when 'params' is included in the 'update_mask' in
	// an UpdateDataConnectorRequest. Deletion takes precedence if a key is both in
	// 'remove_param_keys' and present in the 'params' field of the request.
	RemoveParamKeys []string `json:"removeParamKeys,omitempty"`
	// State: Output only. State of the connector.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	State string `json:"state,omitempty"`
	// StaticIpAddresses: Output only. The static IP addresses used by this
	// connector.
	StaticIpAddresses []string `json:"staticIpAddresses,omitempty"`
	// StaticIpEnabled: Optional. Whether customer has enabled static IP addresses
	// for this connector.
	StaticIpEnabled bool `json:"staticIpEnabled,omitempty"`
	// SyncMode: The data synchronization mode supported by the data connector.
	//
	// Possible values:
	//   "PERIODIC" - The connector will sync data periodically based on the
	// refresh_interval. Use it with auto_run_disabled to pause the periodic sync,
	// or indicate a one-time sync.
	//   "STREAMING" - The data will be synced in real time.
	//   "UNSPECIFIED" - Connector that doesn't ingest data will have this value
	SyncMode string `json:"syncMode,omitempty"`
	// UpdateTime: Output only. Timestamp the DataConnector was last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AclEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataConnectorEndUserConfig: Any params and
// credentials used specifically for EUA connectors.
type GoogleCloudDiscoveryengineV1DataConnectorEndUserConfig struct {
	// AdditionalParams: Optional. Any additional parameters needed for EUA.
	AdditionalParams googleapi.RawMessage `json:"additionalParams,omitempty"`
	// AuthParams: Optional. Any authentication parameters specific to EUA
	// connectors.
	AuthParams googleapi.RawMessage `json:"authParams,omitempty"`
	// JsonAuthParams: Optional. Any authentication parameters specific to EUA
	// connectors in json string format.
	JsonAuthParams string `json:"jsonAuthParams,omitempty"`
	// Tenant: Optional. The tenant project the connector is connected to.
	Tenant *GoogleCloudDiscoveryengineV1Tenant `json:"tenant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalParams") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataConnectorFederatedConfig: Any params and
// credentials used specifically for hybrid connectors supporting FEDERATED
// mode.
type GoogleCloudDiscoveryengineV1DataConnectorFederatedConfig struct {
	// AdditionalParams: Optional. Any additional parameters needed for FEDERATED.
	AdditionalParams googleapi.RawMessage `json:"additionalParams,omitempty"`
	// AuthParams: Optional. Any authentication parameters specific to FEDERATED
	// connectors.
	AuthParams googleapi.RawMessage `json:"authParams,omitempty"`
	// JsonAuthParams: Optional. Any authentication parameters specific to
	// FEDERATED connectors in json string format.
	JsonAuthParams string `json:"jsonAuthParams,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalParams") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfig: The
// configuration for realtime sync to store additional params for realtime
// sync.
type GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfig struct {
	// RealtimeSyncSecret: Optional. The ID of the Secret Manager secret used for
	// webhook secret.
	RealtimeSyncSecret string `json:"realtimeSyncSecret,omitempty"`
	// StreamingError: Optional. Streaming error details.
	StreamingError *GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfigStreamingError `json:"streamingError,omitempty"`
	// WebhookUri: Optional. Webhook url for the connector to specify additional
	// params for realtime sync.
	WebhookUri string `json:"webhookUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RealtimeSyncSecret") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RealtimeSyncSecret") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfigStreamingError:
// Streaming error details.
type GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfigStreamingError struct {
	// Error: Optional. Error details.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// StreamingErrorReason: Optional. Streaming error.
	//
	// Possible values:
	//   "STREAMING_ERROR_REASON_UNSPECIFIED" - Streaming error reason unspecified.
	//   "STREAMING_SETUP_ERROR" - Some error occurred while setting up resources
	// for realtime sync.
	//   "STREAMING_SYNC_ERROR" - Some error was encountered while running realtime
	// sync for the connector.
	//   "INGRESS_ENDPOINT_REQUIRED" - Ingress endpoint is required when setting up
	// realtime sync in private connectivity.
	StreamingErrorReason string `json:"streamingErrorReason,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 GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfigStreamingError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1DataConnectorRealtimeSyncConfigStreamingError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1DataConnectorSourceEntity: Represents an entity
// in the data source. For example, the `Account` object in Salesforce.
type GoogleCloudDiscoveryengineV1DataConnectorSourceEntity struct {
	// DataStore: Output only. The full resource name of the associated data store
	// for the source entity. Format:
	// `projects/*/locations/*/collections/*/dataStores/*`. When the connector is
	// initialized by the DataConnectorService.SetUpDataConnector method, a
	// DataStore is automatically created for each source entity.
	DataStore string `json:"dataStore,omitempty"`
	// EntityName: The name of the entity. Supported values by data source: *
	// Salesforce: `Lead`, `Opportunity`, `Contact`, `Account`, `Case`, `Contract`,
	// `Campaign` * Jira: `Issue` * Confluence: `Content`, `Space`
	EntityName string `json:"entityName,omitempty"`
	// HealthcareFhirConfig: Optional. Configuration for `HEALTHCARE_FHIR`
	// vertical.
	HealthcareFhirConfig *GoogleCloudDiscoveryengineV1HealthcareFhirConfig `json:"healthcareFhirConfig,omitempty"`
	// JsonParams: The parameters for the entity to facilitate data ingestion in
	// json string format.
	JsonParams string `json:"jsonParams,omitempty"`
	// KeyPropertyMappings: Attributes for indexing. Key: Field name. Value: The
	// key property to map a field to, such as `title`, and `description`.
	// Supported key properties: * `title`: The title for data record. This would
	// be displayed on search results. * `description`: The description for data
	// record. This would be displayed on search results.
	KeyPropertyMappings map[string]string `json:"keyPropertyMappings,omitempty"`
	// Params: The parameters for the entity to facilitate data ingestion in
	// structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// StartingSchema: Optional. The start schema to use for the DataStore created
	// from this SourceEntity. If unset, a default vertical specialized schema will
	// be used. This field is only used by SetUpDataConnector API, and will be
	// ignored if used in other APIs. This field will be omitted from all API
	// responses including GetDataConnector API. To retrieve a schema of a
	// DataStore, use SchemaService.GetSchema API instead. The provided schema will
	// be validated against certain rules on schema. Learn more from this doc
	// (https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
	StartingSchema *GoogleCloudDiscoveryengineV1Schema `json:"startingSchema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataStore: DataStore captures global settings
// and configs at the DataStore level.
type GoogleCloudDiscoveryengineV1DataStore struct {
	// AclEnabled: Immutable. Whether data in the DataStore has ACL information. If
	// set to `true`, the source data must have ACL. ACL will be ingested when data
	// is ingested by DocumentService.ImportDocuments methods. When ACL is enabled
	// for the DataStore, Document can't be accessed by calling
	// DocumentService.GetDocument or DocumentService.ListDocuments. Currently ACL
	// is only supported in `GENERIC` industry vertical with non-`PUBLIC_WEBSITE`
	// content config.
	AclEnabled bool `json:"aclEnabled,omitempty"`
	// AdvancedSiteSearchConfig: Optional. Configuration for advanced site search.
	AdvancedSiteSearchConfig *GoogleCloudDiscoveryengineV1AdvancedSiteSearchConfig `json:"advancedSiteSearchConfig,omitempty"`
	// BillingEstimation: Output only. Data size estimation for billing.
	BillingEstimation *GoogleCloudDiscoveryengineV1DataStoreBillingEstimation `json:"billingEstimation,omitempty"`
	// CmekConfig: Output only. CMEK-related information for the DataStore.
	CmekConfig *GoogleCloudDiscoveryengineV1CmekConfig `json:"cmekConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach. See
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach.
	//   "CONFIGURABLE_SUBSCRIPTION_INDEXING_CORE" - Use the subscription base +
	// overage billing for indexing core for non embedding storage.
	//   "CONFIGURABLE_CONSUMPTION_EMBEDDING" - Use the consumption pay-as-you-go
	// billing for embedding storage add-on.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// ContentConfig: Immutable. The content config of the data store. If this
	// field is unset, the server behavior defaults to ContentConfig.NO_CONTENT.
	//
	// Possible values:
	//   "CONTENT_CONFIG_UNSPECIFIED" - Default value.
	//   "NO_CONTENT" - Only contains documents without any Document.content.
	//   "CONTENT_REQUIRED" - Only contains documents with Document.content.
	//   "PUBLIC_WEBSITE" - The data store is used for public website search.
	//   "GOOGLE_WORKSPACE" - The data store is used for workspace search. Details
	// of workspace data store are specified in the WorkspaceConfig.
	ContentConfig string `json:"contentConfig,omitempty"`
	// CreateTime: Output only. Timestamp the DataStore was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DefaultSchemaId: Output only. The id of the default Schema associated to
	// this data store.
	DefaultSchemaId string `json:"defaultSchemaId,omitempty"`
	// DisplayName: Required. The data store display name. This field must be a
	// UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// DocumentProcessingConfig: Configuration for Document understanding and
	// enrichment.
	DocumentProcessingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfig `json:"documentProcessingConfig,omitempty"`
	// HealthcareFhirConfig: Optional. Configuration for `HEALTHCARE_FHIR`
	// vertical.
	HealthcareFhirConfig *GoogleCloudDiscoveryengineV1HealthcareFhirConfig `json:"healthcareFhirConfig,omitempty"`
	// IdentityMappingStore: Immutable. The fully qualified resource name of the
	// associated IdentityMappingStore. This field can only be set for acl_enabled
	// DataStores with `THIRD_PARTY` or `GSUITE` IdP. Format:
	// `projects/{project}/locations/{location}/identityMappingStores/{identity_mapp
	// ing_store}`.
	IdentityMappingStore string `json:"identityMappingStore,omitempty"`
	// IndustryVertical: Immutable. The industry vertical that the data store
	// registers.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// IsInfobotFaqDataStore: Optional. If set, this DataStore is an Infobot FAQ
	// DataStore.
	IsInfobotFaqDataStore bool `json:"isInfobotFaqDataStore,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect this DataStore at
	// creation time. Must be set for requests that need to comply with CMEK Org
	// Policy protections. If this field is set and processed successfully, the
	// DataStore will be protected by the KMS key, as indicated in the cmek_config
	// field.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// Name: Immutable. Identifier. The full resource name of the data store.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. This field must be a UTF-8 encoded string with a length
	// limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ServingConfigDataStore: Optional. Stores serving config at DataStore level.
	ServingConfigDataStore *GoogleCloudDiscoveryengineV1DataStoreServingConfigDataStore `json:"servingConfigDataStore,omitempty"`
	// SolutionTypes: The solutions that the data store enrolls. Available
	// solutions for each industry_vertical: * `MEDIA`:
	// `SOLUTION_TYPE_RECOMMENDATION` and `SOLUTION_TYPE_SEARCH`. * `SITE_SEARCH`:
	// `SOLUTION_TYPE_SEARCH` is automatically enrolled. Other solutions cannot be
	// enrolled.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionTypes []string `json:"solutionTypes,omitempty"`
	// StartingSchema: The start schema to use for this DataStore when provisioning
	// it. If unset, a default vertical specialized schema will be used. This field
	// is only used by CreateDataStore API, and will be ignored if used in other
	// APIs. This field will be omitted from all API responses including
	// CreateDataStore API. To retrieve a schema of a DataStore, use
	// SchemaService.GetSchema API instead. The provided schema will be validated
	// against certain rules on schema. Learn more from this doc
	// (https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
	StartingSchema *GoogleCloudDiscoveryengineV1Schema `json:"startingSchema,omitempty"`
	// WorkspaceConfig: Config to store data store type configuration for workspace
	// data. This must be set when DataStore.content_config is set as
	// DataStore.ContentConfig.GOOGLE_WORKSPACE.
	WorkspaceConfig *GoogleCloudDiscoveryengineV1WorkspaceConfig `json:"workspaceConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AclEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataStoreBillingEstimation: Estimation of data
// size per data store.
type GoogleCloudDiscoveryengineV1DataStoreBillingEstimation struct {
	// StructuredDataSize: Data size for structured data in terms of bytes.
	StructuredDataSize int64 `json:"structuredDataSize,omitempty,string"`
	// StructuredDataUpdateTime: Last updated timestamp for structured data.
	StructuredDataUpdateTime string `json:"structuredDataUpdateTime,omitempty"`
	// UnstructuredDataSize: Data size for unstructured data in terms of bytes.
	UnstructuredDataSize int64 `json:"unstructuredDataSize,omitempty,string"`
	// UnstructuredDataUpdateTime: Last updated timestamp for unstructured data.
	UnstructuredDataUpdateTime string `json:"unstructuredDataUpdateTime,omitempty"`
	// WebsiteDataSize: Data size for websites in terms of bytes.
	WebsiteDataSize int64 `json:"websiteDataSize,omitempty,string"`
	// WebsiteDataUpdateTime: Last updated timestamp for websites.
	WebsiteDataUpdateTime string `json:"websiteDataUpdateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StructuredDataSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StructuredDataSize") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DataStoreServingConfigDataStore: Stores
// information regarding the serving configurations at DataStore level.
type GoogleCloudDiscoveryengineV1DataStoreServingConfigDataStore struct {
	// DisabledForServing: Optional. If set true, the DataStore will not be
	// available for serving search requests.
	DisabledForServing bool `json:"disabledForServing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisabledForServing") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisabledForServing") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteCmekConfigMetadata: Metadata related to
// the progress of the CmekConfigService.DeleteCmekConfig operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteCmekConfigMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteCollectionMetadata: Metadata related to
// the progress of the CollectionService.UpdateCollection operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteCollectionMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteDataStoreMetadata: Metadata related to the
// progress of the DataStoreService.DeleteDataStore operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteEngineMetadata: Metadata related to the
// progress of the EngineService.DeleteEngine operation. This will be returned
// by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteIdentityMappingStoreMetadata: Metadata
// related to the progress of the
// IdentityMappingStoreService.DeleteIdentityMappingStore operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteIdentityMappingStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteSchemaMetadata: Metadata for DeleteSchema
// LRO.
type GoogleCloudDiscoveryengineV1DeleteSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteSitemapMetadata: Metadata related to the
// progress of the SiteSearchEngineService.DeleteSitemap operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DeleteTargetSiteMetadata: Metadata related to
// the progress of the SiteSearchEngineService.DeleteTargetSite operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DeleteTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DestinationConfig: Defines target endpoints used
// to connect to third-party sources.
type GoogleCloudDiscoveryengineV1DestinationConfig struct {
	// Destinations: Optional. The destinations for the corresponding key.
	Destinations []*GoogleCloudDiscoveryengineV1DestinationConfigDestination `json:"destinations,omitempty"`
	// JsonParams: Additional parameters for this destination config in json string
	// format.
	JsonParams string `json:"jsonParams,omitempty"`
	// Key: Optional. Unique destination identifier that is supported by the
	// connector.
	Key string `json:"key,omitempty"`
	// Params: Optional. Additional parameters for this destination config in
	// structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Destinations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Destinations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DestinationConfigDestination: Defines a target
// endpoint
type GoogleCloudDiscoveryengineV1DestinationConfigDestination struct {
	// Host: Publicly routable host.
	Host string `json:"host,omitempty"`
	// Port: Optional. Target port number accepted by the destination.
	Port int64 `json:"port,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DisableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.DisableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1DisableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DisableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.DisableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1DisableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1DocumentProcessingConfig: A singleton resource
// of DataStore. If it's empty when DataStore is created and DataStore is set
// to DataStore.ContentConfig.CONTENT_REQUIRED, the default parser will default
// to digital parser.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfig struct {
	// ChunkingConfig: Whether chunking mode is enabled.
	ChunkingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfig `json:"chunkingConfig,omitempty"`
	// DefaultParsingConfig: Configurations for default Document parser. If not
	// specified, we will configure it as default DigitalParsingConfig, and the
	// default parsing config will be applied to all file types for Document
	// parsing.
	DefaultParsingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfig `json:"defaultParsingConfig,omitempty"`
	// Name: The full resource name of the Document Processing Config. Format:
	// `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`.
	Name string `json:"name,omitempty"`
	// ParsingConfigOverrides: Map from file type to override the default parsing
	// configuration based on the file type. Supported keys: * `pdf`: Override
	// parsing config for PDF files, either digital parsing, ocr parsing or layout
	// parsing is supported. * `html`: Override parsing config for HTML files, only
	// digital parsing and layout parsing are supported. * `docx`: Override parsing
	// config for DOCX files, only digital parsing and layout parsing are
	// supported. * `pptx`: Override parsing config for PPTX files, only digital
	// parsing and layout parsing are supported. * `xlsm`: Override parsing config
	// for XLSM files, only digital parsing and layout parsing are supported. *
	// `xlsx`: Override parsing config for XLSX files, only digital parsing and
	// layout parsing are supported.
	ParsingConfigOverrides map[string]GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfig `json:"parsingConfigOverrides,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkingConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfig:
// Configuration for chunking config.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfig struct {
	// LayoutBasedChunkingConfig: Configuration for the layout based chunking.
	LayoutBasedChunkingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig `json:"layoutBasedChunkingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LayoutBasedChunkingConfig")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LayoutBasedChunkingConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfigLayoutBased
// ChunkingConfig: Configuration for the layout based chunking.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig struct {
	// ChunkSize: The token size limit for each chunk. Supported values: 100-500
	// (inclusive). Default value: 500.
	ChunkSize int64 `json:"chunkSize,omitempty"`
	// IncludeAncestorHeadings: Whether to include appending different levels of
	// headings to chunks from the middle of the document to prevent context loss.
	// Default value: False.
	IncludeAncestorHeadings bool `json:"includeAncestorHeadings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfig: Related
// configurations applied to a specific type of document parser.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfig struct {
	// DigitalParsingConfig: Configurations applied to digital parser.
	DigitalParsingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigDigitalParsingConfig `json:"digitalParsingConfig,omitempty"`
	// LayoutParsingConfig: Configurations applied to layout parser.
	LayoutParsingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigLayoutParsingConfig `json:"layoutParsingConfig,omitempty"`
	// OcrParsingConfig: Configurations applied to OCR parser. Currently it only
	// applies to PDFs.
	OcrParsingConfig *GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigOcrParsingConfig `json:"ocrParsingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DigitalParsingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DigitalParsingConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigDigitalParsi
// ngConfig: The digital parsing configurations for documents.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigDigitalParsingConfig struct {
}

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigLayoutParsin
// gConfig: The layout parsing configurations for documents.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigLayoutParsingConfig struct {
	// EnableGetProcessedDocument: Optional. If true, the processed document will
	// be made available for the GetProcessedDocument API.
	EnableGetProcessedDocument bool `json:"enableGetProcessedDocument,omitempty"`
	// EnableImageAnnotation: Optional. If true, the LLM based annotation is added
	// to the image during parsing.
	EnableImageAnnotation bool `json:"enableImageAnnotation,omitempty"`
	// EnableTableAnnotation: Optional. If true, the LLM based annotation is added
	// to the table during parsing.
	EnableTableAnnotation bool `json:"enableTableAnnotation,omitempty"`
	// ExcludeHtmlClasses: Optional. List of HTML classes to exclude from the
	// parsed content.
	ExcludeHtmlClasses []string `json:"excludeHtmlClasses,omitempty"`
	// ExcludeHtmlElements: Optional. List of HTML elements to exclude from the
	// parsed content.
	ExcludeHtmlElements []string `json:"excludeHtmlElements,omitempty"`
	// ExcludeHtmlIds: Optional. List of HTML ids to exclude from the parsed
	// content.
	ExcludeHtmlIds []string `json:"excludeHtmlIds,omitempty"`
	// StructuredContentTypes: Optional. Contains the required structure types to
	// extract from the document. Supported values: * `shareholder-structure`
	StructuredContentTypes []string `json:"structuredContentTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableGetProcessedDocument")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableGetProcessedDocument") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigOcrParsingCo
// nfig: The OCR parsing configurations for documents.
type GoogleCloudDiscoveryengineV1DocumentProcessingConfigParsingConfigOcrParsingConfig struct {
	// EnhancedDocumentElements: [DEPRECATED] This field is deprecated. To use the
	// additional enhanced document elements processing, please switch to
	// `layout_parsing_config`.
	EnhancedDocumentElements []string `json:"enhancedDocumentElements,omitempty"`
	// UseNativeText: If true, will use native text instead of OCR text on pages
	// containing native text.
	UseNativeText bool `json:"useNativeText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnhancedDocumentElements")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnhancedDocumentElements") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EnableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.EnableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1EnableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EnableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.EnableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1EnableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1Engine: Metadata that describes the training and
// serving parameters of an Engine.
type GoogleCloudDiscoveryengineV1Engine struct {
	// AppType: Optional. Immutable. This the application type which this engine
	// resource represents. NOTE: this is a new concept independ of existing
	// industry vertical or solution type.
	//
	// Possible values:
	//   "APP_TYPE_UNSPECIFIED" - All non specified apps.
	//   "APP_TYPE_INTRANET" - App type for intranet search and Agentspace.
	AppType string `json:"appType,omitempty"`
	// ChatEngineConfig: Configurations for the Chat Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineConfig *GoogleCloudDiscoveryengineV1EngineChatEngineConfig `json:"chatEngineConfig,omitempty"`
	// ChatEngineMetadata: Output only. Additional information of the Chat Engine.
	// Only applicable if solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineMetadata *GoogleCloudDiscoveryengineV1EngineChatEngineMetadata `json:"chatEngineMetadata,omitempty"`
	// CommonConfig: Common config spec that specifies the metadata of the engine.
	CommonConfig *GoogleCloudDiscoveryengineV1EngineCommonConfig `json:"commonConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach.
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach. General pricing model.
	//   "CONFIGURABLE_BILLING_APPROACH_ENABLED" - The billing approach follows
	// configurations specified by customer.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// CreateTime: Output only. Timestamp the Recommendation Engine was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataStoreIds: Optional. The data stores associated with this engine. For
	// SOLUTION_TYPE_SEARCH and SOLUTION_TYPE_RECOMMENDATION type of engines, they
	// can only associate with at most one data store. If solution_type is
	// SOLUTION_TYPE_CHAT, multiple DataStores in the same Collection can be
	// associated here. Note that when used in CreateEngineRequest, one DataStore
	// id must be provided as the system will use it for necessary initializations.
	DataStoreIds []string `json:"dataStoreIds,omitempty"`
	// DisableAnalytics: Optional. Whether to disable analytics for searches
	// performed on this engine.
	DisableAnalytics bool `json:"disableAnalytics,omitempty"`
	// DisplayName: Required. The display name of the engine. Should be human
	// readable. UTF-8 encoded string with limit of 1024 characters.
	DisplayName string `json:"displayName,omitempty"`
	// Features: Optional. Feature config for the engine to opt in or opt out of
	// features. Supported keys: * `*`: all features, if it's present, all other
	// feature state settings are ignored. * `agent-gallery` *
	// `no-code-agent-builder` * `prompt-gallery` * `model-selector` *
	// `notebook-lm` * `people-search` * `people-search-org-chart` *
	// `bi-directional-audio` * `feedback` * `session-sharing` *
	// `personalization-memory` * `disable-agent-sharing` *
	// `disable-image-generation` * `disable-video-generation` *
	// `disable-onedrive-upload` * `disable-talk-to-content` *
	// `disable-google-drive-upload`
	Features map[string]string `json:"features,omitempty"`
	// IndustryVertical: Optional. The industry vertical that the engine registers.
	// The restriction of the Engine industry vertical is based on DataStore:
	// Vertical on Engine has to match vertical of the DataStore linked to the
	// engine.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// MediaRecommendationEngineConfig: Configurations for the Media Engine. Only
	// applicable on the data stores with solution_type
	// SOLUTION_TYPE_RECOMMENDATION and IndustryVertical.MEDIA vertical.
	MediaRecommendationEngineConfig *GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfig `json:"mediaRecommendationEngineConfig,omitempty"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// engine. This field must be a UTF-8 encoded string with a length limit of
	// 1024 characters. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}` engine should be 1-63 characters, and valid characters are /a-z0-9*/.
	// Otherwise, an INVALID_ARGUMENT error is returned.
	Name string `json:"name,omitempty"`
	// SearchEngineConfig: Configurations for the Search Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_SEARCH.
	SearchEngineConfig *GoogleCloudDiscoveryengineV1EngineSearchEngineConfig `json:"searchEngineConfig,omitempty"`
	// SolutionType: Required. The solutions of the engine.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// UpdateTime: Output only. Timestamp the Recommendation Engine was last
	// updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppType") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineChatEngineConfig: Configurations for a
// Chat Engine.
type GoogleCloudDiscoveryengineV1EngineChatEngineConfig struct {
	// AgentCreationConfig: The configurationt generate the Dialogflow agent that
	// is associated to this Engine. Note that these configurations are one-time
	// consumed by and passed to Dialogflow service. It means they cannot be
	// retrieved using EngineService.GetEngine or EngineService.ListEngines API
	// after engine creation.
	AgentCreationConfig *GoogleCloudDiscoveryengineV1EngineChatEngineConfigAgentCreationConfig `json:"agentCreationConfig,omitempty"`
	// AllowCrossRegion: Optional. If the flag set to true, we allow the agent and
	// engine are in different locations, otherwise the agent and engine are
	// required to be in the same location. The flag is set to false by default.
	// Note that the `allow_cross_region` are one-time consumed by and passed to
	// EngineService.CreateEngine. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation.
	AllowCrossRegion bool `json:"allowCrossRegion,omitempty"`
	// DialogflowAgentToLink: The resource name of an exist Dialogflow agent to
	// link to this Chat Engine. Customers can either provide
	// `agent_creation_config` to create agent or provide an agent name that links
	// the agent with the Chat engine. Format: `projects//locations//agents/`. Note
	// that the `dialogflow_agent_to_link` are one-time consumed by and passed to
	// Dialogflow service. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation. Use ChatEngineMetadata.dialogflow_agent for actual agent
	// association after Engine is created.
	DialogflowAgentToLink string `json:"dialogflowAgentToLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentCreationConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentCreationConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineChatEngineConfigAgentCreationConfig:
// Configurations for generating a Dialogflow agent. Note that these
// configurations are one-time consumed by and passed to Dialogflow service. It
// means they cannot be retrieved using EngineService.GetEngine or
// EngineService.ListEngines API after engine creation.
type GoogleCloudDiscoveryengineV1EngineChatEngineConfigAgentCreationConfig struct {
	// Business: Name of the company, organization or other entity that the agent
	// represents. Used for knowledge connector LLM prompt and for knowledge
	// search.
	Business string `json:"business,omitempty"`
	// DefaultLanguageCode: Required. The default language of the agent as a
	// language tag. See Language Support
	// (https://cloud.google.com/dialogflow/docs/reference/language) for a list of
	// the currently supported language codes.
	DefaultLanguageCode string `json:"defaultLanguageCode,omitempty"`
	// Location: Agent location for Agent creation, supported values: global/us/eu.
	// If not provided, us Engine will create Agent using us-central-1 by default;
	// eu Engine will create Agent using eu-west-1 by default.
	Location string `json:"location,omitempty"`
	// TimeZone: Required. The time zone of the agent from the time zone database
	// (https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Business") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Business") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineChatEngineMetadata: Additional information
// of a Chat Engine. Fields in this message are output only.
type GoogleCloudDiscoveryengineV1EngineChatEngineMetadata struct {
	// DialogflowAgent: The resource name of a Dialogflow agent, that this Chat
	// Engine refers to. Format: `projects//locations//agents/`.
	DialogflowAgent string `json:"dialogflowAgent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DialogflowAgent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DialogflowAgent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineCommonConfig: Common configurations for an
// Engine.
type GoogleCloudDiscoveryengineV1EngineCommonConfig struct {
	// CompanyName: The name of the company, business or entity that is associated
	// with the engine. Setting this may help improve LLM related features.
	CompanyName string `json:"companyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompanyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompanyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfig:
// Additional config specs for a Media Recommendation engine.
type GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfig struct {
	// EngineFeaturesConfig: Optional. Additional engine features config.
	EngineFeaturesConfig *GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigEngineFeaturesConfig `json:"engineFeaturesConfig,omitempty"`
	// OptimizationObjective: The optimization objective. e.g., `cvr`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values: `ctr`,
	// `cvr`. If not specified, we choose default based on engine type. Default
	// depends on type of recommendation: `recommended-for-you` => `ctr`
	// `others-you-may-like` => `ctr`
	OptimizationObjective string `json:"optimizationObjective,omitempty"`
	// OptimizationObjectiveConfig: Name and value of the custom threshold for cvr
	// optimization_objective. For target_field `watch-time`, target_field_value
	// must be an integer value indicating the media progress time in seconds
	// between (0, 86400] (excludes 0, includes 86400) (e.g., 90). For target_field
	// `watch-percentage`, the target_field_value must be a valid float value
	// between (0, 1.0] (excludes 0, includes 1.0) (e.g., 0.5).
	OptimizationObjectiveConfig *GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigOptimizationObjectiveConfig `json:"optimizationObjectiveConfig,omitempty"`
	// TrainingState: The training state that the engine is in (e.g. `TRAINING` or
	// `PAUSED`). Since part of the cost of running the service is frequency of
	// training - this can be used to determine when to train engine in order to
	// control cost. If not specified: the default value for `CreateEngine` method
	// is `TRAINING`. The default value for `UpdateEngine` method is to keep the
	// state the same as before.
	//
	// Possible values:
	//   "TRAINING_STATE_UNSPECIFIED" - Unspecified training state.
	//   "PAUSED" - The engine training is paused.
	//   "TRAINING" - The engine is training.
	TrainingState string `json:"trainingState,omitempty"`
	// Type: Required. The type of engine. e.g., `recommended-for-you`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values:
	// `recommended-for-you`, `others-you-may-like`, `more-like-this`,
	// `most-popular-items`.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EngineFeaturesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EngineFeaturesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigEngineFeatur
// esConfig: More feature configs of the selected engine type.
type GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigEngineFeaturesConfig struct {
	// MostPopularConfig: Most popular engine feature config.
	MostPopularConfig *GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigMostPopularFeatureConfig `json:"mostPopularConfig,omitempty"`
	// RecommendedForYouConfig: Recommended for you engine feature config.
	RecommendedForYouConfig *GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig `json:"recommendedForYouConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MostPopularConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MostPopularConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigMostPopularF
// eatureConfig: Feature configurations that are required for creating a Most
// Popular engine.
type GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigMostPopularFeatureConfig struct {
	// TimeWindowDays: The time window of which the engine is queried at training
	// and prediction time. Positive integers only. The value translates to the
	// last X days of events. Currently required for the `most-popular-items`
	// engine.
	TimeWindowDays int64 `json:"timeWindowDays,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TimeWindowDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeWindowDays") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigOptimization
// ObjectiveConfig: Custom threshold for `cvr` optimization_objective.
type GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigOptimizationObjectiveConfig struct {
	// TargetField: Required. The name of the field to target. Currently supported
	// values: `watch-percentage`, `watch-time`.
	TargetField string `json:"targetField,omitempty"`
	// TargetFieldValueFloat: Required. The threshold to be applied to the target
	// (e.g., 0.5).
	TargetFieldValueFloat float64 `json:"targetFieldValueFloat,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetField") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetField") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigRecommendedF
// orYouFeatureConfig: Additional feature configurations for creating a
// `recommended-for-you` engine.
type GoogleCloudDiscoveryengineV1EngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig struct {
	// ContextEventType: The type of event with which the engine is queried at
	// prediction time. If set to `generic`, only `view-item`, `media-play`,and
	// `media-complete` will be used as `context-event` in engine training. If set
	// to `view-home-page`, `view-home-page` will also be used as `context-events`
	// in addition to `view-item`, `media-play`, and `media-complete`. Currently
	// supported for the `recommended-for-you` engine. Currently supported values:
	// `view-home-page`, `generic`.
	ContextEventType string `json:"contextEventType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContextEventType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContextEventType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1EngineSearchEngineConfig: Configurations for a
// Search Engine.
type GoogleCloudDiscoveryengineV1EngineSearchEngineConfig struct {
	// SearchAddOns: The add-on that this search engine enables.
	//
	// Possible values:
	//   "SEARCH_ADD_ON_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_ADD_ON_LLM" - Large language model add-on.
	SearchAddOns []string `json:"searchAddOns,omitempty"`
	// SearchTier: The search feature tier of this engine. Different tiers might
	// have different pricing. To learn more, check the pricing documentation.
	// Defaults to SearchTier.SEARCH_TIER_STANDARD if not specified.
	//
	// Possible values:
	//   "SEARCH_TIER_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_TIER_STANDARD" - Standard tier.
	//   "SEARCH_TIER_ENTERPRISE" - Enterprise tier.
	SearchTier string `json:"searchTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SearchAddOns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SearchAddOns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1HealthcareFhirConfig: Config to data store for
// `HEALTHCARE_FHIR` vertical.
type GoogleCloudDiscoveryengineV1HealthcareFhirConfig struct {
	// EnableConfigurableSchema: Whether to enable configurable schema for
	// `HEALTHCARE_FHIR` vertical. If set to `true`, the predefined healthcare fhir
	// schema can be extended for more customized searching and filtering.
	EnableConfigurableSchema bool `json:"enableConfigurableSchema,omitempty"`
	// EnableStaticIndexingForBatchIngestion: Whether to enable static indexing for
	// `HEALTHCARE_FHIR` batch ingestion. If set to `true`, the batch ingestion
	// will be processed in a static indexing mode which is slower but more capable
	// of handling larger volume.
	EnableStaticIndexingForBatchIngestion bool `json:"enableStaticIndexingForBatchIngestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableConfigurableSchema")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableConfigurableSchema") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1IdentityMappingEntryOperationMetadata:
// IdentityMappingEntry LongRunningOperation metadata for
// IdentityMappingStoreService.ImportIdentityMappings and
// IdentityMappingStoreService.PurgeIdentityMappings
type GoogleCloudDiscoveryengineV1IdentityMappingEntryOperationMetadata struct {
	// FailureCount: The number of IdentityMappingEntries that failed to be
	// processed.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: The number of IdentityMappingEntries that were successfully
	// processed.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: The total number of IdentityMappingEntries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FailureCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1IdentityScheduleConfig: The configuration for
// the identity data synchronization runs.
type GoogleCloudDiscoveryengineV1IdentityScheduleConfig struct {
	// NextSyncTime: Optional. The UTC time when the next data sync is expected to
	// start for the Data Connector. Customers are only able to specify the hour
	// and minute to schedule the data sync. This is utilized when the data
	// connector has a refresh interval greater than 1 day.
	NextSyncTime *GoogleTypeDateTime `json:"nextSyncTime,omitempty"`
	// RefreshInterval: Optional. The refresh interval to sync the Access Control
	// List information for the documents ingested by this connector. If not set,
	// the access control list will be refreshed at the default interval of 30
	// minutes. The identity refresh interval can be at least 30 minutes and at
	// most 7 days.
	RefreshInterval string `json:"refreshInterval,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NextSyncTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextSyncTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1IdpConfig: Identity Provider Config.
type GoogleCloudDiscoveryengineV1IdpConfig struct {
	// ExternalIdpConfig: External Identity provider config.
	ExternalIdpConfig *GoogleCloudDiscoveryengineV1IdpConfigExternalIdpConfig `json:"externalIdpConfig,omitempty"`
	// IdpType: Identity provider type configured.
	//
	// Possible values:
	//   "IDP_TYPE_UNSPECIFIED" - Default value. ACL search not enabled.
	//   "GSUITE" - Google 1P provider.
	//   "THIRD_PARTY" - Third party provider.
	IdpType string `json:"idpType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIdpConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1IdpConfigExternalIdpConfig: Third party IDP
// Config.
type GoogleCloudDiscoveryengineV1IdpConfigExternalIdpConfig struct {
	// WorkforcePoolName: Workforce pool name. Example:
	// "locations/global/workforcePools/pool_id"
	WorkforcePoolName string `json:"workforcePoolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WorkforcePoolName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WorkforcePoolName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportCompletionSuggestionsMetadata: Metadata
// related to the progress of the ImportCompletionSuggestions operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1ImportCompletionSuggestionsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of CompletionSuggestions that failed to be imported.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of CompletionSuggestions successfully imported.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportCompletionSuggestionsResponse: Response of
// the CompletionService.ImportCompletionSuggestions method. If the long
// running operation is done, this message is returned by the
// google.longrunning.Operations.response field if the operation is successful.
type GoogleCloudDiscoveryengineV1ImportCompletionSuggestionsResponse struct {
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1ImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportDocumentsMetadata: Metadata related to the
// progress of the ImportDocuments operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1ImportDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: Total count of entries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportDocumentsResponse: Response of the
// ImportDocumentsRequest. If the long running operation is done, then this
// message is returned by the google.longrunning.Operations.response field if
// the operation was successful.
type GoogleCloudDiscoveryengineV1ImportDocumentsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1ImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportErrorConfig: Configuration of destination
// for Import related errors.
type GoogleCloudDiscoveryengineV1ImportErrorConfig struct {
	// GcsPrefix: Cloud Storage prefix for import errors. This must be an empty,
	// existing Cloud Storage directory. Import errors are written to sharded files
	// in this directory, one per line, as a JSON-encoded `google.rpc.Status`
	// message.
	GcsPrefix string `json:"gcsPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsPrefix") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsPrefix") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportIdentityMappingsResponse: Response message
// for IdentityMappingStoreService.ImportIdentityMappings
type GoogleCloudDiscoveryengineV1ImportIdentityMappingsResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportSuggestionDenyListEntriesMetadata:
// Metadata related to the progress of the ImportSuggestionDenyListEntries
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1ImportSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportSuggestionDenyListEntriesResponse:
// Response message for CompletionService.ImportSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1ImportSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// FailedEntriesCount: Count of deny list entries that failed to be imported.
	FailedEntriesCount int64 `json:"failedEntriesCount,omitempty,string"`
	// ImportedEntriesCount: Count of deny list entries successfully imported.
	ImportedEntriesCount int64 `json:"importedEntriesCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportUserEventsMetadata: Metadata related to
// the progress of the Import operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1ImportUserEventsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ImportUserEventsResponse: Response of the
// ImportUserEventsRequest. If the long running operation was successful, then
// this message is returned by the google.longrunning.Operations.response field
// if the operation was successful.
type GoogleCloudDiscoveryengineV1ImportUserEventsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors if this field
	// was set in the request.
	ErrorConfig *GoogleCloudDiscoveryengineV1ImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// JoinedEventsCount: Count of user events imported with complete existing
	// Documents.
	JoinedEventsCount int64 `json:"joinedEventsCount,omitempty,string"`
	// UnjoinedEventsCount: Count of user events imported, but with Document
	// information not found in the existing Branch.
	UnjoinedEventsCount int64 `json:"unjoinedEventsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1LicenseConfig: Information about users'
// licenses.
type GoogleCloudDiscoveryengineV1LicenseConfig struct {
	// AutoRenew: Optional. Whether the license config should be auto renewed when
	// it reaches the end date.
	AutoRenew bool `json:"autoRenew,omitempty"`
	// EndDate: Optional. The planed end date.
	EndDate *GoogleTypeDate `json:"endDate,omitempty"`
	// FreeTrial: Optional. Whether the license config is for free trial.
	FreeTrial bool `json:"freeTrial,omitempty"`
	// GeminiBundle: Output only. Whether the license config is for Gemini bundle.
	GeminiBundle bool `json:"geminiBundle,omitempty"`
	// LicenseCount: Required. Number of licenses purchased.
	LicenseCount int64 `json:"licenseCount,omitempty,string"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// license config. Format:
	// `projects/{project}/locations/{location}/licenseConfigs/{license_config}`
	Name string `json:"name,omitempty"`
	// StartDate: Required. The start date.
	StartDate *GoogleTypeDate `json:"startDate,omitempty"`
	// State: Output only. The state of the license config.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value. The license config does not exist.
	//   "ACTIVE" - The license config is effective and being used.
	//   "EXPIRED" - The license config has expired.
	//   "NOT_STARTED" - The license config has not started yet, and its start date
	// is in the future.
	State string `json:"state,omitempty"`
	// SubscriptionTerm: Required. Subscription term.
	//
	// Possible values:
	//   "SUBSCRIPTION_TERM_UNSPECIFIED" - Default value, do not use.
	//   "SUBSCRIPTION_TERM_ONE_MONTH" - 1 month.
	//   "SUBSCRIPTION_TERM_ONE_YEAR" - 1 year.
	//   "SUBSCRIPTION_TERM_THREE_YEARS" - 3 years.
	SubscriptionTerm string `json:"subscriptionTerm,omitempty"`
	// SubscriptionTier: Required. Subscription tier information for the license
	// config.
	//
	// Possible values:
	//   "SUBSCRIPTION_TIER_UNSPECIFIED" - Default value.
	//   "SUBSCRIPTION_TIER_SEARCH" - Search tier. Search tier can access VAIS
	// search features and NotebookLM features.
	//   "SUBSCRIPTION_TIER_SEARCH_AND_ASSISTANT" - Search + assistant tier. Search
	// + assistant tier can access VAIS search features, NotebookLM features and
	// assistant features.
	//   "SUBSCRIPTION_TIER_NOTEBOOK_LM" - NotebookLM tier. NotebookLM is a
	// subscription tier can only access NotebookLM features.
	//   "SUBSCRIPTION_TIER_FRONTLINE_WORKER" - Frontline worker tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_STARTER" - Agentspace Starter tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_BUSINESS" - Agentspace Business tier.
	//   "SUBSCRIPTION_TIER_ENTERPRISE" - Enterprise tier.
	//   "SUBSCRIPTION_TIER_EDU" - EDU tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO" - EDU Pro tier.
	//   "SUBSCRIPTION_TIER_EDU_EMERGING" - EDU emerging market tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO_EMERGING" - EDU Pro emerging market tier.
	SubscriptionTier string `json:"subscriptionTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoRenew") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoRenew") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Project: Metadata and configurations for a
// Google Cloud project in the service.
type GoogleCloudDiscoveryengineV1Project struct {
	// CreateTime: Output only. The timestamp when this project is created.
	CreateTime string `json:"createTime,omitempty"`
	// CustomerProvidedConfig: Optional. Customer provided configurations.
	CustomerProvidedConfig *GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfig `json:"customerProvidedConfig,omitempty"`
	// Name: Output only. Full resource name of the project, for example
	// `projects/{project}`. Note that when making requests, project number and
	// project id are both acceptable, but the server will always respond in
	// project number.
	Name string `json:"name,omitempty"`
	// ProvisionCompletionTime: Output only. The timestamp when this project is
	// successfully provisioned. Empty value means this project is still
	// provisioning and is not ready for use.
	ProvisionCompletionTime string `json:"provisionCompletionTime,omitempty"`
	// ServiceTermsMap: Output only. A map of terms of services. The key is the
	// `id` of ServiceTerms.
	ServiceTermsMap map[string]GoogleCloudDiscoveryengineV1ProjectServiceTerms `json:"serviceTermsMap,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfigNotebooklmConfig:
// Configuration for NotebookLM.
type GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfigNotebooklmConfig struct {
	// ModelArmorConfig: Model Armor configuration to be used for sanitizing user
	// prompts and LLM responses.
	ModelArmorConfig *GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig `json:"modelArmorConfig,omitempty"`
	// OptOutNotebookSharing: Optional. Whether to disable the notebook sharing
	// feature for the project. Default to false if not specified.
	OptOutNotebookSharing bool `json:"optOutNotebookSharing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelArmorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelArmorConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfigNotebooklmConfigMode
// lArmorConfig: Configuration for customer defined Model Armor templates to be
// used for sanitizing user prompts and LLM responses.
type GoogleCloudDiscoveryengineV1ProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig struct {
	// ResponseTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing LLM responses. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the LLM response.
	ResponseTemplate string `json:"responseTemplate,omitempty"`
	// UserPromptTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing user prompts. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the user prompt.
	UserPromptTemplate string `json:"userPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResponseTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResponseTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ProjectServiceTerms: Metadata about the terms of
// service.
type GoogleCloudDiscoveryengineV1ProjectServiceTerms struct {
	// AcceptTime: The last time when the project agreed to the terms of service.
	AcceptTime string `json:"acceptTime,omitempty"`
	// DeclineTime: The last time when the project declined or revoked the
	// agreement to terms of service.
	DeclineTime string `json:"declineTime,omitempty"`
	// Id: The unique identifier of this terms of service. Available terms: *
	// `GA_DATA_USE_TERMS`: Terms for data use
	// (https://cloud.google.com/retail/data-use-terms). When using this as `id`,
	// the acceptable version to provide is `2022-11-23`.
	Id string `json:"id,omitempty"`
	// State: Whether the project has accepted/rejected the service terms or it is
	// still pending.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The default value of the enum. This value is not
	// actually used.
	//   "TERMS_ACCEPTED" - The project has given consent to the terms of service.
	//   "TERMS_PENDING" - The project is pending to review and accept the terms of
	// service.
	//   "TERMS_DECLINED" - The project has declined or revoked the agreement to
	// terms of service.
	State string `json:"state,omitempty"`
	// Version: The version string of the terms of service. For acceptable values,
	// see the comments for id above.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ProvisionProjectMetadata: Metadata associated
// with a project provision operation.
type GoogleCloudDiscoveryengineV1ProvisionProjectMetadata struct {
}

// GoogleCloudDiscoveryengineV1PurgeCompletionSuggestionsMetadata: Metadata
// related to the progress of the PurgeCompletionSuggestions operation. This is
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1PurgeCompletionSuggestionsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1PurgeCompletionSuggestionsResponse: Response
// message for CompletionService.PurgeCompletionSuggestions method.
type GoogleCloudDiscoveryengineV1PurgeCompletionSuggestionsResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// PurgeSucceeded: Whether the completion suggestions were successfully purged.
	PurgeSucceeded bool `json:"purgeSucceeded,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1PurgeDocumentsMetadata: Metadata related to the
// progress of the PurgeDocuments operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1PurgeDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// IgnoredCount: Count of entries that were ignored as entries were not found.
	IgnoredCount int64 `json:"ignoredCount,omitempty,string"`
	// SuccessCount: Count of entries that were deleted successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1PurgeDocumentsResponse: Response message for
// DocumentService.PurgeDocuments method. If the long running operation is
// successfully done, then this message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1PurgeDocumentsResponse struct {
	// PurgeCount: The total count of documents purged as a result of the
	// operation.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// PurgeSample: A sample of document names that will be deleted. Only populated
	// if `force` is set to false. A max of 100 names will be returned and the
	// names are chosen at random.
	PurgeSample []string `json:"purgeSample,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PurgeCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PurgeCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1PurgeSuggestionDenyListEntriesMetadata: Metadata
// related to the progress of the PurgeSuggestionDenyListEntries operation.
// This is returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1PurgeSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1PurgeSuggestionDenyListEntriesResponse: Response
// message for CompletionService.PurgeSuggestionDenyListEntries method.
type GoogleCloudDiscoveryengineV1PurgeSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// PurgeCount: Number of suggestion deny list entries purged.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Schema: Defines the structure and layout of a
// type of document data.
type GoogleCloudDiscoveryengineV1Schema struct {
	// JsonSchema: The JSON representation of the schema.
	JsonSchema string `json:"jsonSchema,omitempty"`
	// Name: Immutable. The full resource name of the schema, in the format of
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/schemas/{schema}`. This field must be a UTF-8 encoded string
	// with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// StructSchema: The structured representation of the schema.
	StructSchema googleapi.RawMessage `json:"structSchema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "JsonSchema") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "JsonSchema") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchLinkPromotion: Promotion proto includes
// uri and other helping information to display the promotion.
type GoogleCloudDiscoveryengineV1SearchLinkPromotion struct {
	// Description: Optional. The Promotion description. Maximum length: 200
	// characters.
	Description string `json:"description,omitempty"`
	// Document: Optional. The Document the user wants to promote. For site search,
	// leave unset and only populate uri. Can be set along with uri.
	Document string `json:"document,omitempty"`
	// Enabled: Optional. The enabled promotion will be returned for any serving
	// configs associated with the parent of the control this promotion is attached
	// to. This flag is used for basic site search only.
	Enabled bool `json:"enabled,omitempty"`
	// ImageUri: Optional. The promotion thumbnail image url.
	ImageUri string `json:"imageUri,omitempty"`
	// Title: Required. The title of the promotion. Maximum length: 160 characters.
	Title string `json:"title,omitempty"`
	// Uri: Optional. The URL for the page the user wants to promote. Must be set
	// for site search. For other verticals, this is optional.
	Uri string `json:"uri,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 GoogleCloudDiscoveryengineV1SearchLinkPromotion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1SearchLinkPromotion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpec: A specification
// for configuring the behavior of content search.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpec struct {
	// ChunkSpec: Specifies the chunk spec to be returned from the search response.
	// Only available if the SearchRequest.ContentSearchSpec.search_result_mode is
	// set to CHUNKS
	ChunkSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecChunkSpec `json:"chunkSpec,omitempty"`
	// ExtractiveContentSpec: If there is no extractive_content_spec provided,
	// there will be no extractive answer in the search response.
	ExtractiveContentSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecExtractiveContentSpec `json:"extractiveContentSpec,omitempty"`
	// SearchResultMode: Specifies the search result mode. If unspecified, the
	// search result mode defaults to `DOCUMENTS`.
	//
	// Possible values:
	//   "SEARCH_RESULT_MODE_UNSPECIFIED" - Default value.
	//   "DOCUMENTS" - Returns documents in the search result.
	//   "CHUNKS" - Returns chunks in the search result. Only available if the
	// DocumentProcessingConfig.chunking_config is specified.
	SearchResultMode string `json:"searchResultMode,omitempty"`
	// SnippetSpec: If `snippetSpec` is not specified, snippets are not included in
	// the search response.
	SnippetSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSnippetSpec `json:"snippetSpec,omitempty"`
	// SummarySpec: If `summarySpec` is not specified, summaries are not included
	// in the search response.
	SummarySpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpec `json:"summarySpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecChunkSpec:
// Specifies the chunk spec to be returned from the search response. Only
// available if the SearchRequest.ContentSearchSpec.search_result_mode is set
// to CHUNKS
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecChunkSpec struct {
	// NumNextChunks: The number of next chunks to be returned of the current
	// chunk. The maximum allowed value is 3. If not specified, no next chunks will
	// be returned.
	NumNextChunks int64 `json:"numNextChunks,omitempty"`
	// NumPreviousChunks: The number of previous chunks to be returned of the
	// current chunk. The maximum allowed value is 3. If not specified, no previous
	// chunks will be returned.
	NumPreviousChunks int64 `json:"numPreviousChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumNextChunks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumNextChunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecExtractiveContentSp
// ec: A specification for configuring the extractive content in a search
// response.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecExtractiveContentSpec struct {
	// MaxExtractiveAnswerCount: The maximum number of extractive answers returned
	// in each search result. An extractive answer is a verbatim answer extracted
	// from the original document, which provides a precise and contextually
	// relevant answer to the search query. If the number of matching answers is
	// less than the `max_extractive_answer_count`, return all of the answers.
	// Otherwise, return the `max_extractive_answer_count`. At most five answers
	// are returned for each SearchResult.
	MaxExtractiveAnswerCount int64 `json:"maxExtractiveAnswerCount,omitempty"`
	// MaxExtractiveSegmentCount: The max number of extractive segments returned in
	// each search result. Only applied if the DataStore is set to
	// DataStore.ContentConfig.CONTENT_REQUIRED or DataStore.solution_types is
	// SOLUTION_TYPE_CHAT. An extractive segment is a text segment extracted from
	// the original document that is relevant to the search query, and, in general,
	// more verbose than an extractive answer. The segment could then be used as
	// input for LLMs to generate summaries and answers. If the number of matching
	// segments is less than `max_extractive_segment_count`, return all of the
	// segments. Otherwise, return the `max_extractive_segment_count`.
	MaxExtractiveSegmentCount int64 `json:"maxExtractiveSegmentCount,omitempty"`
	// NumNextSegments: Return at most `num_next_segments` segments after each
	// selected segments.
	NumNextSegments int64 `json:"numNextSegments,omitempty"`
	// NumPreviousSegments: Specifies whether to also include the adjacent from
	// each selected segments. Return at most `num_previous_segments` segments
	// before each selected segments.
	NumPreviousSegments int64 `json:"numPreviousSegments,omitempty"`
	// ReturnExtractiveSegmentScore: Specifies whether to return the confidence
	// score from the extractive segments in each search result. This feature is
	// available only for new or allowlisted data stores. To allowlist your data
	// store, contact your Customer Engineer. The default value is `false`.
	ReturnExtractiveSegmentScore bool `json:"returnExtractiveSegmentScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxExtractiveAnswerCount")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxExtractiveAnswerCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSnippetSpec: A
// specification for configuring snippets in a search response.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSnippetSpec struct {
	// MaxSnippetCount: [DEPRECATED] This field is deprecated. To control snippet
	// return, use `return_snippet` field. For backwards compatibility, we will
	// return snippet if max_snippet_count > 0.
	MaxSnippetCount int64 `json:"maxSnippetCount,omitempty"`
	// ReferenceOnly: [DEPRECATED] This field is deprecated and will have no affect
	// on the snippet.
	ReferenceOnly bool `json:"referenceOnly,omitempty"`
	// ReturnSnippet: If `true`, then return snippet. If no snippet can be
	// generated, we return "No snippet is available for this page." A
	// `snippet_status` with `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be
	// returned.
	ReturnSnippet bool `json:"returnSnippet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxSnippetCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxSnippetCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpec: A
// specification for configuring a summary returned in a search response.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpec struct {
	// IgnoreAdversarialQuery: Specifies whether to filter out adversarial queries.
	// The default value is `false`. Google employs search-query classification to
	// detect adversarial queries. No summary is returned if the search query is
	// classified as an adversarial query. For example, a user might ask a question
	// regarding negative comments about the company or submit a query designed to
	// generate unsafe, policy-violating output. If this field is set to `true`, we
	// skip generating summaries for adversarial queries and return fallback
	// messages instead.
	IgnoreAdversarialQuery bool `json:"ignoreAdversarialQuery,omitempty"`
	// IgnoreJailBreakingQuery: Optional. Specifies whether to filter out
	// jail-breaking queries. The default value is `false`. Google employs
	// search-query classification to detect jail-breaking queries. No summary is
	// returned if the search query is classified as a jail-breaking query. A user
	// might add instructions to the query to change the tone, style, language,
	// content of the answer, or ask the model to act as a different entity, e.g.
	// "Reply in the tone of a competing company's CEO". If this field is set to
	// `true`, we skip generating summaries for jail-breaking queries and return
	// fallback messages instead.
	IgnoreJailBreakingQuery bool `json:"ignoreJailBreakingQuery,omitempty"`
	// IgnoreLowRelevantContent: Specifies whether to filter out queries that have
	// low relevance. The default value is `false`. If this field is set to
	// `false`, all search results are used regardless of relevance to generate
	// answers. If set to `true`, only queries with high relevance search results
	// will generate answers.
	IgnoreLowRelevantContent bool `json:"ignoreLowRelevantContent,omitempty"`
	// IgnoreNonSummarySeekingQuery: Specifies whether to filter out queries that
	// are not summary-seeking. The default value is `false`. Google employs
	// search-query classification to detect summary-seeking queries. No summary is
	// returned if the search query is classified as a non-summary seeking query.
	// For example, `why is the sky blue` and `Who is the best soccer player in the
	// world?` are summary-seeking queries, but `SFO airport` and `world cup 2026`
	// are not. They are most likely navigational queries. If this field is set to
	// `true`, we skip generating summaries for non-summary seeking queries and
	// return fallback messages instead.
	IgnoreNonSummarySeekingQuery bool `json:"ignoreNonSummarySeekingQuery,omitempty"`
	// IncludeCitations: Specifies whether to include citations in the summary. The
	// default value is `false`. When this field is set to `true`, summaries
	// include in-line citation numbers. Example summary including citations:
	// BigQuery is Google Cloud's fully managed and completely serverless
	// enterprise data warehouse [1]. BigQuery supports all data types, works
	// across clouds, and has built-in machine learning and business intelligence,
	// all within a unified platform [2, 3]. The citation numbers refer to the
	// returned search results and are 1-indexed. For example, [1] means that the
	// sentence is attributed to the first search result. [2, 3] means that the
	// sentence is attributed to both the second and third search results.
	IncludeCitations bool `json:"includeCitations,omitempty"`
	// LanguageCode: Language code for Summary. Use language tags defined by BCP47
	// (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This is an
	// experimental feature.
	LanguageCode string `json:"languageCode,omitempty"`
	// ModelPromptSpec: If specified, the spec will be used to modify the prompt
	// provided to the LLM.
	ModelPromptSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelPromptSpec `json:"modelPromptSpec,omitempty"`
	// ModelSpec: If specified, the spec will be used to modify the model
	// specification provided to the LLM.
	ModelSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelSpec `json:"modelSpec,omitempty"`
	// SummaryResultCount: The number of top results to generate the summary from.
	// If the number of results returned is less than `summaryResultCount`, the
	// summary is generated from all of the results. At most 10 results for
	// documents mode, or 50 for chunks mode, can be used to generate a summary.
	// The chunks mode is used when
	// SearchRequest.ContentSearchSpec.search_result_mode is set to CHUNKS.
	SummaryResultCount int64 `json:"summaryResultCount,omitempty"`
	// UseSemanticChunks: If true, answer will be generated from most relevant
	// chunks from top search results. This feature will improve summary quality.
	// Note that with this feature enabled, not all top search results will be
	// referenced and included in the reference list, so the citation source index
	// only points to the search results listed in the reference list.
	UseSemanticChunks bool `json:"useSemanticChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelPro
// mptSpec: Specification of the prompt to use with the model.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelPromptSpec struct {
	// Preamble: Text at the beginning of the prompt that instructs the assistant.
	// Examples are available in the user guide.
	Preamble string `json:"preamble,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Preamble") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Preamble") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelSpe
// c: Specification of the model.
type GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpecSummarySpecModelSpec struct {
	// Version: The model version used to generate the summary. Supported values
	// are: * `stable`: string. Default value when no value is specified. Uses a
	// generally available, fine-tuned model. For more information, see Answer
	// generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	// * `preview`: string. (Public preview) Uses a preview model. For more
	// information, see Answer generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Version") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Version") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ServingConfig: Configures metadata that is used
// to generate serving time results (e.g. search results or recommendation
// predictions). The ServingConfig is passed in the search and predict request
// and generates results.
type GoogleCloudDiscoveryengineV1ServingConfig struct {
	// AnswerGenerationSpec: Optional. The specification for answer generation.
	AnswerGenerationSpec *GoogleCloudDiscoveryengineV1AnswerGenerationSpec `json:"answerGenerationSpec,omitempty"`
	// BoostControlIds: Boost controls to use in serving path. All triggered boost
	// controls will be applied. Boost controls must be in the same data store as
	// the serving config. Maximum of 20 boost controls.
	BoostControlIds []string `json:"boostControlIds,omitempty"`
	// CreateTime: Output only. ServingConfig created timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Required. The human readable serving config display name. Used
	// in Discovery UI. This field must be a UTF-8 encoded string with a length
	// limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// DissociateControlIds: Condition do not associate specifications. If multiple
	// do not associate conditions match, all matching do not associate controls in
	// the list will execute. Order does not matter. Maximum number of
	// specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	DissociateControlIds []string `json:"dissociateControlIds,omitempty"`
	// DiversityLevel: How much diversity to use in recommendation model results
	// e.g. `medium-diversity` or `high-diversity`. Currently supported values: *
	// `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` *
	// `auto-diversity` If not specified, we choose default based on recommendation
	// model type. Default value: `no-diversity`. Can only be set if SolutionType
	// is SOLUTION_TYPE_RECOMMENDATION.
	DiversityLevel string `json:"diversityLevel,omitempty"`
	// FilterControlIds: Filter controls to use in serving path. All triggered
	// filter controls will be applied. Filter controls must be in the same data
	// store as the serving config. Maximum of 20 filter controls.
	FilterControlIds []string `json:"filterControlIds,omitempty"`
	// GenericConfig: The GenericConfig of the serving configuration.
	GenericConfig *GoogleCloudDiscoveryengineV1ServingConfigGenericConfig `json:"genericConfig,omitempty"`
	// IgnoreControlIds: Condition ignore specifications. If multiple ignore
	// conditions match, all matching ignore controls in the list will execute.
	// Order does not matter. Maximum number of specifications is 100.
	IgnoreControlIds []string `json:"ignoreControlIds,omitempty"`
	// MediaConfig: The MediaConfig of the serving configuration.
	MediaConfig *GoogleCloudDiscoveryengineV1ServingConfigMediaConfig `json:"mediaConfig,omitempty"`
	// ModelId: The id of the model to use at serving time. Currently only
	// RecommendationModels are supported. Can be changed but only to a compatible
	// model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required
	// when SolutionType is SOLUTION_TYPE_RECOMMENDATION.
	ModelId string `json:"modelId,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/{project}/locations/{location}/collections/{collection_id}/engines/
	// {engine_id}/servingConfigs/{serving_config_id}`
	Name string `json:"name,omitempty"`
	// OnewaySynonymsControlIds: Condition oneway synonyms specifications. If
	// multiple oneway synonyms conditions match, all matching oneway synonyms
	// controls in the list will execute. Maximum number of specifications is 100.
	// Can only be set if SolutionType is SOLUTION_TYPE_SEARCH.
	OnewaySynonymsControlIds []string `json:"onewaySynonymsControlIds,omitempty"`
	// PromoteControlIds: Condition promote specifications. Maximum number of
	// specifications is 100.
	PromoteControlIds []string `json:"promoteControlIds,omitempty"`
	// RankingExpression: The ranking expression controls the customized ranking on
	// retrieval documents. To leverage this, document embedding is required. The
	// ranking expression setting in ServingConfig applies to all search requests
	// served by the serving config. However, if `SearchRequest.ranking_expression`
	// is specified, it overrides the ServingConfig ranking expression. The ranking
	// expression is a single function or multiple functions that are joined by
	// "+". * ranking_expression = function, { " + ", function }; Supported
	// functions: * double * relevance_score * double *
	// dotProduct(embedding_field_path) Function variables: * `relevance_score`:
	// pre-defined keywords, used for measure relevance between query and document.
	// * `embedding_field_path`: the document embedding field used with query
	// embedding vector. * `dotProduct`: embedding function between
	// embedding_field_path and query embedding vector. Example ranking expression:
	// If document has an embedding field doc_embedding, the ranking expression
	// could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
	RankingExpression string `json:"rankingExpression,omitempty"`
	// RedirectControlIds: IDs of the redirect controls. Only the first triggered
	// redirect action is applied, even if multiple apply. Maximum number of
	// specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	RedirectControlIds []string `json:"redirectControlIds,omitempty"`
	// ReplacementControlIds: Condition replacement specifications. Applied
	// according to the order in the list. A previously replaced term can not be
	// re-replaced. Maximum number of specifications is 100. Can only be set if
	// SolutionType is SOLUTION_TYPE_SEARCH.
	ReplacementControlIds []string `json:"replacementControlIds,omitempty"`
	// SolutionType: Required. Immutable. Specifies the solution type that a
	// serving config can be associated with.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// SynonymsControlIds: Condition synonyms specifications. If multiple synonyms
	// conditions match, all matching synonyms controls in the list will execute.
	// Maximum number of specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	SynonymsControlIds []string `json:"synonymsControlIds,omitempty"`
	// UpdateTime: Output only. ServingConfig updated timestamp.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AnswerGenerationSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerGenerationSpec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ServingConfigGenericConfig: Specifies the
// configurations needed for Generic Discovery.Currently we support: *
// `content_search_spec`: configuration for generic content search.
type GoogleCloudDiscoveryengineV1ServingConfigGenericConfig struct {
	// ContentSearchSpec: Specifies the expected behavior of content search. Only
	// valid for content-search enabled data store.
	ContentSearchSpec *GoogleCloudDiscoveryengineV1SearchRequestContentSearchSpec `json:"contentSearchSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentSearchSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentSearchSpec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1ServingConfigMediaConfig: Specifies the
// configurations needed for Media Discovery. Currently we support: *
// `demote_content_watched`: Threshold for watched content demotion. Customers
// can specify if using watched content demotion or use viewed detail page.
// Using the content watched demotion, customers need to specify the watched
// minutes or percentage exceeds the threshold, the content will be demoted in
// the recommendation result. * `promote_fresh_content`: cutoff days for fresh
// content promotion. Customers can specify if using content freshness
// promotion. If the content was published within the cutoff days, the content
// will be promoted in the recommendation result. Can only be set if
// SolutionType is SOLUTION_TYPE_RECOMMENDATION.
type GoogleCloudDiscoveryengineV1ServingConfigMediaConfig struct {
	// ContentFreshnessCutoffDays: Specifies the content freshness used for
	// recommendation result. Contents will be demoted if contents were published
	// for more than content freshness cutoff days.
	ContentFreshnessCutoffDays int64 `json:"contentFreshnessCutoffDays,omitempty"`
	// ContentWatchedPercentageThreshold: Specifies the content watched percentage
	// threshold for demotion. Threshold value must be between [0, 1.0] inclusive.
	ContentWatchedPercentageThreshold float64 `json:"contentWatchedPercentageThreshold,omitempty"`
	// ContentWatchedSecondsThreshold: Specifies the content watched minutes
	// threshold for demotion.
	ContentWatchedSecondsThreshold float64 `json:"contentWatchedSecondsThreshold,omitempty"`
	// DemoteContentWatchedPastDays: Optional. Specifies the number of days to look
	// back for demoting watched content. If set to zero or unset, defaults to the
	// maximum of 365 days.
	DemoteContentWatchedPastDays int64 `json:"demoteContentWatchedPastDays,omitempty"`
	// DemotionEventType: Specifies the event type used for demoting recommendation
	// result. Currently supported values: * `view-item`: Item viewed. *
	// `media-play`: Start/resume watching a video, playing a song, etc. *
	// `media-complete`: Finished or stopped midway through a video, song, etc. If
	// unset, watch history demotion will not be applied. Content freshness
	// demotion will still be applied.
	DemotionEventType string `json:"demotionEventType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentFreshnessCutoffDays")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentFreshnessCutoffDays") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1SetUpDataConnectorMetadata: Metadata for
// DataConnectorService.SetUpDataConnector method.
type GoogleCloudDiscoveryengineV1SetUpDataConnectorMetadata struct {
}

// GoogleCloudDiscoveryengineV1SingleRegionKey: Metadata for single-regional
// CMEKs.
type GoogleCloudDiscoveryengineV1SingleRegionKey struct {
	// KmsKey: Required. Single-regional kms key resource name which will be used
	// to encrypt resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KmsKey") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KmsKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1SiteVerificationInfo: Verification information
// for target sites in advanced site search.
type GoogleCloudDiscoveryengineV1SiteVerificationInfo struct {
	// SiteVerificationState: Site verification state indicating the ownership and
	// validity.
	//
	// Possible values:
	//   "SITE_VERIFICATION_STATE_UNSPECIFIED" - Defaults to VERIFIED.
	//   "VERIFIED" - Site ownership verified.
	//   "UNVERIFIED" - Site ownership pending verification or verification failed.
	//   "EXEMPTED" - Site exempt from verification, e.g., a public website that
	// opens to all.
	SiteVerificationState string `json:"siteVerificationState,omitempty"`
	// VerifyTime: Latest site verification time.
	VerifyTime string `json:"verifyTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SiteVerificationState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SiteVerificationState") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Sitemap: A sitemap for the SiteSearchEngine.
type GoogleCloudDiscoveryengineV1Sitemap struct {
	// CreateTime: Output only. The sitemap's creation time.
	CreateTime string `json:"createTime,omitempty"`
	// Name: Output only. The fully qualified resource name of the sitemap.
	// `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine/sitemaps/
	// *` The `sitemap_id` suffix is system-generated.
	Name string `json:"name,omitempty"`
	// Uri: Public URI for the sitemap, e.g. `www.example.com/sitemap.xml`.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1TargetSite: A target site for the
// SiteSearchEngine.
type GoogleCloudDiscoveryengineV1TargetSite struct {
	// ExactMatch: Immutable. If set to false, a uri_pattern is generated to
	// include all pages whose address contains the provided_uri_pattern. If set to
	// true, an uri_pattern is generated to try to be an exact match of the
	// provided_uri_pattern or just the specific page if the provided_uri_pattern
	// is a specific one. provided_uri_pattern is always normalized to generate the
	// URI pattern to be used by the search engine.
	ExactMatch bool `json:"exactMatch,omitempty"`
	// FailureReason: Output only. Failure reason.
	FailureReason *GoogleCloudDiscoveryengineV1TargetSiteFailureReason `json:"failureReason,omitempty"`
	// GeneratedUriPattern: Output only. This is system-generated based on the
	// provided_uri_pattern.
	GeneratedUriPattern string `json:"generatedUriPattern,omitempty"`
	// IndexingStatus: Output only. Indexing status.
	//
	// Possible values:
	//   "INDEXING_STATUS_UNSPECIFIED" - Defaults to SUCCEEDED.
	//   "PENDING" - The target site is in the update queue and will be picked up
	// by indexing pipeline.
	//   "FAILED" - The target site fails to be indexed.
	//   "SUCCEEDED" - The target site has been indexed.
	//   "DELETING" - The previously indexed target site has been marked to be
	// deleted. This is a transitioning state which will resulted in either: 1.
	// target site deleted if unindexing is successful; 2. state reverts to
	// SUCCEEDED if the unindexing fails.
	//   "CANCELLABLE" - The target site change is pending but cancellable.
	//   "CANCELLED" - The target site change is cancelled.
	IndexingStatus string `json:"indexingStatus,omitempty"`
	// Name: Output only. The fully qualified resource name of the target site.
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/siteSearchEngine/targetSites/{target_site}` The
	// `target_site_id` is system-generated.
	Name string `json:"name,omitempty"`
	// ProvidedUriPattern: Required. Input only. The user provided URI pattern from
	// which the `generated_uri_pattern` is generated.
	ProvidedUriPattern string `json:"providedUriPattern,omitempty"`
	// RootDomainUri: Output only. Root domain of the provided_uri_pattern.
	RootDomainUri string `json:"rootDomainUri,omitempty"`
	// SiteVerificationInfo: Output only. Site ownership and validity verification
	// status.
	SiteVerificationInfo *GoogleCloudDiscoveryengineV1SiteVerificationInfo `json:"siteVerificationInfo,omitempty"`
	// Type: The type of the target site, e.g., whether the site is to be included
	// or excluded.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - This value is unused. In this case, server behavior
	// defaults to Type.INCLUDE.
	//   "INCLUDE" - Include the target site.
	//   "EXCLUDE" - Exclude the target site.
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The target site's last updated time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1TargetSiteFailureReason: Site search indexing
// failure reasons.
type GoogleCloudDiscoveryengineV1TargetSiteFailureReason struct {
	// QuotaFailure: Failed due to insufficient quota.
	QuotaFailure *GoogleCloudDiscoveryengineV1TargetSiteFailureReasonQuotaFailure `json:"quotaFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuotaFailure") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuotaFailure") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1TargetSiteFailureReasonQuotaFailure: Failed due
// to insufficient quota.
type GoogleCloudDiscoveryengineV1TargetSiteFailureReasonQuotaFailure struct {
	// TotalRequiredQuota: This number is an estimation on how much total quota
	// this project needs to successfully complete indexing.
	TotalRequiredQuota int64 `json:"totalRequiredQuota,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TotalRequiredQuota") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TotalRequiredQuota") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1Tenant: Tenant information for a connector
// source. This includes some of the same information stored in the Credential
// message, but is limited to only what is needed to provide a list of
// accessible tenants to the user.
type GoogleCloudDiscoveryengineV1Tenant struct {
	// DisplayName: Optional display name for the tenant, e.g. "My Slack Team".
	DisplayName string `json:"displayName,omitempty"`
	// Id: The tenant's instance ID. Examples: Jira
	// ("8594f221-9797-5f78-1fa4-485e198d7cd0"), Slack ("T123456").
	Id string `json:"id,omitempty"`
	// Uri: The URI of the tenant, if applicable. For example, the URI of a Jira
	// instance is https://my-jira-instance.atlassian.net, and a Slack tenant does
	// not have a URI.
	Uri string `json:"uri,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 GoogleCloudDiscoveryengineV1Tenant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1Tenant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1TrainCustomModelMetadata: Metadata related to
// the progress of the TrainCustomModel operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1TrainCustomModelMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1TrainCustomModelResponse: Response of the
// TrainCustomModelRequest. This message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1TrainCustomModelResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1ImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the data.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// Metrics: The metrics of the trained model.
	Metrics map[string]float64 `json:"metrics,omitempty"`
	// ModelName: Fully qualified name of the CustomTuningModel.
	ModelName string `json:"modelName,omitempty"`
	// ModelStatus: The trained model status. Possible values are: * **bad-data**:
	// The training data quality is bad. * **no-improvement**: Tuning didn't
	// improve performance. Won't deploy. * **in-progress**: Model training job
	// creation is in progress. * **training**: Model is actively training. *
	// **evaluating**: The model is evaluating trained metrics. * **indexing**: The
	// model trained metrics are indexing. * **ready**: The model is ready for
	// serving.
	ModelStatus string `json:"modelStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1UpdateCmekConfigMetadata: Metadata related to
// the progress of the CmekConfigService.UpdateCmekConfig operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1UpdateCmekConfigMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1UpdateSchemaMetadata: Metadata for UpdateSchema
// LRO.
type GoogleCloudDiscoveryengineV1UpdateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1UpdateTargetSiteMetadata: Metadata related to
// the progress of the SiteSearchEngineService.UpdateTargetSite operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1UpdateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1UserLicense: User License information assigned
// by the admin.
type GoogleCloudDiscoveryengineV1UserLicense struct {
	// CreateTime: Output only. User created timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// LastLoginTime: Output only. User last logged in time. If the user has not
	// logged in yet, this field will be empty.
	LastLoginTime string `json:"lastLoginTime,omitempty"`
	// LicenseAssignmentState: Output only. License assignment state of the user.
	// If the user is assigned with a license config, the user login will be
	// assigned with the license; If the user's license assignment state is
	// unassigned or unspecified, no license config will be associated to the user;
	//
	// Possible values:
	//   "LICENSE_ASSIGNMENT_STATE_UNSPECIFIED" - Default value.
	//   "ASSIGNED" - License assigned to the user.
	//   "UNASSIGNED" - No license assigned to the user. Deprecated, translated to
	// NO_LICENSE.
	//   "NO_LICENSE" - No license assigned to the user.
	//   "NO_LICENSE_ATTEMPTED_LOGIN" - User attempted to login but no license
	// assigned to the user. This state is only used for no user first time login
	// attempt but cannot get license assigned. Users already logged in but cannot
	// get license assigned will be assigned NO_LICENSE state(License could be
	// unassigned by admin).
	//   "BLOCKED" - User is blocked from assigning a license.
	LicenseAssignmentState string `json:"licenseAssignmentState,omitempty"`
	// LicenseConfig: Optional. The full resource name of the
	// Subscription(LicenseConfig) assigned to the user.
	LicenseConfig string `json:"licenseConfig,omitempty"`
	// UpdateTime: Output only. User update timestamp.
	UpdateTime string `json:"updateTime,omitempty"`
	// UserPrincipal: Required. Immutable. The user principal of the User, could be
	// email address or other prinical identifier. This field is immutable. Admin
	// assign licenses based on the user principal.
	UserPrincipal string `json:"userPrincipal,omitempty"`
	// UserProfile: Optional. The user profile. We user user full name(First name +
	// Last name) as user profile.
	UserProfile string `json:"userProfile,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1UserStore: Configures metadata that is used for
// End User entities.
type GoogleCloudDiscoveryengineV1UserStore struct {
	// DefaultLicenseConfig: Optional. The default subscription LicenseConfig for
	// the UserStore, if UserStore.enable_license_auto_register is true, new users
	// will automatically register under the default subscription. If default
	// LicenseConfig doesn't have remaining license seats left, new users will not
	// be assigned with license and will be blocked for Vertex AI Search features.
	// This is used if `license_assignment_tier_rules` is not configured.
	DefaultLicenseConfig string `json:"defaultLicenseConfig,omitempty"`
	// DisplayName: The display name of the User Store.
	DisplayName string `json:"displayName,omitempty"`
	// EnableExpiredLicenseAutoUpdate: Optional. Whether to enable license auto
	// update for users in this User Store. If true, users with expired licenses
	// will automatically be updated to use the default license config as long as
	// the default license config has seats left.
	EnableExpiredLicenseAutoUpdate bool `json:"enableExpiredLicenseAutoUpdate,omitempty"`
	// EnableLicenseAutoRegister: Optional. Whether to enable license auto register
	// for users in this User Store. If true, new users will automatically register
	// under the default license config as long as the default license config has
	// seats left.
	EnableLicenseAutoRegister bool `json:"enableLicenseAutoRegister,omitempty"`
	// Name: Immutable. The full resource name of the User Store, in the format of
	// `projects/{project}/locations/{location}/userStores/{user_store}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultLicenseConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLicenseConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1WorkspaceConfig: Config to store data store type
// configuration for workspace data
type GoogleCloudDiscoveryengineV1WorkspaceConfig struct {
	// DasherCustomerId: Obfuscated Dasher customer ID.
	DasherCustomerId string `json:"dasherCustomerId,omitempty"`
	// SuperAdminEmailAddress: Optional. The super admin email address for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminEmailAddress string `json:"superAdminEmailAddress,omitempty"`
	// SuperAdminServiceAccount: Optional. The super admin service account for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminServiceAccount string `json:"superAdminServiceAccount,omitempty"`
	// Type: The Google Workspace data source.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Defaults to an unspecified Workspace type.
	//   "GOOGLE_DRIVE" - Workspace Data Store contains Drive data
	//   "GOOGLE_MAIL" - Workspace Data Store contains Mail data
	//   "GOOGLE_SITES" - Workspace Data Store contains Sites data
	//   "GOOGLE_CALENDAR" - Workspace Data Store contains Calendar data
	//   "GOOGLE_CHAT" - Workspace Data Store contains Chat data
	//   "GOOGLE_GROUPS" - Workspace Data Store contains Groups data
	//   "GOOGLE_KEEP" - Workspace Data Store contains Keep data
	//   "GOOGLE_PEOPLE" - Workspace Data Store contains People data
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DasherCustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DasherCustomerId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAclConfig: Access Control Configuration.
type GoogleCloudDiscoveryengineV1alphaAclConfig struct {
	// IdpConfig: Identity provider config.
	IdpConfig *GoogleCloudDiscoveryengineV1alphaIdpConfig `json:"idpConfig,omitempty"`
	// Name: Immutable. The full resource name of the acl configuration. Format:
	// `projects/{project}/locations/{location}/aclConfig`. This field must be a
	// UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdpConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenRequest: Request message
// for the DataConnectorService.AcquireAccessToken method.
type GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenResponse: Response
// message for the DataConnectorService.AcquireAccessToken method.
type GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenResponse struct {
	// AccessToken: The created access token.
	AccessToken string `json:"accessToken,omitempty"`
	// RefreshTokenInfo: Info about the stored refresh token used to create the
	// access token.
	RefreshTokenInfo *GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo `json:"refreshTokenInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AccessToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessToken") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaActionConfig: Informations to support
// actions on the connector.
type GoogleCloudDiscoveryengineV1alphaActionConfig struct {
	// ActionParams: Optional. Action parameters in structured json format.
	ActionParams googleapi.RawMessage `json:"actionParams,omitempty"`
	// IsActionConfigured: Output only. The connector contains the necessary
	// parameters and is configured to support actions.
	IsActionConfigured bool `json:"isActionConfigured,omitempty"`
	// JsonActionParams: Optional. Action parameters in json string format.
	JsonActionParams string `json:"jsonActionParams,omitempty"`
	// ServiceName: Optional. The Service Directory resource name
	// (projects/*/locations/*/namespaces/*/services/*) representing a VPC network
	// endpoint used to connect to the data source's `instance_uri`, defined in
	// DataConnector.params. Required when VPC Service Controls are enabled.
	ServiceName string `json:"serviceName,omitempty"`
	// UseStaticSecrets: Optional. Whether to use static secrets for the connector.
	// If true, the secrets provided in the action_params will be ignored.
	UseStaticSecrets bool `json:"useStaticSecrets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActionParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActionParams") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest: Request
// message for CompletionService.AdvancedCompleteQuery method. .
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest struct {
	// BoostSpec: Optional. Specification to boost suggestions matching the
	// condition.
	BoostSpec *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpec `json:"boostSpec,omitempty"`
	// ExperimentIds: Optional. Experiment ids for this request.
	ExperimentIds []string `json:"experimentIds,omitempty"`
	// IncludeTailSuggestions: Indicates if tail suggestions should be returned if
	// there are no suggestions that match the full query. Even if set to true, if
	// there are suggestions that match the full query, those are returned and no
	// tail suggestions are returned.
	IncludeTailSuggestions bool `json:"includeTailSuggestions,omitempty"`
	// Query: Required. The typeahead input used to fetch suggestions. Maximum
	// length is 128 characters. The query can not be empty for most of the
	// suggestion types. If it is empty, an `INVALID_ARGUMENT` error is returned.
	// The exception is when the suggestion_types contains only the type
	// `RECENT_SEARCH`, the query can be an empty string. The is called "zero
	// prefix" feature, which returns user's recently searched queries given the
	// empty query.
	Query string `json:"query,omitempty"`
	// QueryModel: Specifies the autocomplete query model, which only applies to
	// the QUERY SuggestionType. This overrides any model specified in the
	// Configuration > Autocomplete section of the Cloud console. Currently
	// supported values: * `document` - Using suggestions generated from
	// user-imported documents. * `search-history` - Using suggestions generated
	// from the past history of SearchService.Search API calls. Do not use it when
	// there is no traffic for Search API. * `user-event` - Using suggestions
	// generated from user-imported search events. * `document-completable` - Using
	// suggestions taken directly from user-imported document fields marked as
	// completable. Default values: * `document` is the default model for regular
	// dataStores. * `search-history` is the default model for site search
	// dataStores.
	QueryModel string `json:"queryModel,omitempty"`
	// SuggestionTypeSpecs: Optional. Specification of each suggestion type.
	SuggestionTypeSpecs []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestSuggestionTypeSpec `json:"suggestionTypeSpecs,omitempty"`
	// SuggestionTypes: Optional. Suggestion types to return. If empty or
	// unspecified, query suggestions are returned. Only one suggestion type is
	// supported at the moment.
	//
	// Possible values:
	//   "SUGGESTION_TYPE_UNSPECIFIED" - Default value.
	//   "QUERY" - Returns query suggestions.
	//   "PEOPLE" - Returns people suggestions.
	//   "CONTENT" - Returns content suggestions.
	//   "RECENT_SEARCH" - Returns recent search suggestions.
	//   "GOOGLE_WORKSPACE" - Returns Google Workspace suggestions.
	SuggestionTypes []string `json:"suggestionTypes,omitempty"`
	// UserInfo: Optional. Information about the end user. This should be the same
	// identifier information as UserEvent.user_info and SearchRequest.user_info.
	UserInfo *GoogleCloudDiscoveryengineV1alphaUserInfo `json:"userInfo,omitempty"`
	// UserPseudoId: A unique identifier for tracking visitors. For example, this
	// could be implemented with an HTTP cookie, which should be able to uniquely
	// identify a visitor on a single device. This unique identifier should not
	// change if the visitor logs in or out of the website. This field should NOT
	// have a fixed value such as `unknown_visitor`. This should be the same
	// identifier as UserEvent.user_pseudo_id and SearchRequest.user_pseudo_id. The
	// field must be a UTF-8 encoded string with a length limit of 128
	UserPseudoId string `json:"userPseudoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpec:
// Specification to boost suggestions based on the condtion of the suggestion.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpec struct {
	// ConditionBoostSpecs: Condition boost specifications. If a suggestion matches
	// multiple conditions in the specifications, boost values from these
	// specifications are all applied and combined in a non-linear way. Maximum
	// number of specifications is 20. Note: Currently only support language
	// condition boost.
	ConditionBoostSpecs []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpecConditionBoostSpec `json:"conditionBoostSpecs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConditionBoostSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConditionBoostSpecs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpecConditi
// onBoostSpec: Boost applies to suggestions which match a condition.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestBoostSpecConditionBoostSpec struct {
	// Boost: Strength of the boost, which should be in [-1, 1]. Negative boost
	// means demotion. Default is 0.0. Setting to 1.0 gives the suggestions a big
	// promotion. However, it does not necessarily mean that the top result will be
	// a boosted suggestion. Setting to -1.0 gives the suggestions a big demotion.
	// However, other suggestions that are relevant might still be shown. Setting
	// to 0.0 means no boost applied. The boosting condition is ignored.
	Boost float64 `json:"boost,omitempty"`
	// Condition: An expression which specifies a boost condition. The syntax is
	// the same as filter expression syntax
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax).
	// Currently, the only supported condition is a list of BCP-47 lang codes.
	// Example: * To boost suggestions in languages `en` or `fr`: `(lang_code:
	// ANY("en", "fr"))`
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestSuggestionTypeSp
// ec: Specification of each suggestion type.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequestSuggestionTypeSpec struct {
	// MaxSuggestions: Optional. Maximum number of suggestions to return for each
	// suggestion type.
	MaxSuggestions int64 `json:"maxSuggestions,omitempty"`
	// SuggestionType: Optional. Suggestion type.
	//
	// Possible values:
	//   "SUGGESTION_TYPE_UNSPECIFIED" - Default value.
	//   "QUERY" - Returns query suggestions.
	//   "PEOPLE" - Returns people suggestions.
	//   "CONTENT" - Returns content suggestions.
	//   "RECENT_SEARCH" - Returns recent search suggestions.
	//   "GOOGLE_WORKSPACE" - Returns Google Workspace suggestions.
	SuggestionType string `json:"suggestionType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxSuggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxSuggestions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse: Response
// message for CompletionService.AdvancedCompleteQuery method.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse struct {
	// ContentSuggestions: Results of the matched content suggestions. The result
	// list is ordered and the first result is the top suggestion.
	ContentSuggestions []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseContentSuggestion `json:"contentSuggestions,omitempty"`
	// PeopleSuggestions: Results of the matched people suggestions. The result
	// list is ordered and the first result is the top suggestion.
	PeopleSuggestions []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponsePersonSuggestion `json:"peopleSuggestions,omitempty"`
	// QuerySuggestions: Results of the matched query suggestions. The result list
	// is ordered and the first result is a top suggestion.
	QuerySuggestions []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseQuerySuggestion `json:"querySuggestions,omitempty"`
	// RecentSearchSuggestions: Results of the matched "recent search" suggestions.
	// The result list is ordered and the first result is the top suggestion.
	RecentSearchSuggestions []*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseRecentSearchSuggestion `json:"recentSearchSuggestions,omitempty"`
	// TailMatchTriggered: True if the returned suggestions are all tail
	// suggestions. For tail matching to be triggered, include_tail_suggestions in
	// the request must be true and there must be no suggestions that match the
	// full query.
	TailMatchTriggered bool `json:"tailMatchTriggered,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ContentSuggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentSuggestions") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseContentSuggesti
// on: Suggestions as content.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseContentSuggestion struct {
	// ContentType: The type of the content suggestion.
	//
	// Possible values:
	//   "CONTENT_TYPE_UNSPECIFIED" - Default value.
	//   "GOOGLE_WORKSPACE" - The suggestion is from a Google Workspace source.
	//   "THIRD_PARTY" - The suggestion is from a third party source.
	ContentType string `json:"contentType,omitempty"`
	// DataStore: The name of the dataStore that this suggestion belongs to.
	DataStore string `json:"dataStore,omitempty"`
	// DestinationUri: The destination uri of the content suggestion.
	DestinationUri string `json:"destinationUri,omitempty"`
	// Document: The document data snippet in the suggestion. Only a subset of
	// fields will be populated.
	Document *GoogleCloudDiscoveryengineV1alphaDocument `json:"document,omitempty"`
	// IconUri: The icon uri of the content suggestion.
	IconUri string `json:"iconUri,omitempty"`
	// Score: The score of each suggestion. The score is in the range of [0, 1].
	Score float64 `json:"score,omitempty"`
	// Suggestion: The suggestion for the query.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponsePersonSuggestio
// n: Suggestions as people.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponsePersonSuggestion struct {
	// DataStore: The name of the dataStore that this suggestion belongs to.
	DataStore string `json:"dataStore,omitempty"`
	// DestinationUri: The destination uri of the person suggestion.
	DestinationUri string `json:"destinationUri,omitempty"`
	// DisplayPhotoUri: The photo uri of the person suggestion.
	DisplayPhotoUri string `json:"displayPhotoUri,omitempty"`
	// Document: The document data snippet in the suggestion. Only a subset of
	// fields is populated.
	Document *GoogleCloudDiscoveryengineV1alphaDocument `json:"document,omitempty"`
	// PersonType: The type of the person.
	//
	// Possible values:
	//   "PERSON_TYPE_UNSPECIFIED" - Default value.
	//   "CLOUD_IDENTITY" - The suggestion is from a GOOGLE_IDENTITY source.
	//   "THIRD_PARTY_IDENTITY" - The suggestion is from a THIRD_PARTY_IDENTITY
	// source.
	PersonType string `json:"personType,omitempty"`
	// Score: The score of each suggestion. The score is in the range of [0, 1].
	Score float64 `json:"score,omitempty"`
	// Suggestion: The suggestion for the query.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseQuerySuggestion
// : Suggestions as search queries.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseQuerySuggestion struct {
	// CompletableFieldPaths: The unique document field paths that serve as the
	// source of this suggestion if it was generated from completable fields. This
	// field is only populated for the document-completable model.
	CompletableFieldPaths []string `json:"completableFieldPaths,omitempty"`
	// DataStore: The name of the dataStore that this suggestion belongs to.
	DataStore []string `json:"dataStore,omitempty"`
	// Score: The score of each suggestion. The score is in the range of [0, 1].
	Score float64 `json:"score,omitempty"`
	// Suggestion: The suggestion for the query.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletableFieldPaths") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletableFieldPaths") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseRecentSearchSug
// gestion: Suggestions from recent search history.
type GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponseRecentSearchSuggestion struct {
	// RecentSearchTime: The time when this recent rearch happened.
	RecentSearchTime string `json:"recentSearchTime,omitempty"`
	// Score: The score of each suggestion. The score is in the range of [0, 1].
	Score float64 `json:"score,omitempty"`
	// Suggestion: The suggestion for the query.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RecentSearchTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RecentSearchTime") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAdvancedSiteSearchConfig: Configuration
// data for advance site search.
type GoogleCloudDiscoveryengineV1alphaAdvancedSiteSearchConfig struct {
	// DisableAutomaticRefresh: If set true, automatic refresh is disabled for the
	// DataStore.
	DisableAutomaticRefresh bool `json:"disableAutomaticRefresh,omitempty"`
	// DisableInitialIndex: If set true, initial indexing is disabled for the
	// DataStore.
	DisableInitialIndex bool `json:"disableInitialIndex,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAlertPolicyConfig: The connector level
// alert config.
type GoogleCloudDiscoveryengineV1alphaAlertPolicyConfig struct {
	// AlertEnrollments: Optional. The enrollment states of each alert.
	AlertEnrollments []*GoogleCloudDiscoveryengineV1alphaAlertPolicyConfigAlertEnrollment `json:"alertEnrollments,omitempty"`
	// AlertPolicyName: Immutable. The fully qualified resource name of the
	// AlertPolicy.
	AlertPolicyName string `json:"alertPolicyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertEnrollments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertEnrollments") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAlertPolicyConfigAlertEnrollment: The alert
// enrollment status.
type GoogleCloudDiscoveryengineV1alphaAlertPolicyConfigAlertEnrollment struct {
	// AlertId: Immutable. The id of an alert.
	AlertId string `json:"alertId,omitempty"`
	// EnrollState: Required. The enrollment status of a customer.
	//
	// Possible values:
	//   "ENROLL_STATES_UNSPECIFIED" - Default value. Used for customers who have
	// not responded to the alert policy.
	//   "ENROLLED" - Customer is enrolled in this policy.
	//   "DECLINED" - Customer declined this policy.
	EnrollState string `json:"enrollState,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfig: The resource
// level alert config. Used in: * UserLicense * EngineUserData The
// AlertPolicyConfig in data connector is of same usage. No easy way to
// migrate.
type GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfig struct {
	// AlertEnrollments: Optional. The enrollment state of each alert.
	AlertEnrollments []*GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfigAlertEnrollment `json:"alertEnrollments,omitempty"`
	// AlertPolicy: Immutable. The fully qualified resource name of the
	// AlertPolicy.
	AlertPolicy string `json:"alertPolicy,omitempty"`
	// ContactDetails: Optional. The contact details for each alert policy.
	ContactDetails []*GoogleCloudDiscoveryengineV1alphaContactDetails `json:"contactDetails,omitempty"`
	// LanguageCode: Optional. The language code used for notifications
	LanguageCode string `json:"languageCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertEnrollments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertEnrollments") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfigAlertEnrollment:
// The alert enrollment status.
type GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfigAlertEnrollment struct {
	// AlertId: Immutable. The id of an alert.
	AlertId string `json:"alertId,omitempty"`
	// EnrollState: Required. The enrollment status of a customer.
	//
	// Possible values:
	//   "ENROLL_STATE_UNSPECIFIED" - Default value. Used for customers who have
	// not responded to the alert policy.
	//   "ENROLLED" - Customer is enrolled in this policy.
	//   "DECLINED" - Customer declined this policy.
	EnrollState string `json:"enrollState,omitempty"`
	// NotificationParams: Optional. Parameters used to instantiate a notification.
	// Used for notifications that are triggered when registered. Not stored. *
	// Gemini Business welcome emails. * Gemini Business user invitation emails.
	NotificationParams map[string]string `json:"notificationParams,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlertId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAlloyDbSource: AlloyDB source import data
// from.
type GoogleCloudDiscoveryengineV1alphaAlloyDbSource struct {
	// ClusterId: Required. The AlloyDB cluster to copy the data from with a length
	// limit of 256 characters.
	ClusterId string `json:"clusterId,omitempty"`
	// DatabaseId: Required. The AlloyDB database to copy the data from with a
	// length limit of 256 characters.
	DatabaseId string `json:"databaseId,omitempty"`
	// GcsStagingDir: Intermediate Cloud Storage directory used for the import with
	// a length limit of 2,000 characters. Can be specified if one wants to have
	// the AlloyDB export to a specific Cloud Storage directory. Ensure that the
	// AlloyDB service account has the necessary Cloud Storage Admin permissions to
	// access the specified Cloud Storage directory.
	GcsStagingDir string `json:"gcsStagingDir,omitempty"`
	// LocationId: Required. The AlloyDB location to copy the data from with a
	// length limit of 256 characters.
	LocationId string `json:"locationId,omitempty"`
	// ProjectId: The project ID that contains the AlloyDB source. Has a length
	// limit of 128 characters. If not specified, inherits the project ID from the
	// parent request.
	ProjectId string `json:"projectId,omitempty"`
	// TableId: Required. The AlloyDB table to copy the data from with a length
	// limit of 256 characters.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClusterId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClusterId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswer: Defines an answer.
type GoogleCloudDiscoveryengineV1alphaAnswer struct {
	// AnswerSkippedReasons: Additional answer-skipped reasons. This provides the
	// reason for ignored cases. If nothing is skipped, this field is not set.
	//
	// Possible values:
	//   "ANSWER_SKIPPED_REASON_UNSPECIFIED" - Default value. The answer skipped
	// reason is not specified.
	//   "ADVERSARIAL_QUERY_IGNORED" - The adversarial query ignored case.
	//   "NON_ANSWER_SEEKING_QUERY_IGNORED" - The non-answer seeking query ignored
	// case Google skips the answer if the query is chit chat.
	//   "OUT_OF_DOMAIN_QUERY_IGNORED" - The out-of-domain query ignored case.
	// Google skips the answer if there are no high-relevance search results.
	//   "POTENTIAL_POLICY_VIOLATION" - The potential policy violation case. Google
	// skips the answer if there is a potential policy violation detected. This
	// includes content that may be violent or toxic.
	//   "NO_RELEVANT_CONTENT" - The no relevant content case. Google skips the
	// answer if there is no relevant content in the retrieved search results.
	//   "JAIL_BREAKING_QUERY_IGNORED" - The jail-breaking query ignored case. For
	// example, "Reply in the tone of a competing company's CEO". Google skips the
	// answer if the query is classified as a jail-breaking query.
	//   "CUSTOMER_POLICY_VIOLATION" - The customer policy violation case. Google
	// skips the summary if there is a customer policy violation detected. The
	// policy is defined by the customer.
	//   "NON_ANSWER_SEEKING_QUERY_IGNORED_V2" - The non-answer seeking query
	// ignored case. Google skips the answer if the query doesn't have clear
	// intent.
	//   "LOW_GROUNDED_ANSWER" - The low-grounded answer case. Google skips the
	// answer if a well grounded answer was unable to be generated.
	//   "USER_DEFINED_CLASSIFICATION_QUERY_IGNORED" - The user defined query
	// classification ignored case. Google skips the answer if the query is
	// classified as a user defined query classification.
	//   "UNHELPFUL_ANSWER" - The unhelpful answer case. Google skips the answer if
	// the answer is not helpful. This can be due to a variety of factors,
	// including but not limited to: the query is not answerable, the answer is not
	// relevant to the query, or the answer is not well-formatted.
	AnswerSkippedReasons []string `json:"answerSkippedReasons,omitempty"`
	// AnswerText: The textual answer.
	AnswerText string `json:"answerText,omitempty"`
	// BlobAttachments: List of blob attachments in the answer.
	BlobAttachments []*GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachment `json:"blobAttachments,omitempty"`
	// Citations: Citations.
	Citations []*GoogleCloudDiscoveryengineV1alphaAnswerCitation `json:"citations,omitempty"`
	// CompleteTime: Output only. Answer completed timestamp.
	CompleteTime string `json:"completeTime,omitempty"`
	// CreateTime: Output only. Answer creation timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// GroundingScore: A score in the range of [0, 1] describing how grounded the
	// answer is by the reference chunks.
	GroundingScore float64 `json:"groundingScore,omitempty"`
	// GroundingSupports: Optional. Grounding supports.
	GroundingSupports []*GoogleCloudDiscoveryengineV1alphaAnswerGroundingSupport `json:"groundingSupports,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/{project}/locations/global/collections/{collection}/engines/{engine
	// }/sessions/*/answers/*`
	Name string `json:"name,omitempty"`
	// QueryUnderstandingInfo: Query understanding information.
	QueryUnderstandingInfo *GoogleCloudDiscoveryengineV1alphaAnswerQueryUnderstandingInfo `json:"queryUnderstandingInfo,omitempty"`
	// References: References.
	References []*GoogleCloudDiscoveryengineV1alphaAnswerReference `json:"references,omitempty"`
	// RelatedQuestions: Suggested related questions.
	RelatedQuestions []string `json:"relatedQuestions,omitempty"`
	// SafetyRatings: Optional. Safety ratings.
	SafetyRatings []*GoogleCloudDiscoveryengineV1alphaSafetyRating `json:"safetyRatings,omitempty"`
	// State: The state of the answer generation.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unknown.
	//   "IN_PROGRESS" - Answer generation is currently in progress.
	//   "FAILED" - Answer generation currently failed.
	//   "SUCCEEDED" - Answer generation has succeeded.
	//   "STREAMING" - Answer generation is currently in progress.
	State string `json:"state,omitempty"`
	// Steps: Answer generation steps.
	Steps []*GoogleCloudDiscoveryengineV1alphaAnswerStep `json:"steps,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AnswerSkippedReasons") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerSkippedReasons") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachment: Stores binarydata
// attached to text answer, e.g. image, video, audio, etc.
type GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachment struct {
	// AttributionType: Output only. The attribution type of the blob.
	//
	// Possible values:
	//   "ATTRIBUTION_TYPE_UNSPECIFIED" - Unspecified attribution type.
	//   "CORPUS" - The attachment data is from the corpus.
	//   "GENERATED" - The attachment data is generated by the model through code
	// generation.
	AttributionType string `json:"attributionType,omitempty"`
	// Data: Output only. The mime type and data of the blob.
	Data *GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachmentBlob `json:"data,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributionType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributionType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachmentBlob: The media type
// and data of the blob.
type GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachmentBlob struct {
	// Data: Output only. Raw bytes.
	Data string `json:"data,omitempty"`
	// MimeType: Output only. The media type (MIME type) of the generated or
	// retrieved data.
	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 GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachmentBlob) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaAnswerBlobAttachmentBlob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaAnswerCitation: Citation info for a
// segment.
type GoogleCloudDiscoveryengineV1alphaAnswerCitation struct {
	// EndIndex: End of the attributed segment, exclusive. Measured in bytes (UTF-8
	// unicode). If there are multi-byte characters,such as non-ASCII characters,
	// the index measurement is longer than the string length.
	EndIndex int64 `json:"endIndex,omitempty,string"`
	// Sources: Citation sources for the attributed segment.
	Sources []*GoogleCloudDiscoveryengineV1alphaAnswerCitationSource `json:"sources,omitempty"`
	// StartIndex: Index indicates the start of the segment, measured in bytes
	// (UTF-8 unicode). If there are multi-byte characters,such as non-ASCII
	// characters, the index measurement is longer than the string length.
	StartIndex int64 `json:"startIndex,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "EndIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndIndex") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpec: The specification for
// answer generation.
type GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpec struct {
	// UserDefinedClassifierSpec: Optional. The specification for user specified
	// classifier spec.
	UserDefinedClassifierSpec *GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpecUserDefinedClassifierSpec `json:"userDefinedClassifierSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserDefinedClassifierSpec")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserDefinedClassifierSpec") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpecUserDefinedClassifierSpe
// c: The specification for user defined classifier.
type GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpecUserDefinedClassifierSpec struct {
	// EnableUserDefinedClassifier: Optional. Whether or not to enable and include
	// user defined classifier.
	EnableUserDefinedClassifier bool `json:"enableUserDefinedClassifier,omitempty"`
	// ModelId: Optional. The model id to be used for the user defined classifier.
	ModelId string `json:"modelId,omitempty"`
	// Preamble: Optional. The preamble to be used for the user defined classifier.
	Preamble string `json:"preamble,omitempty"`
	// Seed: Optional. The seed value to be used for the user defined classifier.
	Seed int64 `json:"seed,omitempty"`
	// TaskMarker: Optional. The task marker to be used for the user defined
	// classifier.
	TaskMarker string `json:"taskMarker,omitempty"`
	// Temperature: Optional. The temperature value to be used for the user defined
	// classifier.
	Temperature float64 `json:"temperature,omitempty"`
	// TopK: Optional. The top-k value to be used for the user defined classifier.
	TopK int64 `json:"topK,omitempty,string"`
	// TopP: Optional. The top-p value to be used for the user defined classifier.
	TopP float64 `json:"topP,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableUserDefinedClassifier") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableUserDefinedClassifier") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerGroundingSupport: Grounding support
// for a claim in `answer_text`.
type GoogleCloudDiscoveryengineV1alphaAnswerGroundingSupport struct {
	// EndIndex: Required. End of the claim, exclusive.
	EndIndex int64 `json:"endIndex,omitempty,string"`
	// GroundingCheckRequired: Indicates that this claim required grounding check.
	// When the system decided this claim didn't require attribution/grounding
	// check, this field is set to false. In that case, no grounding check was done
	// for the claim and therefore `grounding_score`, `sources` is not returned.
	GroundingCheckRequired bool `json:"groundingCheckRequired,omitempty"`
	// GroundingScore: A score in the range of [0, 1] describing how grounded is a
	// specific claim by the references. Higher value means that the claim is
	// better supported by the reference chunks.
	GroundingScore float64 `json:"groundingScore,omitempty"`
	// Sources: Optional. Citation sources for the claim.
	Sources []*GoogleCloudDiscoveryengineV1alphaAnswerCitationSource `json:"sources,omitempty"`
	// StartIndex: Required. Index indicates the start of the claim, measured in
	// bytes (UTF-8 unicode).
	StartIndex int64 `json:"startIndex,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "EndIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndIndex") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest: Request message for
// ConversationalSearchService.AnswerQuery method.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest struct {
	// AnswerGenerationSpec: Answer generation specification.
	AnswerGenerationSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpec `json:"answerGenerationSpec,omitempty"`
	// AsynchronousMode: Deprecated: This field is deprecated. Streaming Answer API
	// will be supported. Asynchronous mode control. If enabled, the response will
	// be returned with answer/session resource name without final answer. The API
	// users need to do the polling to get the latest status of answer/session by
	// calling ConversationalSearchService.GetAnswer or
	// ConversationalSearchService.GetSession method.
	AsynchronousMode bool `json:"asynchronousMode,omitempty"`
	// EndUserSpec: Optional. End user specification.
	EndUserSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpec `json:"endUserSpec,omitempty"`
	// GroundingSpec: Optional. Grounding specification.
	GroundingSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestGroundingSpec `json:"groundingSpec,omitempty"`
	// Query: Required. Current user query.
	Query *GoogleCloudDiscoveryengineV1alphaQuery `json:"query,omitempty"`
	// QueryUnderstandingSpec: Query understanding specification.
	QueryUnderstandingSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpec `json:"queryUnderstandingSpec,omitempty"`
	// RelatedQuestionsSpec: Related questions specification.
	RelatedQuestionsSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestRelatedQuestionsSpec `json:"relatedQuestionsSpec,omitempty"`
	// SafetySpec: Model specification.
	SafetySpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpec `json:"safetySpec,omitempty"`
	// SearchSpec: Search specification.
	SearchSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpec `json:"searchSpec,omitempty"`
	// Session: The session resource name. Not required. When session field is not
	// set, the API is in sessionless mode. We support auto session mode: users can
	// use the wildcard symbol `-` as session ID. A new ID will be automatically
	// generated and assigned.
	Session string `json:"session,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// UserPseudoId: A unique identifier for tracking visitors. For example, this
	// could be implemented with an HTTP cookie, which should be able to uniquely
	// identify a visitor on a single device. This unique identifier should not
	// change if the visitor logs in or out of the website. This field should NOT
	// have a fixed value such as `unknown_visitor`. The field must be a UTF-8
	// encoded string with a length limit of 128 characters. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	UserPseudoId string `json:"userPseudoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AnswerGenerationSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerGenerationSpec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpec:
// Answer generation specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpec struct {
	// AnswerLanguageCode: Language code for Answer. Use language tags defined by
	// BCP47 (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This is an
	// experimental feature.
	AnswerLanguageCode string `json:"answerLanguageCode,omitempty"`
	// IgnoreAdversarialQuery: Specifies whether to filter out adversarial queries.
	// The default value is `false`. Google employs search-query classification to
	// detect adversarial queries. No answer is returned if the search query is
	// classified as an adversarial query. For example, a user might ask a question
	// regarding negative comments about the company or submit a query designed to
	// generate unsafe, policy-violating output. If this field is set to `true`, we
	// skip generating answers for adversarial queries and return fallback messages
	// instead.
	IgnoreAdversarialQuery bool `json:"ignoreAdversarialQuery,omitempty"`
	// IgnoreJailBreakingQuery: Optional. Specifies whether to filter out
	// jail-breaking queries. The default value is `false`. Google employs
	// search-query classification to detect jail-breaking queries. No summary is
	// returned if the search query is classified as a jail-breaking query. A user
	// might add instructions to the query to change the tone, style, language,
	// content of the answer, or ask the model to act as a different entity, e.g.
	// "Reply in the tone of a competing company's CEO". If this field is set to
	// `true`, we skip generating summaries for jail-breaking queries and return
	// fallback messages instead.
	IgnoreJailBreakingQuery bool `json:"ignoreJailBreakingQuery,omitempty"`
	// IgnoreLowRelevantContent: Specifies whether to filter out queries that have
	// low relevance. If this field is set to `false`, all search results are used
	// regardless of relevance to generate answers. If set to `true` or unset, the
	// behavior will be determined automatically by the service.
	IgnoreLowRelevantContent bool `json:"ignoreLowRelevantContent,omitempty"`
	// IgnoreNonAnswerSeekingQuery: Specifies whether to filter out queries that
	// are not answer-seeking. The default value is `false`. Google employs
	// search-query classification to detect answer-seeking queries. No answer is
	// returned if the search query is classified as a non-answer seeking query. If
	// this field is set to `true`, we skip generating answers for non-answer
	// seeking queries and return fallback messages instead.
	IgnoreNonAnswerSeekingQuery bool `json:"ignoreNonAnswerSeekingQuery,omitempty"`
	// IncludeCitations: Specifies whether to include citation metadata in the
	// answer. The default value is `false`.
	IncludeCitations bool `json:"includeCitations,omitempty"`
	// ModelSpec: Answer generation model specification.
	ModelSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecModelSpec `json:"modelSpec,omitempty"`
	// MultimodalSpec: Optional. Multimodal specification.
	MultimodalSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecMultimodalSpec `json:"multimodalSpec,omitempty"`
	// PromptSpec: Answer generation prompt specification.
	PromptSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecPromptSpec `json:"promptSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AnswerLanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerLanguageCode") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecModelS
// pec: Answer Generation Model specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecModelSpec struct {
	// ModelVersion: Model version. If not set, it will use the default stable
	// model. Allowed values are: stable, preview.
	ModelVersion string `json:"modelVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecMultim
// odalSpec: Multimodal specification: Will return an image from specified
// source. If multiple sources are specified, the pick is a quality based
// decision.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecMultimodalSpec struct {
	// ImageSource: Optional. Source of image returned in the answer.
	//
	// Possible values:
	//   "IMAGE_SOURCE_UNSPECIFIED" - Unspecified image source (multimodal feature
	// is disabled by default).
	//   "ALL_AVAILABLE_SOURCES" - Behavior when service determines the pick from
	// all available sources.
	//   "CORPUS_IMAGE_ONLY" - Includes image from corpus in the answer.
	//   "FIGURE_GENERATION_ONLY" - Triggers figure generation in the answer.
	ImageSource string `json:"imageSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecPrompt
// Spec: Answer generation prompt specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestAnswerGenerationSpecPromptSpec struct {
	// Preamble: Customized preamble.
	Preamble string `json:"preamble,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Preamble") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Preamble") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpecEndUserMetaData
// ChunkInfo: Chunk information.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpecEndUserMetaDataChunkInfo struct {
	// Content: Chunk textual content. It is limited to 8000 characters.
	Content string `json:"content,omitempty"`
	// DocumentMetadata: Metadata of the document from the current chunk.
	DocumentMetadata *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpecEndUserMetaDataChunkInfoDocumentMetadata `json:"documentMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpecEndUserMetaData
// ChunkInfoDocumentMetadata: Document metadata contains the information of the
// document of the current chunk.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestEndUserSpecEndUserMetaDataChunkInfoDocumentMetadata struct {
	// Title: Title of the document.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Title") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Title") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestGroundingSpec: Grounding
// specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestGroundingSpec struct {
	// FilteringLevel: Optional. Specifies whether to enable the filtering based on
	// grounding score and at what level.
	//
	// Possible values:
	//   "FILTERING_LEVEL_UNSPECIFIED" - Default is no filter
	//   "FILTERING_LEVEL_LOW" - Filter answers based on a low threshold.
	//   "FILTERING_LEVEL_HIGH" - Filter answers based on a high threshold.
	FilteringLevel string `json:"filteringLevel,omitempty"`
	// IncludeGroundingSupports: Optional. Specifies whether to include
	// grounding_supports in the answer. The default value is `false`. When this
	// field is set to `true`, returned answer will have `grounding_score` and will
	// contain GroundingSupports for each claim.
	IncludeGroundingSupports bool `json:"includeGroundingSupports,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FilteringLevel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FilteringLevel") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpec:
// Query understanding specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpec struct {
	// DisableSpellCorrection: Optional. Whether to disable spell correction. The
	// default value is `false`.
	DisableSpellCorrection bool `json:"disableSpellCorrection,omitempty"`
	// QueryClassificationSpec: Query classification specification.
	QueryClassificationSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpec `json:"queryClassificationSpec,omitempty"`
	// QueryRephraserSpec: Query rephraser specification.
	QueryRephraserSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryRephraserSpec `json:"queryRephraserSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableSpellCorrection") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableSpellCorrection") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQuer
// yClassificationSpec: Query classification specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryClassificationSpec struct {
	// Types: Enabled query classification types.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unspecified query classification type.
	//   "ADVERSARIAL_QUERY" - Adversarial query classification type.
	//   "NON_ANSWER_SEEKING_QUERY" - Non-answer-seeking query classification type,
	// for chit chat.
	//   "JAIL_BREAKING_QUERY" - Jail-breaking query classification type.
	//   "NON_ANSWER_SEEKING_QUERY_V2" - Non-answer-seeking query classification
	// type, for no clear intent.
	//   "USER_DEFINED_CLASSIFICATION_QUERY" - User defined query classification
	// type.
	Types []string `json:"types,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Types") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Types") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQuer
// yRephraserSpec: Query rephraser specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryRephraserSpec struct {
	// Disable: Disable query rephraser.
	Disable bool `json:"disable,omitempty"`
	// MaxRephraseSteps: Max rephrase steps. The max number is 5 steps. If not set
	// or set to < 1, it will be set to 1 by default.
	MaxRephraseSteps int64 `json:"maxRephraseSteps,omitempty"`
	// ModelSpec: Optional. Query Rephraser Model specification.
	ModelSpec *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryRephraserSpecModelSpec `json:"modelSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQuer
// yRephraserSpecModelSpec: Query Rephraser Model specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestQueryUnderstandingSpecQueryRephraserSpecModelSpec struct {
	// ModelType: Optional. Enabled query rephraser model type. If not set, it will
	// use LARGE by default.
	//
	// Possible values:
	//   "MODEL_TYPE_UNSPECIFIED" - Unspecified model type.
	//   "SMALL" - Small query rephraser model. Gemini 1.0 XS model.
	//   "LARGE" - Large query rephraser model. Gemini 1.0 Pro model.
	ModelType string `json:"modelType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestRelatedQuestionsSpec:
// Related questions specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestRelatedQuestionsSpec struct {
	// Enable: Enable related questions feature if true.
	Enable bool `json:"enable,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpec: Safety
// specification. There are two use cases: 1. when only safety_spec.enable is
// set, the BLOCK_LOW_AND_ABOVE threshold will be applied for all categories.
// 2. when safety_spec.enable is set and some safety_settings are set, only
// specified safety_settings are applied.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpec struct {
	// Enable: Enable the safety filtering on the answer response. It is false by
	// default.
	Enable bool `json:"enable,omitempty"`
	// SafetySettings: Optional. Safety settings. This settings are effective only
	// when the safety_spec.enable is true.
	SafetySettings []*GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpecSafetySetting `json:"safetySettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Enable") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Enable") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpecSafetySetting:
// Safety settings.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSafetySpecSafetySetting struct {
	// Category: Required. Harm category.
	//
	// Possible values:
	//   "HARM_CATEGORY_UNSPECIFIED" - The harm category is unspecified.
	//   "HARM_CATEGORY_HATE_SPEECH" - The harm category is hate speech.
	//   "HARM_CATEGORY_DANGEROUS_CONTENT" - The harm category is dangerous
	// content.
	//   "HARM_CATEGORY_HARASSMENT" - The harm category is harassment.
	//   "HARM_CATEGORY_SEXUALLY_EXPLICIT" - The harm category is sexually explicit
	// content.
	//   "HARM_CATEGORY_CIVIC_INTEGRITY" - The harm category is civic integrity.
	Category string `json:"category,omitempty"`
	// Threshold: Required. The harm block threshold.
	//
	// Possible values:
	//   "HARM_BLOCK_THRESHOLD_UNSPECIFIED" - Unspecified harm block threshold.
	//   "BLOCK_LOW_AND_ABOVE" - Block low threshold and above (i.e. block more).
	//   "BLOCK_MEDIUM_AND_ABOVE" - Block medium threshold and above.
	//   "BLOCK_ONLY_HIGH" - Block only high threshold (i.e. block less).
	//   "BLOCK_NONE" - Block none.
	//   "OFF" - Turn off the safety filter.
	Threshold string `json:"threshold,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Category") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Category") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpec: Search
// specification.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpec struct {
	// SearchParams: Search parameters.
	SearchParams *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchParams `json:"searchParams,omitempty"`
	// SearchResultList: Search result list.
	SearchResultList *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList `json:"searchResultList,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SearchParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SearchParams") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchParams:
// Search parameters.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchParams struct {
	// BoostSpec: Boost specification to boost certain documents in search results
	// which may affect the answer query response. For more information on
	// boosting, see Boosting (https://cloud.google.com/retail/docs/boosting#boost)
	BoostSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// CustomFineTuningSpec: Custom fine tuning configs.
	CustomFineTuningSpec *GoogleCloudDiscoveryengineV1alphaCustomFineTuningSpec `json:"customFineTuningSpec,omitempty"`
	// DataStoreSpecs: Specs defining dataStores to filter on in a search call and
	// configurations for those dataStores. This is only considered for engines
	// with multiple dataStores use case. For single dataStore within an engine,
	// they should use the specs at the top level.
	DataStoreSpecs []*GoogleCloudDiscoveryengineV1alphaSearchRequestDataStoreSpec `json:"dataStoreSpecs,omitempty"`
	// Filter: The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. Filter expression is case-sensitive. This will be used to filter
	// search results which may affect the Answer response. If this field is
	// unrecognizable, an `INVALID_ARGUMENT` is returned. Filtering in Vertex AI
	// Search is done by mapping the LHS filter key to a key property defined in
	// the Vertex AI Search backend -- this mapping is defined by the customer in
	// their schema. For example a media customers might have a field 'name' in
	// their schema. In this case the filter would look like this: filter -->
	// name:'ANY("king kong")' For more information about filtering including
	// syntax and filter operators, see Filter
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// MaxReturnResults: Number of search results to return. The default value is
	// 10.
	MaxReturnResults int64 `json:"maxReturnResults,omitempty"`
	// NaturalLanguageQueryUnderstandingSpec: Optional. Specification to enable
	// natural language understanding capabilities for search requests.
	NaturalLanguageQueryUnderstandingSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestNaturalLanguageQueryUnderstandingSpec `json:"naturalLanguageQueryUnderstandingSpec,omitempty"`
	// OrderBy: The order in which documents are returned. Documents can be ordered
	// by a field in an Document object. Leave it unset if ordered by relevance.
	// `order_by` expression is case-sensitive. For more information on ordering,
	// see Ordering (https://cloud.google.com/retail/docs/filter-and-order#order)
	// If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
	OrderBy string `json:"orderBy,omitempty"`
	// SearchResultMode: Specifies the search result mode. If unspecified, the
	// search result mode defaults to `DOCUMENTS`. See parse and chunk documents
	// (https://cloud.google.com/generative-ai-app-builder/docs/parse-chunk-documents)
	//
	// Possible values:
	//   "SEARCH_RESULT_MODE_UNSPECIFIED" - Default value.
	//   "DOCUMENTS" - Returns documents in the search result.
	//   "CHUNKS" - Returns chunks in the search result. Only available if the
	// DocumentProcessingConfig.chunking_config is specified.
	SearchResultMode string `json:"searchResultMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResult: Search result.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResult struct {
	// ChunkInfo: Chunk information.
	ChunkInfo *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultChunkInfo `json:"chunkInfo,omitempty"`
	// UnstructuredDocumentInfo: Unstructured document information.
	UnstructuredDocumentInfo *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfo `json:"unstructuredDocumentInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultChunkInfo: Chunk information.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultChunkInfo struct {
	// Chunk: Chunk resource name.
	Chunk string `json:"chunk,omitempty"`
	// Content: Chunk textual content.
	Content string `json:"content,omitempty"`
	// DocumentMetadata: Metadata of the document from the current chunk.
	DocumentMetadata *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultChunkInfoDocumentMetadata `json:"documentMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Chunk") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Chunk") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultChunkInfoDocumentMetadata: Document metadata contains the
// information of the document of the current chunk.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultChunkInfoDocumentMetadata struct {
	// Title: Title of the document.
	Title string `json:"title,omitempty"`
	// Uri: Uri of the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Title") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Title") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultUnstructuredDocumentInfo: Unstructured document information.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfo struct {
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// DocumentContexts: List of document contexts. The content will be used for
	// Answer Generation. This is supposed to be the main content of the document
	// that can be long and comprehensive.
	DocumentContexts []*GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoDocumentContext `json:"documentContexts,omitempty"`
	// ExtractiveAnswers: Deprecated: This field is deprecated and will have no
	// effect on the Answer generation. Please use document_contexts and
	// extractive_segments fields. List of extractive answers.
	ExtractiveAnswers []*GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoExtractiveAnswer `json:"extractiveAnswers,omitempty"`
	// ExtractiveSegments: List of extractive segments.
	ExtractiveSegments []*GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoExtractiveSegment `json:"extractiveSegments,omitempty"`
	// Title: Title.
	Title string `json:"title,omitempty"`
	// Uri: URI for the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultUnstructuredDocumentInfoDocumentContext: Document context.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoDocumentContext struct {
	// Content: Document content to be used for answer generation.
	Content string `json:"content,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultUnstructuredDocumentInfoExtractiveAnswer: Extractive answer.
// Guide
// (https://cloud.google.com/generative-ai-app-builder/docs/snippets#get-answers)
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoExtractiveAnswer struct {
	// Content: Extractive answer content.
	Content string `json:"content,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultList
// SearchResultUnstructuredDocumentInfoExtractiveSegment: Extractive segment.
// Guide
// (https://cloud.google.com/generative-ai-app-builder/docs/snippets#extractive-segments)
// Answer generation will only use it if document_contexts is empty. This is
// supposed to be shorter snippets.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryRequestSearchSpecSearchResultListSearchResultUnstructuredDocumentInfoExtractiveSegment struct {
	// Content: Extractive segment content.
	Content string `json:"content,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse: Response message for
// ConversationalSearchService.AnswerQuery method.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse struct {
	// Answer: Answer resource object. If
	// AnswerQueryRequest.QueryUnderstandingSpec.QueryRephraserSpec.max_rephrase_ste
	// ps is greater than 1, use Answer.name to fetch answer information using
	// ConversationalSearchService.GetAnswer API.
	Answer *GoogleCloudDiscoveryengineV1alphaAnswer `json:"answer,omitempty"`
	// AnswerQueryToken: A global unique ID used for logging.
	AnswerQueryToken string `json:"answerQueryToken,omitempty"`
	// Session: Session resource object. It will be only available when session
	// field is set and valid in the AnswerQueryRequest request.
	Session *GoogleCloudDiscoveryengineV1alphaSession `json:"session,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Answer") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Answer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerQueryUnderstandingInfoQueryClassificat
// ionInfo: Query classification information.
type GoogleCloudDiscoveryengineV1alphaAnswerQueryUnderstandingInfoQueryClassificationInfo struct {
	// Positive: Classification output.
	Positive bool `json:"positive,omitempty"`
	// Type: Query classification type.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unspecified query classification type.
	//   "ADVERSARIAL_QUERY" - Adversarial query classification type.
	//   "NON_ANSWER_SEEKING_QUERY" - Non-answer-seeking query classification type,
	// for chit chat.
	//   "JAIL_BREAKING_QUERY" - Jail-breaking query classification type.
	//   "NON_ANSWER_SEEKING_QUERY_V2" - Non-answer-seeking query classification
	// type, for no clear intent.
	//   "USER_DEFINED_CLASSIFICATION_QUERY" - User defined query classification
	// type.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Positive") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Positive") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerReference: Reference.
type GoogleCloudDiscoveryengineV1alphaAnswerReference struct {
	// ChunkInfo: Chunk information.
	ChunkInfo *GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfo `json:"chunkInfo,omitempty"`
	// StructuredDocumentInfo: Structured document information.
	StructuredDocumentInfo *GoogleCloudDiscoveryengineV1alphaAnswerReferenceStructuredDocumentInfo `json:"structuredDocumentInfo,omitempty"`
	// UnstructuredDocumentInfo: Unstructured document information.
	UnstructuredDocumentInfo *GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfo `json:"unstructuredDocumentInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfo: Chunk
// information.
type GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfo struct {
	// BlobAttachmentIndexes: Output only. Stores indexes of blobattachments linked
	// to this chunk.
	BlobAttachmentIndexes googleapi.Int64s `json:"blobAttachmentIndexes,omitempty"`
	// Chunk: Chunk resource name.
	Chunk string `json:"chunk,omitempty"`
	// Content: Chunk textual content.
	Content string `json:"content,omitempty"`
	// DocumentMetadata: Document metadata.
	DocumentMetadata *GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfoDocumentMetadata `json:"documentMetadata,omitempty"`
	// RelevanceScore: The relevance of the chunk for a given query. Values range
	// from 0.0 (completely irrelevant) to 1.0 (completely relevant). This value is
	// for informational purpose only. It may change for the same query and chunk
	// at any time due to a model retraining or change in implementation.
	RelevanceScore float64 `json:"relevanceScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfoDocumentMetadata:
// Document metadata.
type GoogleCloudDiscoveryengineV1alphaAnswerReferenceChunkInfoDocumentMetadata struct {
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// StructData: The structured JSON metadata for the document. It is populated
	// from the struct data from the Chunk in search result.
	StructData googleapi.RawMessage `json:"structData,omitempty"`
	// Title: Title.
	Title string `json:"title,omitempty"`
	// Uri: URI for the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerReferenceStructuredDocumentInfo:
// Structured search information.
type GoogleCloudDiscoveryengineV1alphaAnswerReferenceStructuredDocumentInfo struct {
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// StructData: Structured search data.
	StructData googleapi.RawMessage `json:"structData,omitempty"`
	// Title: Output only. The title of the document.
	Title string `json:"title,omitempty"`
	// Uri: Output only. The URI of the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfo:
// Unstructured document information.
type GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfo struct {
	// ChunkContents: List of cited chunk contents derived from document content.
	ChunkContents []*GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfoChunkContent `json:"chunkContents,omitempty"`
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// StructData: The structured JSON metadata for the document. It is populated
	// from the struct data from the Chunk in search result.
	StructData googleapi.RawMessage `json:"structData,omitempty"`
	// Title: Title.
	Title string `json:"title,omitempty"`
	// Uri: URI for the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkContents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkContents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfoChunk
// Content: Chunk content.
type GoogleCloudDiscoveryengineV1alphaAnswerReferenceUnstructuredDocumentInfoChunkContent struct {
	// BlobAttachmentIndexes: Output only. Stores indexes of blobattachments linked
	// to this chunk.
	BlobAttachmentIndexes googleapi.Int64s `json:"blobAttachmentIndexes,omitempty"`
	// Content: Chunk textual content.
	Content string `json:"content,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// RelevanceScore: The relevance of the chunk for a given query. Values range
	// from 0.0 (completely irrelevant) to 1.0 (completely relevant). This value is
	// for informational purpose only. It may change for the same query and chunk
	// at any time due to a model retraining or change in implementation.
	RelevanceScore float64 `json:"relevanceScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerStep: Step information.
type GoogleCloudDiscoveryengineV1alphaAnswerStep struct {
	// Actions: Actions.
	Actions []*GoogleCloudDiscoveryengineV1alphaAnswerStepAction `json:"actions,omitempty"`
	// Description: The description of the step.
	Description string `json:"description,omitempty"`
	// State: The state of the step.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unknown.
	//   "IN_PROGRESS" - Step is currently in progress.
	//   "FAILED" - Step currently failed.
	//   "SUCCEEDED" - Step has succeeded.
	State string `json:"state,omitempty"`
	// Thought: The thought of the step.
	Thought string `json:"thought,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 GoogleCloudDiscoveryengineV1alphaAnswerStep) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaAnswerStep
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaAnswerStepAction: Action.
type GoogleCloudDiscoveryengineV1alphaAnswerStepAction struct {
	// Observation: Observation.
	Observation *GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservation `json:"observation,omitempty"`
	// SearchAction: Search action.
	SearchAction *GoogleCloudDiscoveryengineV1alphaAnswerStepActionSearchAction `json:"searchAction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Observation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Observation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservation: Observation.
type GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservation struct {
	// SearchResults: Search results observed by the search action, it can be
	// snippets info or chunk info, depending on the citation type set by the user.
	SearchResults []*GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResult `json:"searchResults,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SearchResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SearchResults") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResult struct {
	// ChunkInfo: If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on,
	// populate chunk info.
	ChunkInfo []*GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultChunkInfo `json:"chunkInfo,omitempty"`
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// SnippetInfo: If citation_type is DOCUMENT_LEVEL_CITATION, populate document
	// level snippets.
	SnippetInfo []*GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultSnippetInfo `json:"snippetInfo,omitempty"`
	// StructData: Data representation. The structured JSON data for the document.
	// It's populated from the struct data from the Document, or the Chunk in
	// search result.
	StructData googleapi.RawMessage `json:"structData,omitempty"`
	// Title: Title.
	Title string `json:"title,omitempty"`
	// Uri: URI for the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultChunk
// Info: Chunk information.
type GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultChunkInfo struct {
	// Chunk: Chunk resource name.
	Chunk string `json:"chunk,omitempty"`
	// Content: Chunk textual content.
	Content string `json:"content,omitempty"`
	// RelevanceScore: The relevance of the chunk for a given query. Values range
	// from 0.0 (completely irrelevant) to 1.0 (completely relevant). This value is
	// for informational purpose only. It may change for the same query and chunk
	// at any time due to a model retraining or change in implementation.
	RelevanceScore float64 `json:"relevanceScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Chunk") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Chunk") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultSnipp
// etInfo: Snippet information.
type GoogleCloudDiscoveryengineV1alphaAnswerStepActionObservationSearchResultSnippetInfo struct {
	// Snippet: Snippet content.
	Snippet string `json:"snippet,omitempty"`
	// SnippetStatus: Status of the snippet defined by the search team.
	SnippetStatus string `json:"snippetStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Snippet") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Snippet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaAssistAnswer: AssistAnswer resource, main
// part of AssistResponse.
type GoogleCloudDiscoveryengineV1alphaAssistAnswer struct {
	// AssistSkippedReasons: Reasons for not answering the assist call.
	//
	// Possible values:
	//   "ASSIST_SKIPPED_REASON_UNSPECIFIED" - Default value. Skip reason is not
	// specified.
	//   "NON_ASSIST_SEEKING_QUERY_IGNORED" - The assistant ignored the query,
	// because it did not appear to be answer-seeking.
	//   "CUSTOMER_POLICY_VIOLATION" - The assistant ignored the query or refused
	// to answer because of a customer policy violation (e.g., the query or the
	// answer contained a banned phrase).
	AssistSkippedReasons []string `json:"assistSkippedReasons,omitempty"`
	// CustomerPolicyEnforcementResult: Optional. The field contains information
	// about the various policy checks' results like the banned phrases or the
	// Model Armor checks. This field is populated only if the assist call was
	// skipped due to a policy violation.
	CustomerPolicyEnforcementResult *GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResult `json:"customerPolicyEnforcementResult,omitempty"`
	// Name: Immutable. Identifier. Resource name of the `AssistAnswer`. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/sessions/{session}/assistAnswers/{assist_answer}` This field must be a
	// UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// Replies: Replies of the assistant.
	Replies []*GoogleCloudDiscoveryengineV1alphaAssistAnswerReply `json:"replies,omitempty"`
	// State: State of the answer generation.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unknown.
	//   "IN_PROGRESS" - Assist operation is currently in progress.
	//   "FAILED" - Assist operation has failed.
	//   "SUCCEEDED" - Assist operation has succeeded.
	//   "SKIPPED" - Assist operation has been skipped.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssistSkippedReasons") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssistSkippedReasons") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResult:
//
//	Customer policy enforcement results. Contains the results of the various
//
// policy checks, like the banned phrases or the Model Armor checks.
type GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResult struct {
	// PolicyResults: Customer policy enforcement results. Populated only if the
	// assist call was skipped due to a policy violation. It contains results from
	// those filters that blocked the processing of the query.
	PolicyResults []*GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultPolicyEnforcementResult `json:"policyResults,omitempty"`
	// Verdict: Final verdict of the customer policy enforcement. If only one
	// policy blocked the processing, the verdict is BLOCK.
	//
	// Possible values:
	//   "UNSPECIFIED" - Unknown value.
	//   "ALLOW" - There was no policy violation.
	//   "BLOCK" - Processing was blocked by the customer policy.
	Verdict string `json:"verdict,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PolicyResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PolicyResults") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultB
// annedPhraseEnforcementResult: Customer policy enforcement result for the
// banned phrase policy.
type GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultBannedPhraseEnforcementResult struct {
	// BannedPhrases: The banned phrases that were found in the query or the
	// answer.
	BannedPhrases []string `json:"bannedPhrases,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BannedPhrases") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BannedPhrases") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultM
// odelArmorEnforcementResult: Customer policy enforcement result for the Model
// Armor policy.
type GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultModelArmorEnforcementResult struct {
	// Error: The error returned by Model Armor if the policy enforcement failed
	// for some reason.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// ModelArmorViolation: The Model Armor violation that was found.
	ModelArmorViolation string `json:"modelArmorViolation,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 GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultModelArmorEnforcementResult) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultModelArmorEnforcementResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultP
// olicyEnforcementResult: Customer policy enforcement result for a single
// policy type.
type GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultPolicyEnforcementResult struct {
	// BannedPhraseEnforcementResult: The policy enforcement result for the banned
	// phrase policy.
	BannedPhraseEnforcementResult *GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultBannedPhraseEnforcementResult `json:"bannedPhraseEnforcementResult,omitempty"`
	// ModelArmorEnforcementResult: The policy enforcement result for the Model
	// Armor policy.
	ModelArmorEnforcementResult *GoogleCloudDiscoveryengineV1alphaAssistAnswerCustomerPolicyEnforcementResultModelArmorEnforcementResult `json:"modelArmorEnforcementResult,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "BannedPhraseEnforcementResult") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BannedPhraseEnforcementResult")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistAnswerReply: One part of the
// multi-part response of the assist call.
type GoogleCloudDiscoveryengineV1alphaAssistAnswerReply struct {
	// GroundedContent: Possibly grounded response text or media from the
	// assistant.
	GroundedContent *GoogleCloudDiscoveryengineV1alphaAssistantGroundedContent `json:"groundedContent,omitempty"`
	// ReplyId: Output only. When set, uniquely identifies a reply within the
	// `AssistAnswer` resource. During an AssistantService.StreamAssist call,
	// multiple `Reply` messages with the same ID can occur within the response
	// stream (across multiple AssistantService.StreamAssistResponse messages).
	// These represent parts of a single `Reply` message in the final
	// `AssistAnswer` resource.
	ReplyId string `json:"replyId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GroundedContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GroundedContent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistUserMetadata: User metadata of the
// request.
type GoogleCloudDiscoveryengineV1alphaAssistUserMetadata struct {
	// PreferredLanguageCode: Optional. Preferred language to be used for answering
	// if language detection fails. Also used as the language of error messages
	// created by actions, regardless of language detection results.
	PreferredLanguageCode string `json:"preferredLanguageCode,omitempty"`
	// TimeZone: Optional. IANA time zone, e.g. Europe/Budapest.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PreferredLanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PreferredLanguageCode") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistant: Discovery Engine Assistant
// resource.
type GoogleCloudDiscoveryengineV1alphaAssistant struct {
	// CustomerPolicy: Optional. Customer policy for the assistant.
	CustomerPolicy *GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicy `json:"customerPolicy,omitempty"`
	// EnabledTools: Optional. Note: not implemented yet. Use enabled_actions
	// instead. The enabled tools on this assistant. The keys are connector name,
	// for example
	// "projects/{projectId}/locations/{locationId}/collections/{collectionId}/datac
	// onnector The values consist of admin enabled tools towards the connector
	// instance. Admin can selectively enable multiple tools on any of the
	// connector instances that they created in the project. For example
	// {"jira1ConnectorName": [(toolId1, "createTicket"), (toolId2,
	// "transferTicket")], "gmail1ConnectorName": [(toolId3, "sendEmail"),..] }
	EnabledTools map[string]GoogleCloudDiscoveryengineV1alphaAssistantToolList `json:"enabledTools,omitempty"`
	// GenerationConfig: Optional. Configuration for the generation of the
	// assistant response.
	GenerationConfig *GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfig `json:"generationConfig,omitempty"`
	// Name: Immutable. Resource name of the assistant. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/assistants/{assistant}` It must be a UTF-8 encoded string with a
	// length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// WebGroundingType: Optional. The type of web grounding to use.
	//
	// Possible values:
	//   "WEB_GROUNDING_TYPE_UNSPECIFIED" - Default, unspecified setting. This is
	// the same as disabled.
	//   "WEB_GROUNDING_TYPE_DISABLED" - Web grounding is disabled.
	//   "WEB_GROUNDING_TYPE_GOOGLE_SEARCH" - Grounding with Google Search is
	// enabled.
	//   "WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH" - Grounding with Enterprise Web
	// Search is enabled.
	WebGroundingType string `json:"webGroundingType,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CustomerPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerPolicy") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantContent: Multi-modal content.
type GoogleCloudDiscoveryengineV1alphaAssistantContent struct {
	// CodeExecutionResult: Result of executing an ExecutableCode.
	CodeExecutionResult *GoogleCloudDiscoveryengineV1alphaAssistantContentCodeExecutionResult `json:"codeExecutionResult,omitempty"`
	// ExecutableCode: Code generated by the model that is meant to be executed.
	ExecutableCode *GoogleCloudDiscoveryengineV1alphaAssistantContentExecutableCode `json:"executableCode,omitempty"`
	// File: A file, e.g., an audio summary.
	File *GoogleCloudDiscoveryengineV1alphaAssistantContentFile `json:"file,omitempty"`
	// InlineData: Inline binary data.
	InlineData *GoogleCloudDiscoveryengineV1alphaAssistantContentBlob `json:"inlineData,omitempty"`
	// Role: The producer of the content. Can be "model" or "user".
	Role string `json:"role,omitempty"`
	// Text: Inline text.
	Text string `json:"text,omitempty"`
	// Thought: Optional. Indicates if the part is thought from the model.
	Thought bool `json:"thought,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CodeExecutionResult") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CodeExecutionResult") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantContentBlob: Inline blob.
type GoogleCloudDiscoveryengineV1alphaAssistantContentBlob struct {
	// Data: Required. Raw bytes.
	Data string `json:"data,omitempty"`
	// MimeType: Required. The media type (MIME type) of the generated data.
	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 GoogleCloudDiscoveryengineV1alphaAssistantContentBlob) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaAssistantContentBlob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaAssistantContentCodeExecutionResult: Result
// of executing ExecutableCode.
type GoogleCloudDiscoveryengineV1alphaAssistantContentCodeExecutionResult struct {
	// Outcome: Required. Outcome of the code execution.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Unspecified status. This value should not be used.
	//   "OUTCOME_OK" - Code execution completed successfully.
	//   "OUTCOME_FAILED" - Code execution finished but with a failure. `stderr`
	// should contain the reason.
	//   "OUTCOME_DEADLINE_EXCEEDED" - Code execution ran for too long, and was
	// cancelled. There may or may not be a partial output present.
	Outcome string `json:"outcome,omitempty"`
	// Output: Optional. Contains stdout when code execution is successful, stderr
	// or other description otherwise.
	Output string `json:"output,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Outcome") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Outcome") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantContentExecutableCode: Code
// generated by the model that is meant to be executed by the model.
type GoogleCloudDiscoveryengineV1alphaAssistantContentExecutableCode struct {
	// Code: Required. The code content. Currently only supports Python.
	Code string `json:"code,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 GoogleCloudDiscoveryengineV1alphaAssistantContentExecutableCode) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaAssistantContentExecutableCode
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaAssistantContentFile: A file, e.g., an
// audio summary.
type GoogleCloudDiscoveryengineV1alphaAssistantContentFile struct {
	// FileId: Required. The file ID.
	FileId string `json:"fileId,omitempty"`
	// MimeType: Required. The media type (MIME type) of the file.
	MimeType string `json:"mimeType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FileId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FileId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicy: Customer-defined
// policy for the assistant.
type GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicy struct {
	// BannedPhrases: Optional. List of banned phrases.
	BannedPhrases []*GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyBannedPhrase `json:"bannedPhrases,omitempty"`
	// ModelArmorConfig: Optional. Model Armor configuration to be used for
	// sanitizing user prompts and assistant responses.
	ModelArmorConfig *GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyModelArmorConfig `json:"modelArmorConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BannedPhrases") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BannedPhrases") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyBannedPhrase:
// Definition of a customer-defined banned phrase. A banned phrase is not
// allowed to appear in the user query or the LLM response, or else the answer
// will be refused.
type GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyBannedPhrase struct {
	// IgnoreDiacritics: Optional. If true, diacritical marks (e.g., accents,
	// umlauts) are ignored when matching banned phrases. For example, "cafe" would
	// match "café".
	IgnoreDiacritics bool `json:"ignoreDiacritics,omitempty"`
	// MatchType: Optional. Match type for the banned phrase.
	//
	// Possible values:
	//   "BANNED_PHRASE_MATCH_TYPE_UNSPECIFIED" - Defaults to SIMPLE_STRING_MATCH.
	//   "SIMPLE_STRING_MATCH" - The banned phrase matches if it is found anywhere
	// in the text as an exact substring.
	//   "WORD_BOUNDARY_STRING_MATCH" - Banned phrase only matches if the pattern
	// found in the text is surrounded by word delimiters. The phrase itself may
	// still contain word delimiters.
	MatchType string `json:"matchType,omitempty"`
	// Phrase: Required. The raw string content to be banned.
	Phrase string `json:"phrase,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IgnoreDiacritics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreDiacritics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyModelArmorConfig:
// Configuration for customer defined Model Armor templates to be used for
// sanitizing user prompts and assistant responses.
type GoogleCloudDiscoveryengineV1alphaAssistantCustomerPolicyModelArmorConfig struct {
	// FailureMode: Optional. Defines the failure mode for Model Armor
	// sanitization.
	//
	// Possible values:
	//   "FAILURE_MODE_UNSPECIFIED" - Unspecified failure mode, default behavior is
	// `FAIL_CLOSED`.
	//   "FAIL_OPEN" - In case of a Model Armor processing failure, the request is
	// allowed to proceed without any changes.
	//   "FAIL_CLOSED" - In case of a Model Armor processing failure, the request
	// is rejected.
	FailureMode string `json:"failureMode,omitempty"`
	// ResponseTemplate: Optional. The resource name of the Model Armor template
	// for sanitizing assistant responses. Format:
	// `projects/{project}/locations/{location}/templates/{template_id}` If not
	// specified, no sanitization will be applied to the assistant response.
	ResponseTemplate string `json:"responseTemplate,omitempty"`
	// UserPromptTemplate: Optional. The resource name of the Model Armor template
	// for sanitizing user prompts. Format:
	// `projects/{project}/locations/{location}/templates/{template_id}` If not
	// specified, no sanitization will be applied to the user prompt.
	UserPromptTemplate string `json:"userPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailureMode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureMode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfig: Configuration
// for the generation of the assistant response.
type GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfig struct {
	// DefaultLanguage: The default language to use for the generation of the
	// assistant response. Use an ISO 639-1 language code such as `en`. If not
	// specified, the language will be automatically detected.
	DefaultLanguage string `json:"defaultLanguage,omitempty"`
	// SystemInstruction: System instruction, also known as the prompt preamble for
	// LLM calls. See also
	// https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/system-instructions
	SystemInstruction *GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfigSystemInstruction `json:"systemInstruction,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultLanguage") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLanguage") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfigSystemInstruction:
// System instruction, also known as the prompt preamble for LLM calls.
type GoogleCloudDiscoveryengineV1alphaAssistantGenerationConfigSystemInstruction struct {
	// AdditionalSystemInstruction: Optional. Additional system instruction that
	// will be added to the default system instruction.
	AdditionalSystemInstruction string `json:"additionalSystemInstruction,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdditionalSystemInstruction") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalSystemInstruction") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGroundedContent: A piece of
// content and possibly its grounding information. Not all content needs
// grounding. Phrases like "Of course, I will gladly search it for you." do not
// need grounding.
type GoogleCloudDiscoveryengineV1alphaAssistantGroundedContent struct {
	// CitationMetadata: Source attribution of the generated content. See also
	// https://cloud.google.com/vertex-ai/generative-ai/docs/learn/overview#citation_check
	CitationMetadata *GoogleCloudDiscoveryengineV1alphaCitationMetadata `json:"citationMetadata,omitempty"`
	// Content: The content.
	Content *GoogleCloudDiscoveryengineV1alphaAssistantContent `json:"content,omitempty"`
	// TextGroundingMetadata: Metadata for grounding based on text sources.
	TextGroundingMetadata *GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadata `json:"textGroundingMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CitationMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CitationMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadat
// a: Grounding details for text sources.
type GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadata struct {
	// References: References for the grounded text.
	References []*GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataReference `json:"references,omitempty"`
	// Segments: Grounding information for parts of the text.
	Segments []*GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataSegment `json:"segments,omitempty"`
	// ForceSendFields is a list of field names (e.g. "References") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "References") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadat
// aReference: Referenced content and related document metadata.
type GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataReference struct {
	// Content: Referenced text content.
	Content string `json:"content,omitempty"`
	// DocumentMetadata: Document metadata.
	DocumentMetadata *GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataReferenceDocumentMetadata `json:"documentMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadat
// aReferenceDocumentMetadata: Document metadata.
type GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataReferenceDocumentMetadata struct {
	// Document: Document resource name.
	Document string `json:"document,omitempty"`
	// Domain: Domain name from the document URI. Note that the `uri` field may
	// contain a URL that redirects to the actual website, in which case this will
	// contain the domain name of the target site.
	Domain string `json:"domain,omitempty"`
	// MimeType: The mime type of the document.
	// https://www.iana.org/assignments/media-types/media-types.xhtml.
	MimeType string `json:"mimeType,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// Title: Title.
	Title string `json:"title,omitempty"`
	// Uri: URI for the document. It may contain a URL that redirects to the actual
	// website.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadat
// aSegment: Grounding information for a segment of the text.
type GoogleCloudDiscoveryengineV1alphaAssistantGroundedContentTextGroundingMetadataSegment struct {
	// EndIndex: End of the segment, exclusive.
	EndIndex int64 `json:"endIndex,omitempty,string"`
	// GroundingScore: Score for the segment.
	GroundingScore float64 `json:"groundingScore,omitempty"`
	// ReferenceIndices: References for the segment.
	ReferenceIndices []int64 `json:"referenceIndices,omitempty"`
	// StartIndex: Zero-based index indicating the start of the segment, measured
	// in bytes of a UTF-8 string (i.e. characters encoded on multiple bytes have a
	// length of more than one).
	StartIndex int64 `json:"startIndex,omitempty,string"`
	// Text: The text segment itself.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndIndex") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaAssistantToolInfo: Information to identify
// a tool.
type GoogleCloudDiscoveryengineV1alphaAssistantToolInfo struct {
	// ToolDisplayName: The display name of the tool.
	ToolDisplayName string `json:"toolDisplayName,omitempty"`
	// ToolName: The name of the tool as defined by
	// DataConnectorService.QueryAvailableActions. Note: it's using `action` in the
	// DataConnectorService apis, but they are the same as the `tool` here.
	ToolName string `json:"toolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolDisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolDisplayName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaAssistantToolList: The enabled tools on a
// connector
type GoogleCloudDiscoveryengineV1alphaAssistantToolList struct {
	// ToolInfo: The list of tools with corresponding tool information.
	ToolInfo []*GoogleCloudDiscoveryengineV1alphaAssistantToolInfo `json:"toolInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBAPConfig: The configuration for the BAP
// connector.
type GoogleCloudDiscoveryengineV1alphaBAPConfig struct {
	// EnabledActions: Optional. The actions enabled on the associated BAP
	// connection.
	EnabledActions []string `json:"enabledActions,omitempty"`
	// SupportedConnectorModes: Required. The supported connector modes for the
	// associated BAP connection.
	//
	// Possible values:
	//   "CONNECTOR_MODE_UNSPECIFIED" - Connector mode unspecified.
	//   "DATA_INGESTION" - Connector utilized for data ingestion.
	//   "ACTIONS" - Connector utilized for Actions
	//   "END_USER_AUTHENTICATION" - Connector utilized for End User
	// Authentication.
	SupportedConnectorModes []string `json:"supportedConnectorModes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnabledActions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnabledActions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSiteMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.BatchCreateTargetSites operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest: Request
// message for SiteSearchEngineService.BatchCreateTargetSites method.
type GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest struct {
	// Requests: Required. The request message specifying the resources to create.
	// A maximum of 20 TargetSites can be created in a batch.
	Requests []*GoogleCloudDiscoveryengineV1alphaCreateTargetSiteRequest `json:"requests,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Requests") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Requests") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesResponse: Response
// message for SiteSearchEngineService.BatchCreateTargetSites method.
type GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesResponse struct {
	// TargetSites: TargetSites created.
	TargetSites []*GoogleCloudDiscoveryengineV1alphaTargetSite `json:"targetSites,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetSites") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetSites") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse: Response
// message for DocumentService.BatchGetDocumentsMetadata method.
type GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse struct {
	// DocumentsMetadata: The metadata of the Documents.
	DocumentsMetadata []*GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMetadata `json:"documentsMetadata,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "DocumentsMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentsMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMet
// adata: The metadata of a Document.
type GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMetadata struct {
	// DataIngestionSource: The data ingestion source of the Document. Allowed
	// values are: * `batch`: Data ingested via Batch API, e.g., ImportDocuments. *
	// `streaming` Data ingested via Streaming API, e.g., FHIR streaming.
	DataIngestionSource string `json:"dataIngestionSource,omitempty"`
	// LastRefreshedTime: The timestamp of the last time the Document was last
	// indexed.
	LastRefreshedTime string `json:"lastRefreshedTime,omitempty"`
	// MatcherValue: The value of the matcher that was used to match the Document.
	MatcherValue *GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMetadataMatcherValue `json:"matcherValue,omitempty"`
	// State: The state of the document.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Should never be set.
	//   "INDEXED" - The Document is indexed.
	//   "NOT_IN_TARGET_SITE" - The Document is not indexed because its URI is not
	// in the TargetSite.
	//   "NOT_IN_INDEX" - The Document is not indexed.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataIngestionSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataIngestionSource") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMet
// adataMatcherValue: The value of the matcher that was used to match the
// Document.
type GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponseDocumentMetadataMatcherValue struct {
	// FhirResource: Format:
	// projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_s
	// tore}/fhir/{resource_type}/{fhir_resource_id}
	FhirResource string `json:"fhirResource,omitempty"`
	// Uri: If match by URI, the URI of the Document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FhirResource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FhirResource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesMetadata: Metadata
// related to the progress of the UserLicenseService.BatchUpdateUserLicenses
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of user licenses that failed to be updated.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of user licenses successfully updated.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequest: Request
// message for UserLicenseService.BatchUpdateUserLicenses method.
type GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequest struct {
	// DeleteUnassignedUserLicenses: Optional. If true, if user licenses removed
	// associated license config, the user license will be deleted. By default
	// which is false, the user license will be updated to unassigned state.
	DeleteUnassignedUserLicenses bool `json:"deleteUnassignedUserLicenses,omitempty"`
	// InlineSource: The inline source for the input content for document
	// embeddings.
	InlineSource *GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DeleteUnassignedUserLicenses") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeleteUnassignedUserLicenses") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequestInlineSource:
// The inline source for the input config for BatchUpdateUserLicenses method.
type GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequestInlineSource struct {
	// UpdateMask: Optional. The list of fields to update.
	UpdateMask string `json:"updateMask,omitempty"`
	// UserLicenses: Required. A list of user licenses to update. Each user license
	// must have a valid UserLicense.user_principal.
	UserLicenses []*GoogleCloudDiscoveryengineV1alphaUserLicense `json:"userLicenses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UpdateMask") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UpdateMask") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesResponse: Response
// message for UserLicenseService.BatchUpdateUserLicenses method.
type GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// UserLicenses: UserLicenses successfully updated.
	UserLicenses []*GoogleCloudDiscoveryengineV1alphaUserLicense `json:"userLicenses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBatchVerifyTargetSitesRequest: Request
// message for SiteSearchEngineService.BatchVerifyTargetSites method.
type GoogleCloudDiscoveryengineV1alphaBatchVerifyTargetSitesRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaBigQueryDestination: The BigQuery output
// destination configuration.
type GoogleCloudDiscoveryengineV1alphaBigQueryDestination struct {
	// DatasetId: Required. The ID of a BigQuery Dataset.
	DatasetId string `json:"datasetId,omitempty"`
	// TableId: Required. The table_id of exported BigQuery table.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatasetId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatasetId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBigQuerySource: BigQuery source import data
// from.
type GoogleCloudDiscoveryengineV1alphaBigQuerySource struct {
	// DataSchema: The schema to use when parsing the data from the source.
	// Supported values for user event imports: * `user_event` (default): One
	// UserEvent per row. Supported values for document imports: * `document`
	// (default): One Document format per row. Each document must have a valid
	// Document.id and one of Document.json_data or Document.struct_data. *
	// `custom`: One custom data per row in arbitrary format that conforms to the
	// defined Schema of the data store. This can only be used by the GENERIC Data
	// Store vertical.
	DataSchema string `json:"dataSchema,omitempty"`
	// DatasetId: Required. The BigQuery data set to copy the data from with a
	// length limit of 1,024 characters.
	DatasetId string `json:"datasetId,omitempty"`
	// GcsStagingDir: Intermediate Cloud Storage directory used for the import with
	// a length limit of 2,000 characters. Can be specified if one wants to have
	// the BigQuery export to a specific Cloud Storage directory.
	GcsStagingDir string `json:"gcsStagingDir,omitempty"`
	// PartitionDate: BigQuery time partitioned table's _PARTITIONDATE in
	// YYYY-MM-DD format.
	PartitionDate *GoogleTypeDate `json:"partitionDate,omitempty"`
	// ProjectId: The project ID or the project number that contains the BigQuery
	// source. Has a length limit of 128 characters. If not specified, inherits the
	// project ID from the parent request.
	ProjectId string `json:"projectId,omitempty"`
	// TableId: Required. The BigQuery table to copy the data from with a length
	// limit of 1,024 characters.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataSchema") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataSchema") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBigtableOptions: The Bigtable Options
// object that contains information to support the import.
type GoogleCloudDiscoveryengineV1alphaBigtableOptions struct {
	// Families: The mapping from family names to an object that contains column
	// families level information for the given column family. If a family is not
	// present in this map it will be ignored.
	Families map[string]GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumnFamily `json:"families,omitempty"`
	// KeyFieldName: The field name used for saving row key value in the document.
	// The name has to match the pattern `a-zA-Z0-9*`.
	KeyFieldName string `json:"keyFieldName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Families") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Families") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumn: The column
// of the Bigtable.
type GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumn struct {
	// Encoding: The encoding mode of the values when the type is not `STRING`.
	// Acceptable encoding values are: * `TEXT`: indicates values are alphanumeric
	// text strings. * `BINARY`: indicates values are encoded using `HBase
	// Bytes.toBytes` family of functions. This can be overridden for a specific
	// column by listing that column in `columns` and specifying an encoding for
	// it.
	//
	// Possible values:
	//   "ENCODING_UNSPECIFIED" - The encoding is unspecified.
	//   "TEXT" - Text encoding.
	//   "BINARY" - Binary encoding.
	Encoding string `json:"encoding,omitempty"`
	// FieldName: The field name to use for this column in the document. The name
	// has to match the pattern `a-zA-Z0-9*`. If not set, it is parsed from the
	// qualifier bytes with best effort. However, due to different naming patterns,
	// field name collisions could happen, where parsing behavior is undefined.
	FieldName string `json:"fieldName,omitempty"`
	// Qualifier: Required. Qualifier of the column. If it cannot be decoded with
	// utf-8, use a base-64 encoded string instead.
	Qualifier string `json:"qualifier,omitempty"`
	// Type: The type of values in this column family. The values are expected to
	// be encoded using `HBase Bytes.toBytes` function when the encoding value is
	// set to `BINARY`.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - The type is unspecified.
	//   "STRING" - String type.
	//   "NUMBER" - Numerical type.
	//   "INTEGER" - Integer type.
	//   "VAR_INTEGER" - Variable length integer type.
	//   "BIG_NUMERIC" - BigDecimal type.
	//   "BOOLEAN" - Boolean type.
	//   "JSON" - JSON type.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Encoding") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Encoding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumnFamily: The
// column family of the Bigtable.
type GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumnFamily struct {
	// Columns: The list of objects that contains column level information for each
	// column. If a column is not present in this list it will be ignored.
	Columns []*GoogleCloudDiscoveryengineV1alphaBigtableOptionsBigtableColumn `json:"columns,omitempty"`
	// Encoding: The encoding mode of the values when the type is not STRING.
	// Acceptable encoding values are: * `TEXT`: indicates values are alphanumeric
	// text strings. * `BINARY`: indicates values are encoded using `HBase
	// Bytes.toBytes` family of functions. This can be overridden for a specific
	// column by listing that column in `columns` and specifying an encoding for
	// it.
	//
	// Possible values:
	//   "ENCODING_UNSPECIFIED" - The encoding is unspecified.
	//   "TEXT" - Text encoding.
	//   "BINARY" - Binary encoding.
	Encoding string `json:"encoding,omitempty"`
	// FieldName: The field name to use for this column family in the document. The
	// name has to match the pattern `a-zA-Z0-9*`. If not set, it is parsed from
	// the family name with best effort. However, due to different naming patterns,
	// field name collisions could happen, where parsing behavior is undefined.
	FieldName string `json:"fieldName,omitempty"`
	// Type: The type of values in this column family. The values are expected to
	// be encoded using `HBase Bytes.toBytes` function when the encoding value is
	// set to `BINARY`.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - The type is unspecified.
	//   "STRING" - String type.
	//   "NUMBER" - Numerical type.
	//   "INTEGER" - Integer type.
	//   "VAR_INTEGER" - Variable length integer type.
	//   "BIG_NUMERIC" - BigDecimal type.
	//   "BOOLEAN" - Boolean type.
	//   "JSON" - JSON type.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Columns") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Columns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBigtableSource: The Cloud Bigtable source
// for importing data.
type GoogleCloudDiscoveryengineV1alphaBigtableSource struct {
	// BigtableOptions: Required. Bigtable options that contains information needed
	// when parsing data into typed structures. For example, column type
	// annotations.
	BigtableOptions *GoogleCloudDiscoveryengineV1alphaBigtableOptions `json:"bigtableOptions,omitempty"`
	// InstanceId: Required. The instance ID of the Cloud Bigtable that needs to be
	// imported.
	InstanceId string `json:"instanceId,omitempty"`
	// ProjectId: The project ID that contains the Bigtable source. Has a length
	// limit of 128 characters. If not specified, inherits the project ID from the
	// parent request.
	ProjectId string `json:"projectId,omitempty"`
	// TableId: Required. The table ID of the Cloud Bigtable that needs to be
	// imported.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigtableOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigtableOptions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBranch: A data branch that stores
// Documents.
type GoogleCloudDiscoveryengineV1alphaBranch struct {
	// BranchStats: Output only. Stistics describing a branch. This field is not
	// populated in BranchView.BASIC view.
	BranchStats *GoogleCloudDiscoveryengineV1alphaBranchBranchStats `json:"branchStats,omitempty"`
	// DisplayName: Output only. Human readable name of the branch to display in
	// the UI.
	DisplayName string `json:"displayName,omitempty"`
	// IsDefault: Output only. Indicates whether this branch is set as the default
	// branch of its parent data store.
	IsDefault bool `json:"isDefault,omitempty"`
	// LastDocumentImportTime: Output only. Timestamp of last import through
	// DocumentService.ImportDocuments. Empty value means no import has been made
	// to this branch.
	LastDocumentImportTime string `json:"lastDocumentImportTime,omitempty"`
	// Name: Immutable. Full resource name of the branch, such as
	// `projects/*/locations/global/dataStores/data_store/branches/branch_id`.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "BranchStats") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BranchStats") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaBranchBranchStats: Statistics describing a
// branch.
type GoogleCloudDiscoveryengineV1alphaBranchBranchStats struct {
	// DocumentCounts: The number of documents in a given branch. The key is a
	// group representing a set of documents, and the value is the number of
	// document in that group. Note: keys in this map may change over time.
	// Supported keys: ['all'].
	DocumentCounts map[string]string `json:"documentCounts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentCounts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentCounts") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckGroundingRequest: Request message for
// GroundedGenerationService.CheckGrounding method.
type GoogleCloudDiscoveryengineV1alphaCheckGroundingRequest struct {
	// AnswerCandidate: Answer candidate to check. It can have a maximum length of
	// 4096 tokens.
	AnswerCandidate string `json:"answerCandidate,omitempty"`
	// Facts: List of facts for the grounding check. We support up to 200 facts.
	Facts []*GoogleCloudDiscoveryengineV1alphaGroundingFact `json:"facts,omitempty"`
	// GroundingSpec: Configuration of the grounding check.
	GroundingSpec *GoogleCloudDiscoveryengineV1alphaCheckGroundingSpec `json:"groundingSpec,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AnswerCandidate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerCandidate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckGroundingResponse: Response message
// for the GroundedGenerationService.CheckGrounding method.
type GoogleCloudDiscoveryengineV1alphaCheckGroundingResponse struct {
	// CitedChunks: List of facts cited across all claims in the answer candidate.
	// These are derived from the facts supplied in the request.
	CitedChunks []*GoogleCloudDiscoveryengineV1alphaFactChunk `json:"citedChunks,omitempty"`
	// CitedFacts: List of facts cited across all claims in the answer candidate.
	// These are derived from the facts supplied in the request.
	CitedFacts []*GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseCheckGroundingFactChunk `json:"citedFacts,omitempty"`
	// Claims: Claim texts and citation info across all claims in the answer
	// candidate.
	Claims []*GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseClaim `json:"claims,omitempty"`
	// SupportScore: The support score for the input answer candidate. Higher the
	// score, higher is the fraction of claims that are supported by the provided
	// facts. This is always set when a response is returned.
	SupportScore float64 `json:"supportScore,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CitedChunks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CitedChunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseCheckGroundingFactChun
// k: Fact chunk for grounding check.
type GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseCheckGroundingFactChunk struct {
	// ChunkText: Text content of the fact chunk. Can be at most 10K characters
	// long.
	ChunkText string `json:"chunkText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseClaim: Text and
// citation info for a claim in the answer candidate.
type GoogleCloudDiscoveryengineV1alphaCheckGroundingResponseClaim struct {
	// CitationIndices: A list of indices (into 'cited_chunks') specifying the
	// citations associated with the claim. For instance [1,3,4] means that
	// cited_chunks[1], cited_chunks[3], cited_chunks[4] are the facts cited
	// supporting for the claim. A citation to a fact indicates that the claim is
	// supported by the fact.
	CitationIndices []int64 `json:"citationIndices,omitempty"`
	// ClaimText: Text for the claim in the answer candidate. Always provided
	// regardless of whether citations or anti-citations are found.
	ClaimText string `json:"claimText,omitempty"`
	// EndPos: Position indicating the end of the claim in the answer candidate,
	// exclusive, in bytes. Note that this is not measured in characters and,
	// therefore, must be rendered as such. For example, if the claim text contains
	// non-ASCII characters, the start and end positions vary when measured in
	// characters (programming-language-dependent) and when measured in bytes
	// (programming-language-independent).
	EndPos int64 `json:"endPos,omitempty"`
	// GroundingCheckRequired: Indicates that this claim required grounding check.
	// When the system decided this claim doesn't require attribution/grounding
	// check, this field will be set to false. In that case, no grounding check was
	// done for the claim and therefore citation_indices should not be returned.
	GroundingCheckRequired bool `json:"groundingCheckRequired,omitempty"`
	// Score: Confidence score for the claim in the answer candidate, in the range
	// of [0, 1]. This is set only when
	// `CheckGroundingRequest.grounding_spec.enable_claim_level_score` is true.
	Score float64 `json:"score,omitempty"`
	// StartPos: Position indicating the start of the claim in the answer
	// candidate, measured in bytes. Note that this is not measured in characters
	// and, therefore, must be rendered in the user interface keeping in mind that
	// some characters may take more than one byte. For example, if the claim text
	// contains non-ASCII characters, the start and end positions vary when
	// measured in characters (programming-language-dependent) and when measured in
	// bytes (programming-language-independent).
	StartPos int64 `json:"startPos,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CitationIndices") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CitationIndices") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaCheckGroundingSpec: Specification for the
// grounding check.
type GoogleCloudDiscoveryengineV1alphaCheckGroundingSpec struct {
	// CitationThreshold: The threshold (in [0,1]) used for determining whether a
	// fact must be cited for a claim in the answer candidate. Choosing a higher
	// threshold will lead to fewer but very strong citations, while choosing a
	// lower threshold may lead to more but somewhat weaker citations. If unset,
	// the threshold will default to 0.6.
	CitationThreshold float64 `json:"citationThreshold,omitempty"`
	// EnableClaimLevelScore: The control flag that enables claim-level grounding
	// score in the response.
	EnableClaimLevelScore bool `json:"enableClaimLevelScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CitationThreshold") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CitationThreshold") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaCheckRefreshTokenResponse: Response message
// for the DataConnectorService.CheckRefreshToken method.
type GoogleCloudDiscoveryengineV1alphaCheckRefreshTokenResponse struct {
	// RefreshTokenInfo: Info about the stored refresh token.
	RefreshTokenInfo *GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo `json:"refreshTokenInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "RefreshTokenInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RefreshTokenInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckRequirementRequest: Request for
// CheckRequirement method.
type GoogleCloudDiscoveryengineV1alphaCheckRequirementRequest struct {
	// RequirementType: The type specifying the requirement to check. The supported
	// types are: * `discoveryengine.googleapis.com/media_recs/general/all/warning`
	// * `discoveryengine.googleapis.com/media_recs/oyml/cvr/warning` *
	// `discoveryengine.googleapis.com/media_recs/rfy/cvr/warning` *
	// `discoveryengine.googleapis.com/media_recs/mlt/cvr/warning` *
	// `discoveryengine.googleapis.com/media_recs/mp/cvr/warning` *
	// `discoveryengine.googleapis.com/media_recs/oyml/wdps/warning` *
	// `discoveryengine.googleapis.com/media_recs/rfy/wdps/warning` *
	// `discoveryengine.googleapis.com/media_recs/mlt/wdps/warning`
	RequirementType string `json:"requirementType,omitempty"`
	// Resources: The resources to be checked for this requirement. The type needed
	// for the monitored resources: * `discoveryengine.googleapis.com/Branch`. *
	// The labels needed for this resource: * `project_number` * `location_id` *
	// `collection_id` * `datastore_id` * `branch_id` *
	// `discoveryengine.googleapis.com/DataStore` * The labels needed for this
	// resource: * `project_number` * `location_id` * `collection_id` *
	// `datastore_id`
	Resources []*GoogleApiMonitoredResource `json:"resources,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RequirementType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RequirementType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckRequirementResponse: Response for the
// CheckRequirement method.
type GoogleCloudDiscoveryengineV1alphaCheckRequirementResponse struct {
	// MetricResults: Metric results.
	MetricResults []*GoogleCloudDiscoveryengineV1alphaCheckRequirementResponseMetricQueryResult `json:"metricResults,omitempty"`
	// OldestMetricTimestamp: Timestamp of the oldest calculated metric (i.e. the
	// most stale metric). Indicates that the `result` may not accurately reflect
	// any Event and Product Catalog updates performed after this time.
	OldestMetricTimestamp string `json:"oldestMetricTimestamp,omitempty"`
	// Requirement: Requirement definition.
	Requirement *GoogleCloudDiscoveryengineV1alphaRequirement `json:"requirement,omitempty"`
	// RequirementCondition: The condition for evaluating the requirement result.
	RequirementCondition *GoogleTypeExpr `json:"requirementCondition,omitempty"`
	// Result: The result of the requirement. It should be one of the `severity`
	// fields in the requirement definition. If any error happens during the
	// evaluation, it will be `UNKNOWN`.
	Result string `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. "MetricResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MetricResults") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCheckRequirementResponseMetricQueryResult:
// Metric result. The metric are in the requirement_condition.
type GoogleCloudDiscoveryengineV1alphaCheckRequirementResponseMetricQueryResult struct {
	// MetricType: Type identifier of the metric corresponding to this query
	// result.
	MetricType string `json:"metricType,omitempty"`
	// Name: This metric query name is mapping to variables in the
	// requirement_condition.
	Name string `json:"name,omitempty"`
	// Timestamp: Time corresponding to when this metric value was calculated.
	Timestamp string `json:"timestamp,omitempty"`
	// Unit: The unit in which this metric is reported. Follows The Unified Code
	// for Units of Measure (https://unitsofmeasure.org/ucum.html) standard.
	Unit string `json:"unit,omitempty"`
	// Value: Value of the metric query.
	Value *GoogleMonitoringV3TypedValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MetricType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MetricType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaChunk: Chunk captures all raw metadata
// information of items to be recommended or searched in the chunk mode.
type GoogleCloudDiscoveryengineV1alphaChunk struct {
	// AnnotationContents: Output only. Annotation contents if the current chunk
	// contains annotations.
	AnnotationContents []string `json:"annotationContents,omitempty"`
	// AnnotationMetadata: Output only. The annotation metadata includes structured
	// content in the current chunk.
	AnnotationMetadata []*GoogleCloudDiscoveryengineV1alphaChunkAnnotationMetadata `json:"annotationMetadata,omitempty"`
	// ChunkMetadata: Output only. Metadata of the current chunk.
	ChunkMetadata *GoogleCloudDiscoveryengineV1alphaChunkChunkMetadata `json:"chunkMetadata,omitempty"`
	// Content: Content is a string from a document (parsed content).
	Content string `json:"content,omitempty"`
	// DataUrls: Output only. Image Data URLs if the current chunk contains images.
	// Data URLs are composed of four parts: a prefix (data:), a MIME type
	// indicating the type of data, an optional base64 token if non-textual, and
	// the data itself: data:,
	DataUrls []string `json:"dataUrls,omitempty"`
	// DerivedStructData: Output only. This field is OUTPUT_ONLY. It contains
	// derived data that are not in the original input document.
	DerivedStructData googleapi.RawMessage `json:"derivedStructData,omitempty"`
	// DocumentMetadata: Metadata of the document from the current chunk.
	DocumentMetadata *GoogleCloudDiscoveryengineV1alphaChunkDocumentMetadata `json:"documentMetadata,omitempty"`
	// Id: Unique chunk ID of the current chunk.
	Id string `json:"id,omitempty"`
	// Name: The full resource name of the chunk. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/branches/{branch}/documents/{document_id}/chunks/{chunk_id}`.
	// This field must be a UTF-8 encoded string with a length limit of 1024
	// characters.
	Name string `json:"name,omitempty"`
	// PageSpan: Page span of the chunk.
	PageSpan *GoogleCloudDiscoveryengineV1alphaChunkPageSpan `json:"pageSpan,omitempty"`
	// RelevanceScore: Output only. Represents the relevance score based on
	// similarity. Higher score indicates higher chunk relevance. The score is in
	// range [-1.0, 1.0]. Only populated on SearchResponse.
	RelevanceScore float64 `json:"relevanceScore,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AnnotationContents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnnotationContents") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaChunkAnnotationMetadata: The annotation
// metadata includes structured content in the current chunk.
type GoogleCloudDiscoveryengineV1alphaChunkAnnotationMetadata struct {
	// ImageId: Output only. Image id is provided if the structured content is
	// based on an image.
	ImageId string `json:"imageId,omitempty"`
	// StructuredContent: Output only. The structured content information.
	StructuredContent *GoogleCloudDiscoveryengineV1alphaChunkStructuredContent `json:"structuredContent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaChunkChunkMetadata: Metadata of the current
// chunk. This field is only populated on SearchService.Search API.
type GoogleCloudDiscoveryengineV1alphaChunkChunkMetadata struct {
	// NextChunks: The next chunks of the current chunk. The number is controlled
	// by SearchRequest.ContentSearchSpec.ChunkSpec.num_next_chunks. This field is
	// only populated on SearchService.Search API.
	NextChunks []*GoogleCloudDiscoveryengineV1alphaChunk `json:"nextChunks,omitempty"`
	// PreviousChunks: The previous chunks of the current chunk. The number is
	// controlled by SearchRequest.ContentSearchSpec.ChunkSpec.num_previous_chunks.
	// This field is only populated on SearchService.Search API.
	PreviousChunks []*GoogleCloudDiscoveryengineV1alphaChunk `json:"previousChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NextChunks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextChunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaChunkDocumentMetadata: Document metadata
// contains the information of the document of the current chunk.
type GoogleCloudDiscoveryengineV1alphaChunkDocumentMetadata struct {
	// MimeType: The mime type of the document.
	// https://www.iana.org/assignments/media-types/media-types.xhtml.
	MimeType string `json:"mimeType,omitempty"`
	// StructData: Data representation. The structured JSON data for the document.
	// It should conform to the registered Schema or an `INVALID_ARGUMENT` error is
	// thrown.
	StructData googleapi.RawMessage `json:"structData,omitempty"`
	// Title: Title of the document.
	Title string `json:"title,omitempty"`
	// Uri: Uri of the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MimeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MimeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaChunkPageSpan: Page span of the chunk.
type GoogleCloudDiscoveryengineV1alphaChunkPageSpan struct {
	// PageEnd: The end page of the chunk.
	PageEnd int64 `json:"pageEnd,omitempty"`
	// PageStart: The start page of the chunk.
	PageStart int64 `json:"pageStart,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageEnd") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageEnd") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaChunkStructuredContent: The structured
// content information.
type GoogleCloudDiscoveryengineV1alphaChunkStructuredContent struct {
	// Content: Output only. The content of the structured content.
	Content string `json:"content,omitempty"`
	// StructureType: Output only. The structure type of the structured content.
	//
	// Possible values:
	//   "STRUCTURE_TYPE_UNSPECIFIED" - Default value.
	//   "SHAREHOLDER_STRUCTURE" - Shareholder structure.
	//   "SIGNATURE_STRUCTURE" - Signature structure.
	//   "CHECKBOX_STRUCTURE" - Checkbox structure.
	StructureType string `json:"structureType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCitation: Source attributions for content.
type GoogleCloudDiscoveryengineV1alphaCitation struct {
	// EndIndex: Output only. End index into the content.
	EndIndex int64 `json:"endIndex,omitempty"`
	// License: Output only. License of the attribution.
	License string `json:"license,omitempty"`
	// PublicationDate: Output only. Publication date of the attribution.
	PublicationDate *GoogleTypeDate `json:"publicationDate,omitempty"`
	// StartIndex: Output only. Start index into the content.
	StartIndex int64 `json:"startIndex,omitempty"`
	// Title: Output only. Title of the attribution.
	Title string `json:"title,omitempty"`
	// Uri: Output only. Url reference of the attribution.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndIndex") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaCloudSqlSource: Cloud SQL source import
// data from.
type GoogleCloudDiscoveryengineV1alphaCloudSqlSource struct {
	// DatabaseId: Required. The Cloud SQL database to copy the data from with a
	// length limit of 256 characters.
	DatabaseId string `json:"databaseId,omitempty"`
	// GcsStagingDir: Intermediate Cloud Storage directory used for the import with
	// a length limit of 2,000 characters. Can be specified if one wants to have
	// the Cloud SQL export to a specific Cloud Storage directory. Ensure that the
	// Cloud SQL service account has the necessary Cloud Storage Admin permissions
	// to access the specified Cloud Storage directory.
	GcsStagingDir string `json:"gcsStagingDir,omitempty"`
	// InstanceId: Required. The Cloud SQL instance to copy the data from with a
	// length limit of 256 characters.
	InstanceId string `json:"instanceId,omitempty"`
	// Offload: Option for serverless export. Enabling this option will incur
	// additional cost. More info can be found here
	// (https://cloud.google.com/sql/pricing#serverless).
	Offload bool `json:"offload,omitempty"`
	// ProjectId: The project ID that contains the Cloud SQL source. Has a length
	// limit of 128 characters. If not specified, inherits the project ID from the
	// parent request.
	ProjectId string `json:"projectId,omitempty"`
	// TableId: Required. The Cloud SQL table to copy the data from with a length
	// limit of 256 characters.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatabaseId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatabaseId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCmekConfig: Configurations used to enable
// CMEK data encryption with Cloud KMS keys.
type GoogleCloudDiscoveryengineV1alphaCmekConfig struct {
	// IsDefault: Output only. The default CmekConfig for the Customer.
	IsDefault bool `json:"isDefault,omitempty"`
	// KmsKey: Required. KMS key resource name which will be used to encrypt
	// resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// KmsKeyVersion: Output only. KMS key version resource name which will be used
	// to encrypt resources `/cryptoKeyVersions/{keyVersion}`.
	KmsKeyVersion string `json:"kmsKeyVersion,omitempty"`
	// LastRotationTimestampMicros: Output only. The timestamp of the last key
	// rotation.
	LastRotationTimestampMicros int64 `json:"lastRotationTimestampMicros,omitempty,string"`
	// Name: Required. The name of the CmekConfig of the form
	// `projects/{project}/locations/{location}/cmekConfig` or
	// `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
	Name string `json:"name,omitempty"`
	// NotebooklmState: Output only. Whether the NotebookLM Corpus is ready to be
	// used.
	//
	// Possible values:
	//   "NOTEBOOK_LM_STATE_UNSPECIFIED" - The NotebookLM state is unknown.
	//   "NOTEBOOK_LM_NOT_READY" - The NotebookLM is not ready.
	//   "NOTEBOOK_LM_READY" - The NotebookLM is ready to be used.
	//   "NOTEBOOK_LM_NOT_ENABLED" - The NotebookLM is not enabled.
	NotebooklmState string `json:"notebooklmState,omitempty"`
	// SingleRegionKeys: Optional. Single-regional CMEKs that are required for some
	// VAIS features.
	SingleRegionKeys []*GoogleCloudDiscoveryengineV1alphaSingleRegionKey `json:"singleRegionKeys,omitempty"`
	// State: Output only. The states of the CmekConfig.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The CmekConfig state is unknown.
	//   "CREATING" - The CmekConfig is creating.
	//   "ACTIVE" - The CmekConfig can be used with DataStores.
	//   "KEY_ISSUE" - The CmekConfig is unavailable, most likely due to the KMS
	// Key being revoked.
	//   "DELETING" - The CmekConfig is deleting.
	//   "DELETE_FAILED" - The CmekConfig deletion process failed.
	//   "UNUSABLE" - The CmekConfig is not usable, most likely due to some
	// internal issue.
	//   "ACTIVE_ROTATING" - The KMS key version is being rotated.
	//   "DELETED" - The KMS key is soft deleted. Some cleanup policy will
	// eventually be applied.
	//   "EXPIRED" - The KMS key is expired, meaning the key has been disabled for
	// 30+ days. The customer can call DeleteCmekConfig to change the state to
	// DELETED.
	State string `json:"state,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "IsDefault") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IsDefault") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCollection: Collection is a container for
// configuring resources and access to a set of DataStores.
type GoogleCloudDiscoveryengineV1alphaCollection struct {
	// CreateTime: Output only. Timestamp the Collection was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataConnector: Output only. The data connector, if present, manages the
	// connection for data stores in the Collection. To set up the connector, use
	// DataConnectorService.SetUpDataConnector method, which creates a new
	// Collection while setting up the DataConnector singleton resource. Setting up
	// connector on an existing Collection is not supported. This output only field
	// contains a subset of the DataConnector fields, including `name`,
	// `data_source`, `entities.entity_name` and `entities.data_store`. To get more
	// details about a data connector, use the
	// DataConnectorService.GetDataConnector method.
	DataConnector *GoogleCloudDiscoveryengineV1alphaDataConnector `json:"dataConnector,omitempty"`
	// DisplayName: Required. The Collection display name. This field must be a
	// UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Immutable. The full resource name of the Collection. Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse: Response message for
// CompletionService.CompleteQuery method.
type GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse struct {
	// QuerySuggestions: Results of the matched query suggestions. The result list
	// is ordered and the first result is a top suggestion.
	QuerySuggestions []*GoogleCloudDiscoveryengineV1alphaCompleteQueryResponseQuerySuggestion `json:"querySuggestions,omitempty"`
	// TailMatchTriggered: True if the returned suggestions are all tail
	// suggestions. For tail matching to be triggered, include_tail_suggestions in
	// the request must be true and there must be no suggestions that match the
	// full query.
	TailMatchTriggered bool `json:"tailMatchTriggered,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "QuerySuggestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuerySuggestions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCompleteQueryResponseQuerySuggestion:
// Suggestions as search queries.
type GoogleCloudDiscoveryengineV1alphaCompleteQueryResponseQuerySuggestion struct {
	// CompletableFieldPaths: The unique document field paths that serve as the
	// source of this suggestion if it was generated from completable fields. This
	// field is only populated for the document-completable model.
	CompletableFieldPaths []string `json:"completableFieldPaths,omitempty"`
	// Suggestion: The suggestion for the query.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletableFieldPaths") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletableFieldPaths") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCompletionInfo: Detailed completion
// information including completion attribution token and clicked completion
// info.
type GoogleCloudDiscoveryengineV1alphaCompletionInfo struct {
	// SelectedPosition: End user selected
	// CompleteQueryResponse.QuerySuggestion.suggestion position, starting from 0.
	SelectedPosition int64 `json:"selectedPosition,omitempty"`
	// SelectedSuggestion: End user selected
	// CompleteQueryResponse.QuerySuggestion.suggestion.
	SelectedSuggestion string `json:"selectedSuggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SelectedPosition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SelectedPosition") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCompletionSuggestion: Autocomplete
// suggestions that are imported from Customer.
type GoogleCloudDiscoveryengineV1alphaCompletionSuggestion struct {
	// AlternativePhrases: Alternative matching phrases for this suggestion.
	AlternativePhrases []string `json:"alternativePhrases,omitempty"`
	// Frequency: Frequency of this suggestion. Will be used to rank suggestions
	// when score is not available.
	Frequency int64 `json:"frequency,omitempty,string"`
	// GlobalScore: Global score of this suggestion. Control how this suggestion
	// would be scored / ranked.
	GlobalScore float64 `json:"globalScore,omitempty"`
	// GroupId: If two suggestions have the same groupId, they will not be returned
	// together. Instead the one ranked higher will be returned. This can be used
	// to deduplicate semantically identical suggestions.
	GroupId string `json:"groupId,omitempty"`
	// GroupScore: The score of this suggestion within its group.
	GroupScore float64 `json:"groupScore,omitempty"`
	// LanguageCode: BCP-47 language code of this suggestion.
	LanguageCode string `json:"languageCode,omitempty"`
	// Suggestion: Required. The suggestion text.
	Suggestion string `json:"suggestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlternativePhrases") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlternativePhrases") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaCondition: Defines circumstances to be
// checked before allowing a behavior
type GoogleCloudDiscoveryengineV1alphaCondition struct {
	// ActiveTimeRange: Range of time(s) specifying when condition is active.
	// Maximum of 10 time ranges.
	ActiveTimeRange []*GoogleCloudDiscoveryengineV1alphaConditionTimeRange `json:"activeTimeRange,omitempty"`
	// QueryRegex: Optional. Query regex to match the whole search query. Cannot be
	// set when Condition.query_terms is set. Only supported for Basic Site Search
	// promotion serving controls.
	QueryRegex string `json:"queryRegex,omitempty"`
	// QueryTerms: Search only A list of terms to match the query on. Cannot be set
	// when Condition.query_regex is set. Maximum of 10 query terms.
	QueryTerms []*GoogleCloudDiscoveryengineV1alphaConditionQueryTerm `json:"queryTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveTimeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveTimeRange") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConditionQueryTerm: Matcher for search
// request query
type GoogleCloudDiscoveryengineV1alphaConditionQueryTerm struct {
	// FullMatch: Whether the search query needs to exactly match the query term.
	FullMatch bool `json:"fullMatch,omitempty"`
	// Value: The specific query value to match against Must be lowercase, must be
	// UTF-8. Can have at most 3 space separated terms if full_match is true.
	// Cannot be an empty string. Maximum length of 5000 characters.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConditionTimeRange: Used for time-dependent
// conditions.
type GoogleCloudDiscoveryengineV1alphaConditionTimeRange struct {
	// EndTime: End of time range. Range is inclusive. Must be in the future.
	EndTime string `json:"endTime,omitempty"`
	// StartTime: Start of time range. Range is inclusive.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStats: Response for
// [EstimateBillingService.GetConfigurablePricingUsageStats] method.
type GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStats struct {
	// MetricUsages: A list of metric usages, one for each requested resource type
	// that has data in the requested time range.
	MetricUsages []*GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsMetricUsage `json:"metricUsages,omitempty"`
	// Name: Identifier. The name of the ConfigurablePricingUsageStats. Format:
	// projects/{project}/locations/{location}/configurablePricingUsageStats
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "MetricUsages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MetricUsages") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsDatedUsage: A
// list of usages for a specific day.
type GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsDatedUsage struct {
	// Date: The date of the usage.
	Date *GoogleTypeDate `json:"date,omitempty"`
	// Usage: The usage value on the date.
	Usage float64 `json:"usage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Date") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Date") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsMetricUsage:
// The usage of a metric over a list of days.
type GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsMetricUsage struct {
	// DatedUsages: The list of usages for this resource type, chronologically
	// sorted by date. This is populated for metrics with daily aggregation like
	// DAILY_MDN_QPM.
	DatedUsages []*GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsDatedUsage `json:"datedUsages,omitempty"`
	// MetricType: The metric type.
	//
	// Possible values:
	//   "BILLING_METRIC_TYPE_UNSPECIFIED" - Default value.
	//   "DAILY_MDN_QPM" - Daily median search request QPM.
	//   "DAILY_MIN_QPM" - Daily min search request QPM.
	//   "DAILY_MAX_QPM" - Daily max search request QPM.
	//   "DAILY_SEARCH_REQUEST" - Daily search request total.
	//   "TOTAL_STORAGE" - Total storage bytes for indexing core.
	MetricType string `json:"metricType,omitempty"`
	// TotalUsages: The list of total usages for this resource type
	TotalUsages []float64 `json:"totalUsages,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatedUsages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatedUsages") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsMetricUsage) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStatsMetricUsage
	var s1 struct {
		TotalUsages []gensupport.JSONFloat64 `json:"totalUsages"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.TotalUsages = make([]float64, len(s1.TotalUsages))
	for i := range s1.TotalUsages {
		s.TotalUsages[i] = float64(s1.TotalUsages[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1alphaConnectorRun: A data sync run of
// DataConnector. After DataConnector is successfully initialized, data syncs
// are scheduled at DataConnector.refresh_interval. A ConnectorRun represents a
// data sync either in the past or onging that the moment. //
type GoogleCloudDiscoveryengineV1alphaConnectorRun struct {
	// EndTime: Output only. The time when the connector run ended.
	EndTime string `json:"endTime,omitempty"`
	// EntityRuns: Output only. The details of the entities synced at the
	// ConnectorRun. Each ConnectorRun consists of syncing one or more entities.
	EntityRuns []*GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRun `json:"entityRuns,omitempty"`
	// Errors: Contains info about errors incurred during the sync. Only exist if
	// running into an error state. Contains error code and error message. Use with
	// the `state` field.
	Errors []*GoogleRpcStatus `json:"errors,omitempty"`
	// LatestPauseTime: Output only. The time when the connector run was most
	// recently paused.
	LatestPauseTime string `json:"latestPauseTime,omitempty"`
	// Name: Output only. The full resource name of the Connector Run. Format:
	// `projects/*/locations/*/collections/*/dataConnector/connectorRuns/*`. The
	// `connector_run_id` is system-generated.
	Name string `json:"name,omitempty"`
	// StartTime: Output only. The time when the connector run started.
	StartTime string `json:"startTime,omitempty"`
	// State: Output only. The state of the sync run.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "RUNNING" - The data sync is ongoing.
	//   "SUCCEEDED" - The data sync is finished.
	//   "FAILED" - The data sync is failed.
	//   "OVERRUN" - Data sync has been running longer than expected and is still
	// running at the time the next run is supposed to start.
	//   "CANCELLED" - Data sync was scheduled but has been cancelled.
	//   "PENDING" - Data sync is about to start.
	//   "WARNING" - The data sync completed with non-fatal errors.
	//   "SKIPPED" - An ongoing connector run has been running longer than
	// expected, causing this run to be skipped.
	State string `json:"state,omitempty"`
	// StateUpdateTime: Timestamp at which the connector run sync state was last
	// updated.
	StateUpdateTime string `json:"stateUpdateTime,omitempty"`
	// Trigger: Output only. The trigger for this ConnectorRun.
	//
	// Possible values:
	//   "TRIGGER_UNSPECIFIED" - Default value.
	//   "SCHEDULER" - ConnectorRun triggered by scheduler if connector has
	// PERIODIC sync mode.
	//   "INITIALIZATION" - ConnectorRun auto triggered by connector
	// initialization.
	//   "RESUME" - ConnectorRun auto triggered by resuming connector.
	//   "MANUAL" - ConnectorRun triggered by user manually.
	Trigger string `json:"trigger,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRun: Represents an entity
// that was synced in this ConnectorRun.
type GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRun struct {
	// DeletedRecordCount: Optional. The number of documents deleted.
	DeletedRecordCount int64 `json:"deletedRecordCount,omitempty,string"`
	// EntityName: The name of the source entity.
	EntityName string `json:"entityName,omitempty"`
	// ErrorRecordCount: Optional. The total number of documents failed at sync at
	// indexing stage.
	ErrorRecordCount int64 `json:"errorRecordCount,omitempty,string"`
	// Errors: The errors from the entity's sync run. Only exist if running into an
	// error state. Contains error code and error message.
	Errors []*GoogleRpcStatus `json:"errors,omitempty"`
	// ExtractedRecordCount: Optional. The number of documents extracted from
	// connector source, ready to be ingested to VAIS.
	ExtractedRecordCount int64 `json:"extractedRecordCount,omitempty,string"`
	// IndexedRecordCount: Optional. The number of documents indexed.
	IndexedRecordCount int64 `json:"indexedRecordCount,omitempty,string"`
	// Progress: Metadata to generate the progress bar.
	Progress *GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRunProgress `json:"progress,omitempty"`
	// ScheduledRecordCount: Optional. The number of documents scheduled to be
	// crawled/extracted from connector source. This only applies to third party
	// connectors.
	ScheduledRecordCount int64 `json:"scheduledRecordCount,omitempty,string"`
	// SourceApiRequestCount: Optional. The number of requests sent to 3p API.
	SourceApiRequestCount int64 `json:"sourceApiRequestCount,omitempty,string"`
	// State: The state of the entity's sync run.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "RUNNING" - The data sync is ongoing.
	//   "SUCCEEDED" - The data sync is finished.
	//   "FAILED" - The data sync is failed.
	//   "OVERRUN" - Data sync has been running longer than expected and is still
	// running at the time the next run is supposed to start.
	//   "CANCELLED" - Data sync was scheduled but has been cancelled.
	//   "PENDING" - Data sync is about to start.
	//   "WARNING" - The data sync completed with non-fatal errors.
	//   "SKIPPED" - An ongoing connector run has been running longer than
	// expected, causing this run to be skipped.
	State string `json:"state,omitempty"`
	// StateUpdateTime: Timestamp at which the entity sync state was last updated.
	StateUpdateTime string `json:"stateUpdateTime,omitempty"`
	// StatsUpdateTime: The timestamp for either extracted_documents_count,
	// indexed_documents_count and error_documents_count was last updated.
	StatsUpdateTime string `json:"statsUpdateTime,omitempty"`
	// SyncType: Sync type of this run.
	//
	// Possible values:
	//   "SYNC_TYPE_UNSPECIFIED" - Sync type unspecified.
	//   "FULL" - Sync triggers full sync of all documents.
	//   "INCREMENTAL" - Incremental sync of updated documents.
	//   "REALTIME" - Realtime sync.
	//   "SCALA_SYNC" - Scala sync.
	SyncType string `json:"syncType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeletedRecordCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeletedRecordCount") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRunProgress: Represents
// the progress of a sync run.
type GoogleCloudDiscoveryengineV1alphaConnectorRunEntityRunProgress struct {
	// CurrentCount: The current progress.
	CurrentCount int64 `json:"currentCount,omitempty,string"`
	// Percentile: Derived. The percentile of the progress.current_count /
	// total_count. The value is between [0, 1.0] inclusive.
	Percentile float64 `json:"percentile,omitempty"`
	// TotalCount: The total.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "CurrentCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CurrentCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaContactDetails: The contact info stored in
// resource level. If both project level and resource level is populated, the
// resource level contact info will override the project level contact info.
type GoogleCloudDiscoveryengineV1alphaContactDetails struct {
	// EmailAddress: Optional. The email address of the contact.
	EmailAddress string `json:"emailAddress,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EmailAddress") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EmailAddress") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControl: Defines a conditioned behavior to
// employ during serving. Must be attached to a ServingConfig to be considered
// at serving time. Permitted actions dependent on `SolutionType`.
type GoogleCloudDiscoveryengineV1alphaControl struct {
	// AssociatedServingConfigIds: Output only. List of all ServingConfig IDs this
	// control is attached to. May take up to 10 minutes to update after changes.
	AssociatedServingConfigIds []string `json:"associatedServingConfigIds,omitempty"`
	// BoostAction: Defines a boost-type control
	BoostAction *GoogleCloudDiscoveryengineV1alphaControlBoostAction `json:"boostAction,omitempty"`
	// Conditions: Determines when the associated action will trigger. Omit to
	// always apply the action. Currently only a single condition may be specified.
	// Otherwise an INVALID ARGUMENT error is thrown.
	Conditions []*GoogleCloudDiscoveryengineV1alphaCondition `json:"conditions,omitempty"`
	// DisplayName: Required. Human readable name. The identifier used in UI views.
	// Must be UTF-8 encoded string. Length limit is 128 characters. Otherwise an
	// INVALID ARGUMENT error is thrown.
	DisplayName string `json:"displayName,omitempty"`
	// FilterAction: Defines a filter-type control Currently not supported by
	// Recommendation
	FilterAction *GoogleCloudDiscoveryengineV1alphaControlFilterAction `json:"filterAction,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/*/locations/global/dataStore/*/controls/*`
	Name string `json:"name,omitempty"`
	// PromoteAction: Promote certain links based on predefined trigger queries.
	PromoteAction *GoogleCloudDiscoveryengineV1alphaControlPromoteAction `json:"promoteAction,omitempty"`
	// RedirectAction: Defines a redirect-type control.
	RedirectAction *GoogleCloudDiscoveryengineV1alphaControlRedirectAction `json:"redirectAction,omitempty"`
	// SolutionType: Required. Immutable. What solution the control belongs to.
	// Must be compatible with vertical of resource. Otherwise an INVALID ARGUMENT
	// error is thrown.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// SynonymsAction: Treats a group of terms as synonyms of one another.
	SynonymsAction *GoogleCloudDiscoveryengineV1alphaControlSynonymsAction `json:"synonymsAction,omitempty"`
	// UseCases: Specifies the use case for the control. Affects what condition
	// fields can be set. Only applies to SOLUTION_TYPE_SEARCH. Currently only
	// allow one use case per control. Must be set when solution_type is
	// SolutionType.SOLUTION_TYPE_SEARCH.
	//
	// Possible values:
	//   "SEARCH_USE_CASE_UNSPECIFIED" - Value used when unset. Will not occur in
	// CSS.
	//   "SEARCH_USE_CASE_SEARCH" - Search use case. Expects the traffic has a
	// non-empty query.
	//   "SEARCH_USE_CASE_BROWSE" - Browse use case. Expects the traffic has an
	// empty query.
	UseCases []string `json:"useCases,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AssociatedServingConfigIds")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssociatedServingConfigIds") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControlBoostAction: Adjusts order of
// products in returned list.
type GoogleCloudDiscoveryengineV1alphaControlBoostAction struct {
	// Boost: Strength of the boost, which should be in [-1, 1]. Negative boost
	// means demotion. Default is 0.0 (No-op).
	Boost float64 `json:"boost,omitempty"`
	// DataStore: Required. Specifies which data store's documents can be boosted
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. Specifies which products to apply the boost to. If no
	// filter is provided all products will be boosted (No-op). Syntax
	// documentation: https://cloud.google.com/retail/docs/filter-and-order Maximum
	// length is 5000 characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// FixedBoost: Optional. Strength of the boost, which should be in [-1, 1].
	// Negative boost means demotion. Default is 0.0 (No-op).
	FixedBoost float64 `json:"fixedBoost,omitempty"`
	// InterpolationBoostSpec: Optional. Complex specification for custom ranking
	// based on customer defined attribute value.
	InterpolationBoostSpec *GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpec `json:"interpolationBoostSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpec:
// Specification for custom ranking based on customer specified attribute
// value. It provides more controls for customized ranking than the simple
// (condition, boost) combination above.
type GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpec struct {
	// AttributeType: Optional. The attribute type to be used to determine the
	// boost amount. The attribute value can be derived from the field value of the
	// specified field_name. In the case of numerical it is straightforward i.e.
	// attribute_value = numerical_field_value. In the case of freshness however,
	// attribute_value = (time.now() - datetime_field_value).
	//
	// Possible values:
	//   "ATTRIBUTE_TYPE_UNSPECIFIED" - Unspecified AttributeType.
	//   "NUMERICAL" - The value of the numerical field will be used to dynamically
	// update the boost amount. In this case, the attribute_value (the x value) of
	// the control point will be the actual value of the numerical field for which
	// the boost_amount is specified.
	//   "FRESHNESS" - For the freshness use case the attribute value will be the
	// duration between the current time and the date in the datetime field
	// specified. The value must be formatted as an XSD `dayTimeDuration` value (a
	// restricted subset of an ISO 8601 duration value). The pattern for this is:
	// `nDnM]`. For example, `5D`, `3DT12H30M`, `T24H`.
	AttributeType string `json:"attributeType,omitempty"`
	// ControlPoints: Optional. The control points used to define the curve. The
	// monotonic function (defined through the interpolation_type above) passes
	// through the control points listed here.
	ControlPoints []*GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpecControlPoint `json:"controlPoints,omitempty"`
	// FieldName: Optional. The name of the field whose value will be used to
	// determine the boost amount.
	FieldName string `json:"fieldName,omitempty"`
	// InterpolationType: Optional. The interpolation type to be applied to connect
	// the control points listed below.
	//
	// Possible values:
	//   "INTERPOLATION_TYPE_UNSPECIFIED" - Interpolation type is unspecified. In
	// this case, it defaults to Linear.
	//   "LINEAR" - Piecewise linear interpolation will be applied.
	InterpolationType string `json:"interpolationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpecCont
// rolPoint: The control points used to define the curve. The curve defined
// through these control points can only be monotonically increasing or
// decreasing(constant values are acceptable).
type GoogleCloudDiscoveryengineV1alphaControlBoostActionInterpolationBoostSpecControlPoint struct {
	// AttributeValue: Optional. Can be one of: 1. The numerical field value. 2.
	// The duration spec for freshness: The value must be formatted as an XSD
	// `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value).
	// The pattern for this is: `nDnM]`.
	AttributeValue string `json:"attributeValue,omitempty"`
	// BoostAmount: Optional. The value between -1 to 1 by which to boost the score
	// if the attribute_value evaluates to the value specified above.
	BoostAmount float64 `json:"boostAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaControlFilterAction: Specified which
// products may be included in results. Uses same filter as boost.
type GoogleCloudDiscoveryengineV1alphaControlFilterAction struct {
	// DataStore: Required. Specifies which data store's documents can be filtered
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. A filter to apply on the matching condition results.
	// Required Syntax documentation:
	// https://cloud.google.com/retail/docs/filter-and-order Maximum length is 5000
	// characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControlPromoteAction: Promote certain links
// based on some trigger queries. Example: Promote shoe store link when
// searching for `shoe` keyword. The link can be outside of associated data
// store.
type GoogleCloudDiscoveryengineV1alphaControlPromoteAction struct {
	// DataStore: Required. Data store with which this promotion is attached to.
	DataStore string `json:"dataStore,omitempty"`
	// SearchLinkPromotion: Required. Promotion attached to this action.
	SearchLinkPromotion *GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion `json:"searchLinkPromotion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControlRedirectAction: Redirects a shopper
// to the provided URI.
type GoogleCloudDiscoveryengineV1alphaControlRedirectAction struct {
	// RedirectUri: Required. The URI to which the shopper will be redirected.
	// Required. URI must have length equal or less than 2000 characters. Otherwise
	// an INVALID ARGUMENT error is thrown.
	RedirectUri string `json:"redirectUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RedirectUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RedirectUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaControlSynonymsAction: Creates a set of
// terms that will act as synonyms of one another. Example: "happy" will also
// be considered as "glad", "glad" will also be considered as "happy".
type GoogleCloudDiscoveryengineV1alphaControlSynonymsAction struct {
	// Synonyms: Defines a set of synonyms. Can specify up to 100 synonyms. Must
	// specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is thrown.
	Synonyms []string `json:"synonyms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Synonyms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Synonyms") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConversation: External conversation proto
// definition.
type GoogleCloudDiscoveryengineV1alphaConversation struct {
	// EndTime: Output only. The time the conversation finished.
	EndTime string `json:"endTime,omitempty"`
	// Messages: Conversation messages.
	Messages []*GoogleCloudDiscoveryengineV1alphaConversationMessage `json:"messages,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/{project}/locations/global/collections/{collection}/dataStore/*/con
	// versations/*` or
	// `projects/{project}/locations/global/collections/{collection}/engines/*/conve
	// rsations/*`.
	Name string `json:"name,omitempty"`
	// StartTime: Output only. The time the conversation started.
	StartTime string `json:"startTime,omitempty"`
	// State: The state of the Conversation.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unknown.
	//   "IN_PROGRESS" - Conversation is currently open.
	//   "COMPLETED" - Conversation has been completed.
	State string `json:"state,omitempty"`
	// UserPseudoId: A unique identifier for tracking users.
	UserPseudoId string `json:"userPseudoId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConversationContext: Defines context of the
// conversation
type GoogleCloudDiscoveryengineV1alphaConversationContext struct {
	// ActiveDocument: The current active document the user opened. It contains the
	// document resource reference.
	ActiveDocument string `json:"activeDocument,omitempty"`
	// ContextDocuments: The current list of documents the user is seeing. It
	// contains the document resource references.
	ContextDocuments []string `json:"contextDocuments,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveDocument") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveDocument") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConversationMessage: Defines a conversation
// message.
type GoogleCloudDiscoveryengineV1alphaConversationMessage struct {
	// CreateTime: Output only. Message creation timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// Reply: Search reply.
	Reply *GoogleCloudDiscoveryengineV1alphaReply `json:"reply,omitempty"`
	// UserInput: User text input.
	UserInput *GoogleCloudDiscoveryengineV1alphaTextInput `json:"userInput,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConverseConversationRequest: Request
// message for ConversationalSearchService.ConverseConversation method.
type GoogleCloudDiscoveryengineV1alphaConverseConversationRequest struct {
	// BoostSpec: Boost specification to boost certain documents in search results
	// which may affect the converse response. For more information on boosting,
	// see Boosting (https://cloud.google.com/retail/docs/boosting#boost)
	BoostSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// Conversation: The conversation to be used by auto session only. The name
	// field will be ignored as we automatically assign new name for the
	// conversation in auto session.
	Conversation *GoogleCloudDiscoveryengineV1alphaConversation `json:"conversation,omitempty"`
	// Filter: The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. Filter expression is case-sensitive. This will be used to filter
	// search results which may affect the summary response. If this field is
	// unrecognizable, an `INVALID_ARGUMENT` is returned. Filtering in Vertex AI
	// Search is done by mapping the LHS filter key to a key property defined in
	// the Vertex AI Search backend -- this mapping is defined by the customer in
	// their schema. For example a media customer might have a field 'name' in
	// their schema. In this case the filter would look like this: filter -->
	// name:'ANY("king kong")' For more information about filtering including
	// syntax and filter operators, see Filter
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// Query: Required. Current user input.
	Query *GoogleCloudDiscoveryengineV1alphaTextInput `json:"query,omitempty"`
	// SafeSearch: Whether to turn on safe search.
	SafeSearch bool `json:"safeSearch,omitempty"`
	// ServingConfig: The resource name of the Serving Config to use. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store_id}/servingConfigs/{serving_config_id}` If this is not set, the
	// default serving config will be used.
	ServingConfig string `json:"servingConfig,omitempty"`
	// SummarySpec: A specification for configuring the summary returned in the
	// response.
	SummarySpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpec `json:"summarySpec,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaConverseConversationResponse: Response
// message for ConversationalSearchService.ConverseConversation method.
type GoogleCloudDiscoveryengineV1alphaConverseConversationResponse struct {
	// Conversation: Updated conversation including the answer.
	Conversation *GoogleCloudDiscoveryengineV1alphaConversation `json:"conversation,omitempty"`
	// RelatedQuestions: Suggested related questions.
	RelatedQuestions []string `json:"relatedQuestions,omitempty"`
	// Reply: Answer to the current query.
	Reply *GoogleCloudDiscoveryengineV1alphaReply `json:"reply,omitempty"`
	// SearchResults: Search Results.
	SearchResults []*GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResult `json:"searchResults,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Conversation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Conversation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries: The historical crawl
// rate timeseries data, used for monitoring.
type GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries struct {
	// QpsTimeSeries: The QPS of the crawl rate.
	QpsTimeSeries *GoogleMonitoringV3TimeSeries `json:"qpsTimeSeries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QpsTimeSeries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QpsTimeSeries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateDataStoreMetadata: Metadata related
// to the progress of the DataStoreService.CreateDataStore operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaCreateDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateEngineMetadata: Metadata related to
// the progress of the EngineService.CreateEngine operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaCreateEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateEvaluationMetadata: Metadata for
// EvaluationService.CreateEvaluation method.
type GoogleCloudDiscoveryengineV1alphaCreateEvaluationMetadata struct {
}

// GoogleCloudDiscoveryengineV1alphaCreateSchemaMetadata: Metadata for Create
// Schema LRO.
type GoogleCloudDiscoveryengineV1alphaCreateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateSitemapMetadata: Metadata related to
// the progress of the SiteSearchEngineService.CreateSitemap operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaCreateSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.CreateTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaCreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCreateTargetSiteRequest: Request message
// for SiteSearchEngineService.CreateTargetSite method.
type GoogleCloudDiscoveryengineV1alphaCreateTargetSiteRequest struct {
	// Parent: Required. Parent resource name of TargetSite, such as
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/siteSearchEngine`.
	Parent string `json:"parent,omitempty"`
	// TargetSite: Required. The TargetSite to create.
	TargetSite *GoogleCloudDiscoveryengineV1alphaTargetSite `json:"targetSite,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Parent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Parent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCustomAttribute: A custom attribute that is
// not explicitly modeled in a resource, e.g. UserEvent.
type GoogleCloudDiscoveryengineV1alphaCustomAttribute struct {
	// Numbers: The numerical values of this custom attribute. For example, `[2.3,
	// 15.4]` when the key is "lengths_cm". Exactly one of CustomAttribute.text or
	// CustomAttribute.numbers should be set. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	Numbers []float64 `json:"numbers,omitempty"`
	// Text: The textual values of this custom attribute. For example, `["yellow",
	// "green"]` when the key is "color". Empty string is not allowed. Otherwise,
	// an `INVALID_ARGUMENT` error is returned. Exactly one of CustomAttribute.text
	// or CustomAttribute.numbers should be set. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	Text []string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Numbers") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Numbers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaCustomAttribute) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaCustomAttribute
	var s1 struct {
		Numbers []gensupport.JSONFloat64 `json:"numbers"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Numbers = make([]float64, len(s1.Numbers))
	for i := range s1.Numbers {
		s.Numbers[i] = float64(s1.Numbers[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1alphaCustomFineTuningSpec: Defines custom fine
// tuning spec.
type GoogleCloudDiscoveryengineV1alphaCustomFineTuningSpec struct {
	// EnableSearchAdaptor: Whether or not to enable and include custom fine tuned
	// search adaptor model.
	EnableSearchAdaptor bool `json:"enableSearchAdaptor,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableSearchAdaptor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableSearchAdaptor") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaCustomTuningModel: Metadata that describes
// a custom tuned model.
type GoogleCloudDiscoveryengineV1alphaCustomTuningModel struct {
	// CreateTime: Deprecated: Timestamp the Model was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: The display name of the model.
	DisplayName string `json:"displayName,omitempty"`
	// ErrorMessage: Currently this is only populated if the model state is
	// `INPUT_VALIDATION_FAILED`.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// Metrics: The metrics of the trained model.
	Metrics map[string]float64 `json:"metrics,omitempty"`
	// ModelState: The state that the model is in (e.g.`TRAINING` or
	// `TRAINING_FAILED`).
	//
	// Possible values:
	//   "MODEL_STATE_UNSPECIFIED" - Default value.
	//   "TRAINING_PAUSED" - The model is in a paused training state.
	//   "TRAINING" - The model is currently training.
	//   "TRAINING_COMPLETE" - The model has successfully completed training.
	//   "READY_FOR_SERVING" - The model is ready for serving.
	//   "TRAINING_FAILED" - The model training failed.
	//   "NO_IMPROVEMENT" - The model training finished successfully but metrics
	// did not improve.
	//   "INPUT_VALIDATION_FAILED" - Input data validation failed. Model training
	// didn't start.
	ModelState string `json:"modelState,omitempty"`
	// ModelVersion: The version of the model.
	ModelVersion int64 `json:"modelVersion,omitempty,string"`
	// Name: Required. The fully qualified resource name of the model. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/customTuningModels/{custom_tuning_model}`. Model must be an
	// alpha-numerical string with limit of 40 characters.
	Name string `json:"name,omitempty"`
	// TrainingStartTime: Timestamp the model training was initiated.
	TrainingStartTime string `json:"trainingStartTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataConnector: Manages the connection to
// external data sources for all data stores grouped under a Collection. It's a
// singleton resource of Collection. The initialization is only supported
// through DataConnectorService.SetUpDataConnector method, which will create a
// new Collection and initialize its DataConnector.
type GoogleCloudDiscoveryengineV1alphaDataConnector struct {
	// AclEnabled: Optional. Whether the connector will be created with an ACL
	// config. Currently this field only affects Cloud Storage and BigQuery
	// connectors.
	AclEnabled bool `json:"aclEnabled,omitempty"`
	// ActionConfig: Optional. Action configurations to make the connector support
	// actions.
	ActionConfig *GoogleCloudDiscoveryengineV1alphaActionConfig `json:"actionConfig,omitempty"`
	// ActionState: Output only. State of the action connector. This reflects
	// whether the action connector is initializing, active or has encountered
	// errors.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	ActionState string `json:"actionState,omitempty"`
	// AlertPolicyConfigs: Optional. The connector level alert config.
	AlertPolicyConfigs []*GoogleCloudDiscoveryengineV1alphaAlertPolicyConfig `json:"alertPolicyConfigs,omitempty"`
	// AutoRunDisabled: Optional. Indicates whether the connector is disabled for
	// auto run. It can be used to pause periodical and real time sync. Update:
	// with the introduction of incremental_sync_disabled, auto_run_disabled is
	// used to pause/disable only full syncs
	AutoRunDisabled bool `json:"autoRunDisabled,omitempty"`
	// BapConfig: Optional. The configuration for establishing a BAP connection.
	BapConfig *GoogleCloudDiscoveryengineV1alphaBAPConfig `json:"bapConfig,omitempty"`
	// BlockingReasons: Output only. User actions that must be completed before the
	// connector can start syncing data.
	//
	// Possible values:
	//   "BLOCKING_REASON_UNSPECIFIED" - Default value.
	//   "ALLOWLIST_STATIC_IP" - Connector requires customer to allowlist static
	// IPs.
	//   "ALLOWLIST_IN_SERVICE_ATTACHMENT" - Connector requires customer to
	// allowlist our project in their service attachment.
	//   "ALLOWLIST_SERVICE_ACCOUNT" - Connector requires customer to allowlist
	// service account in their project.
	BlockingReasons []string `json:"blockingReasons,omitempty"`
	// ConnectorModes: Optional. The modes enabled for this connector. Default
	// state is CONNECTOR_MODE_UNSPECIFIED.
	//
	// Possible values:
	//   "CONNECTOR_MODE_UNSPECIFIED" - Connector mode unspecified.
	//   "DATA_INGESTION" - Connector utilized for data ingestion.
	//   "ACTIONS" - Connector utilized for actions.
	//   "FEDERATED" - Connector utilized for federated search.
	//   "EUA" - Connector utilized for End User Authentication.
	//   "FEDERATED_AND_EUA" - Hybrid connector utilized for federated search and
	// End User Authentication.
	ConnectorModes []string `json:"connectorModes,omitempty"`
	// ConnectorType: Output only. The type of connector. Each source can only map
	// to one type. For example, salesforce, confluence and jira have THIRD_PARTY
	// connector type. It is not mutable once set by system.
	//
	// Possible values:
	//   "CONNECTOR_TYPE_UNSPECIFIED" - Default value.
	//   "THIRD_PARTY" - Third party connector to connector to third party
	// application.
	//   "GCP_FHIR" - Data connector connects between FHIR store and VAIS
	// datastore.
	//   "BIG_QUERY" - Big query connector.
	//   "GCS" - Google Cloud Storage connector.
	//   "GOOGLE_MAIL" - Gmail connector.
	//   "GOOGLE_CALENDAR" - Google Calendar connector.
	//   "GOOGLE_DRIVE" - Google Drive connector.
	//   "NATIVE_CLOUD_IDENTITY" - Native Cloud Identity connector for people
	// search powered by People API.
	//   "THIRD_PARTY_FEDERATED" - Federated connector, it is a third party
	// connector that doesn't ingestion data, and search is powered by third party
	// application's API.
	//   "THIRD_PARTY_EUA" - Connector utilized for End User Authentication
	// features.
	//   "GCNV" - Google Cloud NetApp Volumes connector.
	ConnectorType string `json:"connectorType,omitempty"`
	// CreateEuaSaas: Optional. Whether the END USER AUTHENTICATION connector is
	// created in SaaS.
	CreateEuaSaas bool `json:"createEuaSaas,omitempty"`
	// CreateTime: Output only. Timestamp the DataConnector was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataSource: Required. The name of the data source. Supported values:
	// `salesforce`, `jira`, `confluence`, `bigquery`.
	DataSource string `json:"dataSource,omitempty"`
	// DestinationConfigs: Optional. Any target destinations used to connect to
	// third-party services.
	DestinationConfigs []*GoogleCloudDiscoveryengineV1alphaDestinationConfig `json:"destinationConfigs,omitempty"`
	// EndUserConfig: Optional. Any params and credentials used specifically for
	// EUA connectors.
	EndUserConfig *GoogleCloudDiscoveryengineV1alphaDataConnectorEndUserConfig `json:"endUserConfig,omitempty"`
	// Entities: List of entities from the connected data source to ingest.
	Entities []*GoogleCloudDiscoveryengineV1alphaDataConnectorSourceEntity `json:"entities,omitempty"`
	// Errors: Output only. The errors from initialization or from the latest
	// connector run.
	Errors []*GoogleRpcStatus `json:"errors,omitempty"`
	// FederatedConfig: Optional. Any params and credentials used specifically for
	// hybrid connectors supporting FEDERATED mode. This field should only be set
	// if the connector is a hybrid connector and we want to enable FEDERATED mode.
	FederatedConfig *GoogleCloudDiscoveryengineV1alphaDataConnectorFederatedConfig `json:"federatedConfig,omitempty"`
	// HybridIngestionDisabled: Optional. If the connector is a hybrid connector,
	// determines whether ingestion is enabled and appropriate resources are
	// provisioned during connector creation. If the connector is not a hybrid
	// connector, this field is ignored.
	HybridIngestionDisabled bool `json:"hybridIngestionDisabled,omitempty"`
	// IdentityRefreshInterval: The refresh interval to sync the Access Control
	// List information for the documents ingested by this connector. If not set,
	// the access control list will be refreshed at the default interval of 30
	// minutes. The identity refresh interval can be at least 30 minutes and at
	// most 7 days.
	IdentityRefreshInterval string `json:"identityRefreshInterval,omitempty"`
	// IdentityScheduleConfig: The configuration for the identity data
	// synchronization runs. This contains the refresh interval to sync the Access
	// Control List information for the documents ingested by this connector.
	IdentityScheduleConfig *GoogleCloudDiscoveryengineV1alphaIdentityScheduleConfig `json:"identityScheduleConfig,omitempty"`
	// IncrementalRefreshInterval: Optional. The refresh interval specifically for
	// incremental data syncs. If unset, incremental syncs will use the default
	// from env, set to 3hrs. The minimum is 30 minutes and maximum is 7 days.
	// Applicable to only 3P connectors. When the refresh interval is set to the
	// same value as the incremental refresh interval, incremental sync will be
	// disabled.
	IncrementalRefreshInterval string `json:"incrementalRefreshInterval,omitempty"`
	// IncrementalSyncDisabled: Optional. Indicates whether incremental syncs are
	// paused for this connector. This is independent of auto_run_disabled.
	// Applicable to only 3P connectors. When the refresh interval is set to the
	// same value as the incremental refresh interval, incremental sync will be
	// disabled, i.e. set to true.
	IncrementalSyncDisabled bool `json:"incrementalSyncDisabled,omitempty"`
	// JsonParams: Required data connector parameters in json string format.
	JsonParams string `json:"jsonParams,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect the DataStores
	// managed by this connector. Must be set for requests that need to comply with
	// CMEK Org Policy protections. If this field is set and processed
	// successfully, the DataStores created by this connector will be protected by
	// the KMS key.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// LastSyncTime: Output only. For periodic connectors only, the last time a
	// data sync was completed.
	LastSyncTime string `json:"lastSyncTime,omitempty"`
	// LatestPauseTime: Output only. The most recent timestamp when this
	// DataConnector was paused, affecting all functionalities such as data
	// synchronization. Pausing a connector has the following effects: - All
	// functionalities, including data synchronization, are halted. - Any ongoing
	// data synchronization job will be canceled. - No future data synchronization
	// runs will be scheduled nor can be triggered.
	LatestPauseTime string `json:"latestPauseTime,omitempty"`
	// Name: Output only. The full resource name of the Data Connector. Format:
	// `projects/*/locations/*/collections/*/dataConnector`.
	Name string `json:"name,omitempty"`
	// NextSyncTime: Defines the scheduled time for the next data synchronization.
	// This field requires hour , minute, and time_zone from the IANA Time Zone
	// Database (https://www.iana.org/time-zones). This is utilized when the data
	// connector has a refresh interval greater than 1 day. When the hours or
	// minutes are not specified, we will assume a sync time of 0:00. The user must
	// provide a time zone to avoid ambiguity.
	NextSyncTime *GoogleTypeDateTime `json:"nextSyncTime,omitempty"`
	// Params: Required data connector parameters in structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// PrivateConnectivityProjectId: Output only. The tenant project ID associated
	// with private connectivity connectors. This project must be allowlisted by in
	// order for the connector to function.
	PrivateConnectivityProjectId string `json:"privateConnectivityProjectId,omitempty"`
	// RealtimeState: Output only. real-time sync state
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	RealtimeState string `json:"realtimeState,omitempty"`
	// RealtimeSyncConfig: Optional. The configuration for realtime sync.
	RealtimeSyncConfig *GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfig `json:"realtimeSyncConfig,omitempty"`
	// RefreshInterval: Required. The refresh interval for data sync. If duration
	// is set to 0, the data will be synced in real time. The streaming feature is
	// not supported yet. The minimum is 30 minutes and maximum is 7 days. When the
	// refresh interval is set to the same value as the incremental refresh
	// interval, incremental sync will be disabled.
	RefreshInterval string `json:"refreshInterval,omitempty"`
	// RemoveParamKeys: Optional. Specifies keys to be removed from the 'params'
	// field. This is only active when 'params' is included in the 'update_mask' in
	// an UpdateDataConnectorRequest. Deletion takes precedence if a key is both in
	// 'remove_param_keys' and present in the 'params' field of the request.
	RemoveParamKeys []string `json:"removeParamKeys,omitempty"`
	// State: Output only. State of the connector.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value.
	//   "CREATING" - The connector is being set up.
	//   "ACTIVE" - The connector is successfully set up and awaiting next sync
	// run.
	//   "FAILED" - The connector is in error. The error details can be found in
	// DataConnector.errors. If the error is unfixable, the DataConnector can be
	// deleted by [CollectionService.DeleteCollection] API.
	//   "RUNNING" - The connector is actively syncing records from the data
	// source.
	//   "WARNING" - The connector has completed a sync run, but encountered
	// non-fatal errors.
	//   "INITIALIZATION_FAILED" - Connector initialization failed. Potential
	// causes include runtime errors or issues in the asynchronous pipeline,
	// preventing the request from reaching downstream services (except for some
	// connector types).
	//   "UPDATING" - Connector is in the process of an update.
	State string `json:"state,omitempty"`
	// StaticIpAddresses: Output only. The static IP addresses used by this
	// connector.
	StaticIpAddresses []string `json:"staticIpAddresses,omitempty"`
	// StaticIpEnabled: Optional. Whether customer has enabled static IP addresses
	// for this connector.
	StaticIpEnabled bool `json:"staticIpEnabled,omitempty"`
	// SyncMode: The data synchronization mode supported by the data connector.
	//
	// Possible values:
	//   "PERIODIC" - The connector will sync data periodically based on the
	// refresh_interval. Use it with auto_run_disabled to pause the periodic sync,
	// or indicate a one-time sync.
	//   "STREAMING" - The data will be synced in real time.
	//   "UNSPECIFIED" - Connector that doesn't ingest data will have this value
	SyncMode string `json:"syncMode,omitempty"`
	// UpdateTime: Output only. Timestamp the DataConnector was last updated.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AclEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataConnectorEndUserConfig: Any params and
// credentials used specifically for EUA connectors.
type GoogleCloudDiscoveryengineV1alphaDataConnectorEndUserConfig struct {
	// AdditionalParams: Optional. Any additional parameters needed for EUA.
	AdditionalParams googleapi.RawMessage `json:"additionalParams,omitempty"`
	// AuthParams: Optional. Any authentication parameters specific to EUA
	// connectors.
	AuthParams googleapi.RawMessage `json:"authParams,omitempty"`
	// JsonAuthParams: Optional. Any authentication parameters specific to EUA
	// connectors in json string format.
	JsonAuthParams string `json:"jsonAuthParams,omitempty"`
	// Tenant: Optional. The tenant project the connector is connected to.
	Tenant *GoogleCloudDiscoveryengineV1alphaTenant `json:"tenant,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalParams") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataConnectorFederatedConfig: Any params
// and credentials used specifically for hybrid connectors supporting FEDERATED
// mode.
type GoogleCloudDiscoveryengineV1alphaDataConnectorFederatedConfig struct {
	// AdditionalParams: Optional. Any additional parameters needed for FEDERATED.
	AdditionalParams googleapi.RawMessage `json:"additionalParams,omitempty"`
	// AuthParams: Optional. Any authentication parameters specific to FEDERATED
	// connectors.
	AuthParams googleapi.RawMessage `json:"authParams,omitempty"`
	// JsonAuthParams: Optional. Any authentication parameters specific to
	// FEDERATED connectors in json string format.
	JsonAuthParams string `json:"jsonAuthParams,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalParams") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalParams") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfig: The
// configuration for realtime sync to store additional params for realtime
// sync.
type GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfig struct {
	// RealtimeSyncSecret: Optional. The ID of the Secret Manager secret used for
	// webhook secret.
	RealtimeSyncSecret string `json:"realtimeSyncSecret,omitempty"`
	// StreamingError: Optional. Streaming error details.
	StreamingError *GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfigStreamingError `json:"streamingError,omitempty"`
	// WebhookUri: Optional. Webhook url for the connector to specify additional
	// params for realtime sync.
	WebhookUri string `json:"webhookUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RealtimeSyncSecret") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RealtimeSyncSecret") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfigStreamingErro
// r: Streaming error details.
type GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfigStreamingError struct {
	// Error: Optional. Error details.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// StreamingErrorReason: Optional. Streaming error.
	//
	// Possible values:
	//   "STREAMING_ERROR_REASON_UNSPECIFIED" - Streaming error reason unspecified.
	//   "STREAMING_SETUP_ERROR" - Some error occurred while setting up resources
	// for realtime sync.
	//   "STREAMING_SYNC_ERROR" - Some error was encountered while running realtime
	// sync for the connector.
	//   "INGRESS_ENDPOINT_REQUIRED" - Ingress endpoint is required when setting up
	// realtime sync in private connectivity.
	StreamingErrorReason string `json:"streamingErrorReason,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 GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfigStreamingError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaDataConnectorRealtimeSyncConfigStreamingError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaDataConnectorSourceEntity: Represents an
// entity in the data source. For example, the `Account` object in Salesforce.
type GoogleCloudDiscoveryengineV1alphaDataConnectorSourceEntity struct {
	// DataStore: Output only. The full resource name of the associated data store
	// for the source entity. Format:
	// `projects/*/locations/*/collections/*/dataStores/*`. When the connector is
	// initialized by the DataConnectorService.SetUpDataConnector method, a
	// DataStore is automatically created for each source entity.
	DataStore string `json:"dataStore,omitempty"`
	// EntityName: The name of the entity. Supported values by data source: *
	// Salesforce: `Lead`, `Opportunity`, `Contact`, `Account`, `Case`, `Contract`,
	// `Campaign` * Jira: `Issue` * Confluence: `Content`, `Space`
	EntityName string `json:"entityName,omitempty"`
	// HealthcareFhirConfig: Optional. Configuration for `HEALTHCARE_FHIR`
	// vertical.
	HealthcareFhirConfig *GoogleCloudDiscoveryengineV1alphaHealthcareFhirConfig `json:"healthcareFhirConfig,omitempty"`
	// JsonParams: The parameters for the entity to facilitate data ingestion in
	// json string format.
	JsonParams string `json:"jsonParams,omitempty"`
	// KeyPropertyMappings: Attributes for indexing. Key: Field name. Value: The
	// key property to map a field to, such as `title`, and `description`.
	// Supported key properties: * `title`: The title for data record. This would
	// be displayed on search results. * `description`: The description for data
	// record. This would be displayed on search results.
	KeyPropertyMappings map[string]string `json:"keyPropertyMappings,omitempty"`
	// Params: The parameters for the entity to facilitate data ingestion in
	// structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// StartingSchema: Optional. The start schema to use for the DataStore created
	// from this SourceEntity. If unset, a default vertical specialized schema will
	// be used. This field is only used by SetUpDataConnector API, and will be
	// ignored if used in other APIs. This field will be omitted from all API
	// responses including GetDataConnector API. To retrieve a schema of a
	// DataStore, use SchemaService.GetSchema API instead. The provided schema will
	// be validated against certain rules on schema. Learn more from this doc
	// (https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
	StartingSchema *GoogleCloudDiscoveryengineV1alphaSchema `json:"startingSchema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataStore: DataStore captures global
// settings and configs at the DataStore level.
type GoogleCloudDiscoveryengineV1alphaDataStore struct {
	// AclEnabled: Immutable. Whether data in the DataStore has ACL information. If
	// set to `true`, the source data must have ACL. ACL will be ingested when data
	// is ingested by DocumentService.ImportDocuments methods. When ACL is enabled
	// for the DataStore, Document can't be accessed by calling
	// DocumentService.GetDocument or DocumentService.ListDocuments. Currently ACL
	// is only supported in `GENERIC` industry vertical with non-`PUBLIC_WEBSITE`
	// content config.
	AclEnabled bool `json:"aclEnabled,omitempty"`
	// AdvancedSiteSearchConfig: Optional. Configuration for advanced site search.
	AdvancedSiteSearchConfig *GoogleCloudDiscoveryengineV1alphaAdvancedSiteSearchConfig `json:"advancedSiteSearchConfig,omitempty"`
	// BillingEstimation: Output only. Data size estimation for billing.
	BillingEstimation *GoogleCloudDiscoveryengineV1alphaDataStoreBillingEstimation `json:"billingEstimation,omitempty"`
	// CmekConfig: Output only. CMEK-related information for the DataStore.
	CmekConfig *GoogleCloudDiscoveryengineV1alphaCmekConfig `json:"cmekConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach. See
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach.
	//   "CONFIGURABLE_SUBSCRIPTION_INDEXING_CORE" - Use the subscription base +
	// overage billing for indexing core for non embedding storage.
	//   "CONFIGURABLE_CONSUMPTION_EMBEDDING" - Use the consumption pay-as-you-go
	// billing for embedding storage add-on.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// ContentConfig: Immutable. The content config of the data store. If this
	// field is unset, the server behavior defaults to ContentConfig.NO_CONTENT.
	//
	// Possible values:
	//   "CONTENT_CONFIG_UNSPECIFIED" - Default value.
	//   "NO_CONTENT" - Only contains documents without any Document.content.
	//   "CONTENT_REQUIRED" - Only contains documents with Document.content.
	//   "PUBLIC_WEBSITE" - The data store is used for public website search.
	//   "GOOGLE_WORKSPACE" - The data store is used for workspace search. Details
	// of workspace data store are specified in the WorkspaceConfig.
	ContentConfig string `json:"contentConfig,omitempty"`
	// CreateTime: Output only. Timestamp the DataStore was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DefaultSchemaId: Output only. The id of the default Schema associated to
	// this data store.
	DefaultSchemaId string `json:"defaultSchemaId,omitempty"`
	// DisplayName: Required. The data store display name. This field must be a
	// UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// DocumentProcessingConfig: Configuration for Document understanding and
	// enrichment.
	DocumentProcessingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig `json:"documentProcessingConfig,omitempty"`
	// HealthcareFhirConfig: Optional. Configuration for `HEALTHCARE_FHIR`
	// vertical.
	HealthcareFhirConfig *GoogleCloudDiscoveryengineV1alphaHealthcareFhirConfig `json:"healthcareFhirConfig,omitempty"`
	// IdentityMappingStore: Immutable. The fully qualified resource name of the
	// associated IdentityMappingStore. This field can only be set for acl_enabled
	// DataStores with `THIRD_PARTY` or `GSUITE` IdP. Format:
	// `projects/{project}/locations/{location}/identityMappingStores/{identity_mapp
	// ing_store}`.
	IdentityMappingStore string `json:"identityMappingStore,omitempty"`
	// IdpConfig: Output only. Data store level identity provider config.
	IdpConfig *GoogleCloudDiscoveryengineV1alphaIdpConfig `json:"idpConfig,omitempty"`
	// IndustryVertical: Immutable. The industry vertical that the data store
	// registers.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// IsInfobotFaqDataStore: Optional. If set, this DataStore is an Infobot FAQ
	// DataStore.
	IsInfobotFaqDataStore bool `json:"isInfobotFaqDataStore,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect this DataStore at
	// creation time. Must be set for requests that need to comply with CMEK Org
	// Policy protections. If this field is set and processed successfully, the
	// DataStore will be protected by the KMS key, as indicated in the cmek_config
	// field.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// LanguageInfo: Language info for DataStore.
	LanguageInfo *GoogleCloudDiscoveryengineV1alphaLanguageInfo `json:"languageInfo,omitempty"`
	// Name: Immutable. Identifier. The full resource name of the data store.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. This field must be a UTF-8 encoded string with a length
	// limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// NaturalLanguageQueryUnderstandingConfig: Optional. Configuration for Natural
	// Language Query Understanding.
	NaturalLanguageQueryUnderstandingConfig *GoogleCloudDiscoveryengineV1alphaNaturalLanguageQueryUnderstandingConfig `json:"naturalLanguageQueryUnderstandingConfig,omitempty"`
	// ServingConfigDataStore: Optional. Stores serving config at DataStore level.
	ServingConfigDataStore *GoogleCloudDiscoveryengineV1alphaDataStoreServingConfigDataStore `json:"servingConfigDataStore,omitempty"`
	// SolutionTypes: The solutions that the data store enrolls. Available
	// solutions for each industry_vertical: * `MEDIA`:
	// `SOLUTION_TYPE_RECOMMENDATION` and `SOLUTION_TYPE_SEARCH`. * `SITE_SEARCH`:
	// `SOLUTION_TYPE_SEARCH` is automatically enrolled. Other solutions cannot be
	// enrolled.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionTypes []string `json:"solutionTypes,omitempty"`
	// StartingSchema: The start schema to use for this DataStore when provisioning
	// it. If unset, a default vertical specialized schema will be used. This field
	// is only used by CreateDataStore API, and will be ignored if used in other
	// APIs. This field will be omitted from all API responses including
	// CreateDataStore API. To retrieve a schema of a DataStore, use
	// SchemaService.GetSchema API instead. The provided schema will be validated
	// against certain rules on schema. Learn more from this doc
	// (https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
	StartingSchema *GoogleCloudDiscoveryengineV1alphaSchema `json:"startingSchema,omitempty"`
	// WorkspaceConfig: Config to store data store type configuration for workspace
	// data. This must be set when DataStore.content_config is set as
	// DataStore.ContentConfig.GOOGLE_WORKSPACE.
	WorkspaceConfig *GoogleCloudDiscoveryengineV1alphaWorkspaceConfig `json:"workspaceConfig,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AclEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataStoreBillingEstimation: Estimation of
// data size per data store.
type GoogleCloudDiscoveryengineV1alphaDataStoreBillingEstimation struct {
	// StructuredDataSize: Data size for structured data in terms of bytes.
	StructuredDataSize int64 `json:"structuredDataSize,omitempty,string"`
	// StructuredDataUpdateTime: Last updated timestamp for structured data.
	StructuredDataUpdateTime string `json:"structuredDataUpdateTime,omitempty"`
	// UnstructuredDataSize: Data size for unstructured data in terms of bytes.
	UnstructuredDataSize int64 `json:"unstructuredDataSize,omitempty,string"`
	// UnstructuredDataUpdateTime: Last updated timestamp for unstructured data.
	UnstructuredDataUpdateTime string `json:"unstructuredDataUpdateTime,omitempty"`
	// WebsiteDataSize: Data size for websites in terms of bytes.
	WebsiteDataSize int64 `json:"websiteDataSize,omitempty,string"`
	// WebsiteDataUpdateTime: Last updated timestamp for websites.
	WebsiteDataUpdateTime string `json:"websiteDataUpdateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StructuredDataSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StructuredDataSize") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDataStoreServingConfigDataStore: Stores
// information regarding the serving configurations at DataStore level.
type GoogleCloudDiscoveryengineV1alphaDataStoreServingConfigDataStore struct {
	// DisabledForServing: Optional. If set true, the DataStore will not be
	// available for serving search requests.
	DisabledForServing bool `json:"disabledForServing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisabledForServing") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisabledForServing") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDedicatedCrawlRateTimeSeries: The
// historical dedicated crawl rate timeseries data, used for monitoring.
// Dedicated crawl is used by Vertex AI to crawl the user's website when
// dedicate crawl is set.
type GoogleCloudDiscoveryengineV1alphaDedicatedCrawlRateTimeSeries struct {
	// AutoRefreshCrawlErrorRate: Vertex AI's error rate time series of
	// auto-refresh dedicated crawl.
	AutoRefreshCrawlErrorRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"autoRefreshCrawlErrorRate,omitempty"`
	// AutoRefreshCrawlRate: Vertex AI's dedicated crawl rate time series of
	// auto-refresh, which is the crawl rate of Google-CloudVertexBot when dedicate
	// crawl is set, and the crawl rate is for best effort use cases like
	// refreshing urls periodically.
	AutoRefreshCrawlRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"autoRefreshCrawlRate,omitempty"`
	// UserTriggeredCrawlErrorRate: Vertex AI's error rate time series of user
	// triggered dedicated crawl.
	UserTriggeredCrawlErrorRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"userTriggeredCrawlErrorRate,omitempty"`
	// UserTriggeredCrawlRate: Vertex AI's dedicated crawl rate time series of user
	// triggered crawl, which is the crawl rate of Google-CloudVertexBot when
	// dedicate crawl is set, and user triggered crawl rate is for deterministic
	// use cases like crawling urls or sitemaps specified by users.
	UserTriggeredCrawlRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"userTriggeredCrawlRate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoRefreshCrawlErrorRate")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoRefreshCrawlErrorRate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteCmekConfigMetadata: Metadata related
// to the progress of the CmekConfigService.DeleteCmekConfig operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteCmekConfigMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteCollectionMetadata: Metadata related
// to the progress of the CollectionService.UpdateCollection operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteCollectionMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteDataStoreMetadata: Metadata related
// to the progress of the DataStoreService.DeleteDataStore operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteEngineMetadata: Metadata related to
// the progress of the EngineService.DeleteEngine operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteIdentityMappingStoreMetadata:
// Metadata related to the progress of the
// IdentityMappingStoreService.DeleteIdentityMappingStore operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteIdentityMappingStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteSchemaMetadata: Metadata for
// DeleteSchema LRO.
type GoogleCloudDiscoveryengineV1alphaDeleteSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteSessionRequest: Request for
// DeleteSession method.
type GoogleCloudDiscoveryengineV1alphaDeleteSessionRequest struct {
	// Name: Required. The resource name of the Session to delete. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store_id}/sessions/{session_id}`
	Name string `json:"name,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 GoogleCloudDiscoveryengineV1alphaDeleteSessionRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaDeleteSessionRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaDeleteSitemapMetadata: Metadata related to
// the progress of the SiteSearchEngineService.DeleteSitemap operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.DeleteTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDeleteTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDeleteUserStoreMetadata: Metadata related
// to the progress of the UserStoreService.DeleteUserStore operation. This will
// be returned by the google.longrunning.Operation.metadata field. Delete
// UserStore will delete all the end users under the user store, return the
// number of end users successfully deleted or failed to delete in the
// metadata.
type GoogleCloudDiscoveryengineV1alphaDeleteUserStoreMetadata struct {
	// FailureCount: The number of end users under the user store that failed to be
	// deleted.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: The number of end users under the user store that were
	// successfully deleted.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FailureCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDestinationConfig: Defines target endpoints
// used to connect to third-party sources.
type GoogleCloudDiscoveryengineV1alphaDestinationConfig struct {
	// Destinations: Optional. The destinations for the corresponding key.
	Destinations []*GoogleCloudDiscoveryengineV1alphaDestinationConfigDestination `json:"destinations,omitempty"`
	// JsonParams: Additional parameters for this destination config in json string
	// format.
	JsonParams string `json:"jsonParams,omitempty"`
	// Key: Optional. Unique destination identifier that is supported by the
	// connector.
	Key string `json:"key,omitempty"`
	// Params: Optional. Additional parameters for this destination config in
	// structured json format.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Destinations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Destinations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDestinationConfigDestination: Defines a
// target endpoint
type GoogleCloudDiscoveryengineV1alphaDestinationConfigDestination struct {
	// Host: Publicly routable host.
	Host string `json:"host,omitempty"`
	// Port: Optional. Target port number accepted by the destination.
	Port int64 `json:"port,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Host") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Host") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.DisableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest: Request
// message for SiteSearchEngineService.DisableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.DisableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1alphaDocument: Document captures all raw
// metadata information of items to be recommended or searched.
type GoogleCloudDiscoveryengineV1alphaDocument struct {
	// AclInfo: Access control information for the document.
	AclInfo *GoogleCloudDiscoveryengineV1alphaDocumentAclInfo `json:"aclInfo,omitempty"`
	// Content: The unstructured data linked to this document. Content can only be
	// set and must be set if this document is under a `CONTENT_REQUIRED` data
	// store.
	Content *GoogleCloudDiscoveryengineV1alphaDocumentContent `json:"content,omitempty"`
	// DerivedStructData: Output only. This field is OUTPUT_ONLY. It contains
	// derived data that are not in the original input document.
	DerivedStructData googleapi.RawMessage `json:"derivedStructData,omitempty"`
	// Id: Immutable. The identifier of the document. Id should conform to RFC-1034
	// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 128
	// characters.
	Id string `json:"id,omitempty"`
	// IndexStatus: Output only. The index status of the document. * If document is
	// indexed successfully, the index_time field is populated. * Otherwise, if
	// document is not indexed due to errors, the error_samples field is populated.
	// * Otherwise, if document's index is in progress, the pending_message field
	// is populated.
	IndexStatus *GoogleCloudDiscoveryengineV1alphaDocumentIndexStatus `json:"indexStatus,omitempty"`
	// IndexTime: Output only. The last time the document was indexed. If this
	// field is set, the document could be returned in search results. This field
	// is OUTPUT_ONLY. If this field is not populated, it means the document has
	// never been indexed.
	IndexTime string `json:"indexTime,omitempty"`
	// JsonData: The JSON string representation of the document. It should conform
	// to the registered Schema or an `INVALID_ARGUMENT` error is thrown.
	JsonData string `json:"jsonData,omitempty"`
	// Name: Immutable. The full resource name of the document. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/branches/{branch}/documents/{document_id}`. This field must be
	// a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ParentDocumentId: The identifier of the parent document. Currently supports
	// at most two level document hierarchy. Id should conform to RFC-1034
	// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 63
	// characters.
	ParentDocumentId string `json:"parentDocumentId,omitempty"`
	// SchemaId: The identifier of the schema located in the same data store.
	SchemaId string `json:"schemaId,omitempty"`
	// StructData: The structured JSON data for the document. It should conform to
	// the registered Schema or an `INVALID_ARGUMENT` error is thrown.
	StructData googleapi.RawMessage `json:"structData,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AclInfo") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclInfo") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaDocumentAclInfoAccessRestriction:
// AclRestriction to model complex inheritance restrictions. Example: Modeling
// a "Both Permit" inheritance, where to access a child document, user needs to
// have access to parent document. Document Hierarchy - Space_S --> Page_P.
// Readers: Space_S: group_1, user_1 Page_P: group_2, group_3, user_2 Space_S
// ACL Restriction - { "acl_info": { "readers": [ { "principals": [ {
// "group_id": "group_1" }, { "user_id": "user_1" } ] } ] } } Page_P ACL
// Restriction. { "acl_info": { "readers": [ { "principals": [ { "group_id":
// "group_2" }, { "group_id": "group_3" }, { "user_id": "user_2" } ], }, {
// "principals": [ { "group_id": "group_1" }, { "user_id": "user_1" } ], } ] }
// }
type GoogleCloudDiscoveryengineV1alphaDocumentAclInfoAccessRestriction struct {
	// IdpWide: All users within the Identity Provider.
	IdpWide bool `json:"idpWide,omitempty"`
	// Principals: List of principals.
	Principals []*GoogleCloudDiscoveryengineV1alphaPrincipal `json:"principals,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IdpWide") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdpWide") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentContent: Unstructured data linked
// to this document.
type GoogleCloudDiscoveryengineV1alphaDocumentContent struct {
	// MimeType: The MIME type of the content. Supported types: * `application/pdf`
	// (PDF, only native PDFs are supported for now) * `text/html` (HTML) *
	// `text/plain` (TXT) * `application/xml` or `text/xml` (XML) *
	// `application/json` (JSON) *
	// `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
	// (DOCX) *
	// `application/vnd.openxmlformats-officedocument.presentationml.presentation`
	// (PPTX) * `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`
	// (XLSX) * `application/vnd.ms-excel.sheet.macroenabled.12` (XLSM) The
	// following types are supported only if layout parser is enabled in the data
	// store: * `image/bmp` (BMP) * `image/gif` (GIF) * `image/jpeg` (JPEG) *
	// `image/png` (PNG) * `image/tiff` (TIFF) See
	// https://www.iana.org/assignments/media-types/media-types.xhtml.
	MimeType string `json:"mimeType,omitempty"`
	// RawBytes: The content represented as a stream of bytes. The maximum length
	// is 1,000,000 bytes (1 MB / ~0.95 MiB). Note: As with all `bytes` fields,
	// this field is represented as pure binary in Protocol Buffers and
	// base64-encoded string in JSON. For example, `abc123!?$*&()'-=@~` should be
	// represented as `YWJjMTIzIT8kKiYoKSctPUB+` in JSON. See
	// https://developers.google.com/protocol-buffers/docs/proto3#json.
	RawBytes string `json:"rawBytes,omitempty"`
	// Uri: The URI of the content. Only Cloud Storage URIs (e.g.
	// `gs://bucket-name/path/to/file`) are supported. The maximum file size is 2.5
	// MB for text-based formats, 200 MB for other formats.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MimeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MimeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentIndexStatus: Index status of the
// document.
type GoogleCloudDiscoveryengineV1alphaDocumentIndexStatus struct {
	// ErrorSamples: A sample of errors encountered while indexing the document. If
	// this field is populated, the document is not indexed due to errors.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// IndexTime: The time when the document was indexed. If this field is
	// populated, it means the document has been indexed.
	IndexTime string `json:"indexTime,omitempty"`
	// PendingMessage: Immutable. The message indicates the document index is in
	// progress. If this field is populated, the document index is pending.
	PendingMessage string `json:"pendingMessage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentInfo: Detailed document information
// associated with a user event.
type GoogleCloudDiscoveryengineV1alphaDocumentInfo struct {
	// ConversionValue: Optional. The conversion value associated with this
	// Document. Must be set if UserEvent.event_type is "conversion". For example,
	// a value of 1000 signifies that 1000 seconds were spent viewing a Document
	// for the `watch` conversion type.
	ConversionValue float64 `json:"conversionValue,omitempty"`
	// Id: The Document resource ID.
	Id string `json:"id,omitempty"`
	// Joined: Output only. Whether the referenced Document can be found in the
	// data store.
	Joined bool `json:"joined,omitempty"`
	// Name: The Document resource full name, of the form:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}/branches/{branch_id}/documents/{document_id}`
	Name string `json:"name,omitempty"`
	// PromotionIds: The promotion IDs associated with this Document. Currently,
	// this field is restricted to at most one ID.
	PromotionIds []string `json:"promotionIds,omitempty"`
	// Quantity: Quantity of the Document associated with the user event. Defaults
	// to 1. For example, this field is 2 if two quantities of the same Document
	// are involved in a `add-to-cart` event. Required for events of the following
	// event types: * `add-to-cart` * `purchase`
	Quantity int64 `json:"quantity,omitempty"`
	// Uri: The Document URI - only allowed for website data stores.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversionValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversionValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig: A singleton
// resource of DataStore. If it's empty when DataStore is created and DataStore
// is set to DataStore.ContentConfig.CONTENT_REQUIRED, the default parser will
// default to digital parser.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig struct {
	// ChunkingConfig: Whether chunking mode is enabled.
	ChunkingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfig `json:"chunkingConfig,omitempty"`
	// DefaultParsingConfig: Configurations for default Document parser. If not
	// specified, we will configure it as default DigitalParsingConfig, and the
	// default parsing config will be applied to all file types for Document
	// parsing.
	DefaultParsingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfig `json:"defaultParsingConfig,omitempty"`
	// Name: The full resource name of the Document Processing Config. Format:
	// `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`.
	Name string `json:"name,omitempty"`
	// ParsingConfigOverrides: Map from file type to override the default parsing
	// configuration based on the file type. Supported keys: * `pdf`: Override
	// parsing config for PDF files, either digital parsing, ocr parsing or layout
	// parsing is supported. * `html`: Override parsing config for HTML files, only
	// digital parsing and layout parsing are supported. * `docx`: Override parsing
	// config for DOCX files, only digital parsing and layout parsing are
	// supported. * `pptx`: Override parsing config for PPTX files, only digital
	// parsing and layout parsing are supported. * `xlsm`: Override parsing config
	// for XLSM files, only digital parsing and layout parsing are supported. *
	// `xlsx`: Override parsing config for XLSX files, only digital parsing and
	// layout parsing are supported.
	ParsingConfigOverrides map[string]GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfig `json:"parsingConfigOverrides,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ChunkingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkingConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfig:
// Configuration for chunking config.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfig struct {
	// LayoutBasedChunkingConfig: Configuration for the layout based chunking.
	LayoutBasedChunkingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig `json:"layoutBasedChunkingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LayoutBasedChunkingConfig")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LayoutBasedChunkingConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfigLayout
// BasedChunkingConfig: Configuration for the layout based chunking.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig struct {
	// ChunkSize: The token size limit for each chunk. Supported values: 100-500
	// (inclusive). Default value: 500.
	ChunkSize int64 `json:"chunkSize,omitempty"`
	// IncludeAncestorHeadings: Whether to include appending different levels of
	// headings to chunks from the middle of the document to prevent context loss.
	// Default value: False.
	IncludeAncestorHeadings bool `json:"includeAncestorHeadings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfig:
// Related configurations applied to a specific type of document parser.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfig struct {
	// DigitalParsingConfig: Configurations applied to digital parser.
	DigitalParsingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigDigitalParsingConfig `json:"digitalParsingConfig,omitempty"`
	// LayoutParsingConfig: Configurations applied to layout parser.
	LayoutParsingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigLayoutParsingConfig `json:"layoutParsingConfig,omitempty"`
	// OcrParsingConfig: Configurations applied to OCR parser. Currently it only
	// applies to PDFs.
	OcrParsingConfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigOcrParsingConfig `json:"ocrParsingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DigitalParsingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DigitalParsingConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigDigital
// ParsingConfig: The digital parsing configurations for documents.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigDigitalParsingConfig struct {
}

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigLayoutP
// arsingConfig: The layout parsing configurations for documents.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigLayoutParsingConfig struct {
	// EnableGetProcessedDocument: Optional. If true, the processed document will
	// be made available for the GetProcessedDocument API.
	EnableGetProcessedDocument bool `json:"enableGetProcessedDocument,omitempty"`
	// EnableImageAnnotation: Optional. If true, the LLM based annotation is added
	// to the image during parsing.
	EnableImageAnnotation bool `json:"enableImageAnnotation,omitempty"`
	// EnableTableAnnotation: Optional. If true, the LLM based annotation is added
	// to the table during parsing.
	EnableTableAnnotation bool `json:"enableTableAnnotation,omitempty"`
	// ExcludeHtmlClasses: Optional. List of HTML classes to exclude from the
	// parsed content.
	ExcludeHtmlClasses []string `json:"excludeHtmlClasses,omitempty"`
	// ExcludeHtmlElements: Optional. List of HTML elements to exclude from the
	// parsed content.
	ExcludeHtmlElements []string `json:"excludeHtmlElements,omitempty"`
	// ExcludeHtmlIds: Optional. List of HTML ids to exclude from the parsed
	// content.
	ExcludeHtmlIds []string `json:"excludeHtmlIds,omitempty"`
	// StructuredContentTypes: Optional. Contains the required structure types to
	// extract from the document. Supported values: * `shareholder-structure`
	StructuredContentTypes []string `json:"structuredContentTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableGetProcessedDocument")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableGetProcessedDocument") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigOcrPars
// ingConfig: The OCR parsing configurations for documents.
type GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfigParsingConfigOcrParsingConfig struct {
	// EnhancedDocumentElements: [DEPRECATED] This field is deprecated. To use the
	// additional enhanced document elements processing, please switch to
	// `layout_parsing_config`.
	EnhancedDocumentElements []string `json:"enhancedDocumentElements,omitempty"`
	// UseNativeText: If true, will use native text instead of OCR text on pages
	// containing native text.
	UseNativeText bool `json:"useNativeText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnhancedDocumentElements")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnhancedDocumentElements") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

func (s *GoogleCloudDiscoveryengineV1alphaDoubleList) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaDoubleList
	var s1 struct {
		Values []gensupport.JSONFloat64 `json:"values"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Values = make([]float64, len(s1.Values))
	for i := range s1.Values {
		s.Values[i] = float64(s1.Values[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1alphaEmbeddingConfig: Defines embedding config,
// used for bring your own embeddings feature.
type GoogleCloudDiscoveryengineV1alphaEmbeddingConfig struct {
	// FieldPath: Full field path in the schema mapped as embedding field.
	FieldPath string `json:"fieldPath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPath") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.EnableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest: Request
// message for SiteSearchEngineService.EnableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.EnableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1alphaEngine: Metadata that describes the
// training and serving parameters of an Engine.
type GoogleCloudDiscoveryengineV1alphaEngine struct {
	// AppType: Optional. Immutable. This the application type which this engine
	// resource represents. NOTE: this is a new concept independ of existing
	// industry vertical or solution type.
	//
	// Possible values:
	//   "APP_TYPE_UNSPECIFIED" - All non specified apps.
	//   "APP_TYPE_INTRANET" - App type for intranet search and Agentspace.
	AppType string `json:"appType,omitempty"`
	// ChatEngineConfig: Configurations for the Chat Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineConfig *GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfig `json:"chatEngineConfig,omitempty"`
	// ChatEngineMetadata: Output only. Additional information of the Chat Engine.
	// Only applicable if solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineMetadata *GoogleCloudDiscoveryengineV1alphaEngineChatEngineMetadata `json:"chatEngineMetadata,omitempty"`
	// CommonConfig: Common config spec that specifies the metadata of the engine.
	CommonConfig *GoogleCloudDiscoveryengineV1alphaEngineCommonConfig `json:"commonConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach.
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach. General pricing model.
	//   "CONFIGURABLE_BILLING_APPROACH_ENABLED" - The billing approach follows
	// configurations specified by customer.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// CreateTime: Output only. Timestamp the Recommendation Engine was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataStoreIds: Optional. The data stores associated with this engine. For
	// SOLUTION_TYPE_SEARCH and SOLUTION_TYPE_RECOMMENDATION type of engines, they
	// can only associate with at most one data store. If solution_type is
	// SOLUTION_TYPE_CHAT, multiple DataStores in the same Collection can be
	// associated here. Note that when used in CreateEngineRequest, one DataStore
	// id must be provided as the system will use it for necessary initializations.
	DataStoreIds []string `json:"dataStoreIds,omitempty"`
	// DisableAnalytics: Optional. Whether to disable analytics for searches
	// performed on this engine.
	DisableAnalytics bool `json:"disableAnalytics,omitempty"`
	// DisplayName: Required. The display name of the engine. Should be human
	// readable. UTF-8 encoded string with limit of 1024 characters.
	DisplayName string `json:"displayName,omitempty"`
	// Features: Optional. Feature config for the engine to opt in or opt out of
	// features. Supported keys: * `*`: all features, if it's present, all other
	// feature state settings are ignored. * `agent-gallery` *
	// `no-code-agent-builder` * `prompt-gallery` * `model-selector` *
	// `notebook-lm` * `people-search` * `people-search-org-chart` *
	// `bi-directional-audio` * `feedback` * `session-sharing` *
	// `personalization-memory` * `disable-agent-sharing` *
	// `disable-image-generation` * `disable-video-generation` *
	// `disable-onedrive-upload` * `disable-talk-to-content` *
	// `disable-google-drive-upload`
	Features map[string]string `json:"features,omitempty"`
	// IndustryVertical: Optional. The industry vertical that the engine registers.
	// The restriction of the Engine industry vertical is based on DataStore:
	// Vertical on Engine has to match vertical of the DataStore linked to the
	// engine.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// MediaRecommendationEngineConfig: Configurations for the Media Engine. Only
	// applicable on the data stores with solution_type
	// SOLUTION_TYPE_RECOMMENDATION and IndustryVertical.MEDIA vertical.
	MediaRecommendationEngineConfig *GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfig `json:"mediaRecommendationEngineConfig,omitempty"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// engine. This field must be a UTF-8 encoded string with a length limit of
	// 1024 characters. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}` engine should be 1-63 characters, and valid characters are /a-z0-9*/.
	// Otherwise, an INVALID_ARGUMENT error is returned.
	Name string `json:"name,omitempty"`
	// RecommendationMetadata: Output only. Additional information of a
	// recommendation engine. Only applicable if solution_type is
	// SOLUTION_TYPE_RECOMMENDATION.
	RecommendationMetadata *GoogleCloudDiscoveryengineV1alphaEngineRecommendationMetadata `json:"recommendationMetadata,omitempty"`
	// SearchEngineConfig: Configurations for the Search Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_SEARCH.
	SearchEngineConfig *GoogleCloudDiscoveryengineV1alphaEngineSearchEngineConfig `json:"searchEngineConfig,omitempty"`
	// SimilarDocumentsConfig: Additional config specs for a `similar-items`
	// engine.
	SimilarDocumentsConfig *GoogleCloudDiscoveryengineV1alphaEngineSimilarDocumentsEngineConfig `json:"similarDocumentsConfig,omitempty"`
	// SolutionType: Required. The solutions of the engine.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// UpdateTime: Output only. Timestamp the Recommendation Engine was last
	// updated.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AppType") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfig: Configurations for
// a Chat Engine.
type GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfig struct {
	// AgentCreationConfig: The configurationt generate the Dialogflow agent that
	// is associated to this Engine. Note that these configurations are one-time
	// consumed by and passed to Dialogflow service. It means they cannot be
	// retrieved using EngineService.GetEngine or EngineService.ListEngines API
	// after engine creation.
	AgentCreationConfig *GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigAgentCreationConfig `json:"agentCreationConfig,omitempty"`
	// AllowCrossRegion: Optional. If the flag set to true, we allow the agent and
	// engine are in different locations, otherwise the agent and engine are
	// required to be in the same location. The flag is set to false by default.
	// Note that the `allow_cross_region` are one-time consumed by and passed to
	// EngineService.CreateEngine. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation.
	AllowCrossRegion bool `json:"allowCrossRegion,omitempty"`
	// DialogflowAgentToLink: The resource name of an exist Dialogflow agent to
	// link to this Chat Engine. Customers can either provide
	// `agent_creation_config` to create agent or provide an agent name that links
	// the agent with the Chat engine. Format: `projects//locations//agents/`. Note
	// that the `dialogflow_agent_to_link` are one-time consumed by and passed to
	// Dialogflow service. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation. Use ChatEngineMetadata.dialogflow_agent for actual agent
	// association after Engine is created.
	DialogflowAgentToLink string `json:"dialogflowAgentToLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentCreationConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentCreationConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigAgentCreationConfig:
// Configurations for generating a Dialogflow agent. Note that these
// configurations are one-time consumed by and passed to Dialogflow service. It
// means they cannot be retrieved using EngineService.GetEngine or
// EngineService.ListEngines API after engine creation.
type GoogleCloudDiscoveryengineV1alphaEngineChatEngineConfigAgentCreationConfig struct {
	// Business: Name of the company, organization or other entity that the agent
	// represents. Used for knowledge connector LLM prompt and for knowledge
	// search.
	Business string `json:"business,omitempty"`
	// DefaultLanguageCode: Required. The default language of the agent as a
	// language tag. See Language Support
	// (https://cloud.google.com/dialogflow/docs/reference/language) for a list of
	// the currently supported language codes.
	DefaultLanguageCode string `json:"defaultLanguageCode,omitempty"`
	// Location: Agent location for Agent creation, supported values: global/us/eu.
	// If not provided, us Engine will create Agent using us-central-1 by default;
	// eu Engine will create Agent using eu-west-1 by default.
	Location string `json:"location,omitempty"`
	// TimeZone: Required. The time zone of the agent from the time zone database
	// (https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Business") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Business") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineChatEngineMetadata: Additional
// information of a Chat Engine. Fields in this message are output only.
type GoogleCloudDiscoveryengineV1alphaEngineChatEngineMetadata struct {
	// DialogflowAgent: The resource name of a Dialogflow agent, that this Chat
	// Engine refers to. Format: `projects//locations//agents/`.
	DialogflowAgent string `json:"dialogflowAgent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DialogflowAgent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DialogflowAgent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineCommonConfig: Common configurations
// for an Engine.
type GoogleCloudDiscoveryengineV1alphaEngineCommonConfig struct {
	// CompanyName: The name of the company, business or entity that is associated
	// with the engine. Setting this may help improve LLM related features.
	CompanyName string `json:"companyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompanyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompanyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfig:
// Additional config specs for a Media Recommendation engine.
type GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfig struct {
	// EngineFeaturesConfig: Optional. Additional engine features config.
	EngineFeaturesConfig *GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigEngineFeaturesConfig `json:"engineFeaturesConfig,omitempty"`
	// OptimizationObjective: The optimization objective. e.g., `cvr`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values: `ctr`,
	// `cvr`. If not specified, we choose default based on engine type. Default
	// depends on type of recommendation: `recommended-for-you` => `ctr`
	// `others-you-may-like` => `ctr`
	OptimizationObjective string `json:"optimizationObjective,omitempty"`
	// OptimizationObjectiveConfig: Name and value of the custom threshold for cvr
	// optimization_objective. For target_field `watch-time`, target_field_value
	// must be an integer value indicating the media progress time in seconds
	// between (0, 86400] (excludes 0, includes 86400) (e.g., 90). For target_field
	// `watch-percentage`, the target_field_value must be a valid float value
	// between (0, 1.0] (excludes 0, includes 1.0) (e.g., 0.5).
	OptimizationObjectiveConfig *GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig `json:"optimizationObjectiveConfig,omitempty"`
	// TrainingState: The training state that the engine is in (e.g. `TRAINING` or
	// `PAUSED`). Since part of the cost of running the service is frequency of
	// training - this can be used to determine when to train engine in order to
	// control cost. If not specified: the default value for `CreateEngine` method
	// is `TRAINING`. The default value for `UpdateEngine` method is to keep the
	// state the same as before.
	//
	// Possible values:
	//   "TRAINING_STATE_UNSPECIFIED" - Unspecified training state.
	//   "PAUSED" - The engine training is paused.
	//   "TRAINING" - The engine is training.
	TrainingState string `json:"trainingState,omitempty"`
	// Type: Required. The type of engine. e.g., `recommended-for-you`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values:
	// `recommended-for-you`, `others-you-may-like`, `more-like-this`,
	// `most-popular-items`.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EngineFeaturesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EngineFeaturesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigEngineF
// eaturesConfig: More feature configs of the selected engine type.
type GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigEngineFeaturesConfig struct {
	// MostPopularConfig: Most popular engine feature config.
	MostPopularConfig *GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigMostPopularFeatureConfig `json:"mostPopularConfig,omitempty"`
	// RecommendedForYouConfig: Recommended for you engine feature config.
	RecommendedForYouConfig *GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig `json:"recommendedForYouConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MostPopularConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MostPopularConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigMostPop
// ularFeatureConfig: Feature configurations that are required for creating a
// Most Popular engine.
type GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigMostPopularFeatureConfig struct {
	// TimeWindowDays: The time window of which the engine is queried at training
	// and prediction time. Positive integers only. The value translates to the
	// last X days of events. Currently required for the `most-popular-items`
	// engine.
	TimeWindowDays int64 `json:"timeWindowDays,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TimeWindowDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeWindowDays") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigOptimiz
// ationObjectiveConfig: Custom threshold for `cvr` optimization_objective.
type GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig struct {
	// TargetField: Required. The name of the field to target. Currently supported
	// values: `watch-percentage`, `watch-time`.
	TargetField string `json:"targetField,omitempty"`
	// TargetFieldValueFloat: Required. The threshold to be applied to the target
	// (e.g., 0.5).
	TargetFieldValueFloat float64 `json:"targetFieldValueFloat,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetField") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetField") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigRecomme
// ndedForYouFeatureConfig: Additional feature configurations for creating a
// `recommended-for-you` engine.
type GoogleCloudDiscoveryengineV1alphaEngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig struct {
	// ContextEventType: The type of event with which the engine is queried at
	// prediction time. If set to `generic`, only `view-item`, `media-play`,and
	// `media-complete` will be used as `context-event` in engine training. If set
	// to `view-home-page`, `view-home-page` will also be used as `context-events`
	// in addition to `view-item`, `media-play`, and `media-complete`. Currently
	// supported for the `recommended-for-you` engine. Currently supported values:
	// `view-home-page`, `generic`.
	ContextEventType string `json:"contextEventType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContextEventType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContextEventType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineRecommendationMetadata: Additional
// information of a recommendation engine.
type GoogleCloudDiscoveryengineV1alphaEngineRecommendationMetadata struct {
	// DataState: Output only. The state of data requirements for this engine:
	// `DATA_OK` and `DATA_ERROR`. Engine cannot be trained if the data is in
	// `DATA_ERROR` state. Engine can have `DATA_ERROR` state even if serving state
	// is `ACTIVE`: engines were trained successfully before, but cannot be
	// refreshed because the underlying engine no longer has sufficient data for
	// training.
	//
	// Possible values:
	//   "DATA_STATE_UNSPECIFIED" - Unspecified default value, should never be
	// explicitly set.
	//   "DATA_OK" - The engine has sufficient training data.
	//   "DATA_ERROR" - The engine does not have sufficient training data. Error
	// messages can be queried via Stackdriver.
	DataState string `json:"dataState,omitempty"`
	// LastTrainTime: Output only. The timestamp when the latest successful
	// training finished. Only applicable on Media Recommendation engines.
	LastTrainTime string `json:"lastTrainTime,omitempty"`
	// LastTuneTime: Output only. The timestamp when the latest successful tune
	// finished. Only applicable on Media Recommendation engines.
	LastTuneTime string `json:"lastTuneTime,omitempty"`
	// ServingState: Output only. The serving state of the engine: `ACTIVE`,
	// `NOT_ACTIVE`.
	//
	// Possible values:
	//   "SERVING_STATE_UNSPECIFIED" - Unspecified serving state.
	//   "INACTIVE" - The engine is not serving.
	//   "ACTIVE" - The engine is serving and can be queried.
	//   "TUNED" - The engine is trained on tuned hyperparameters and can be
	// queried.
	ServingState string `json:"servingState,omitempty"`
	// TuningOperation: Output only. The latest tune operation id associated with
	// the engine. Only applicable on Media Recommendation engines. If present,
	// this operation id can be used to determine if there is an ongoing tune for
	// this engine. To check the operation status, send the GetOperation request
	// with this operation id in the engine resource format. If no tuning has
	// happened for this engine, the string is empty.
	TuningOperation string `json:"tuningOperation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataState") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineSearchEngineConfig: Configurations
// for a Search Engine.
type GoogleCloudDiscoveryengineV1alphaEngineSearchEngineConfig struct {
	// SearchAddOns: The add-on that this search engine enables.
	//
	// Possible values:
	//   "SEARCH_ADD_ON_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_ADD_ON_LLM" - Large language model add-on.
	SearchAddOns []string `json:"searchAddOns,omitempty"`
	// SearchTier: The search feature tier of this engine. Different tiers might
	// have different pricing. To learn more, check the pricing documentation.
	// Defaults to SearchTier.SEARCH_TIER_STANDARD if not specified.
	//
	// Possible values:
	//   "SEARCH_TIER_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_TIER_STANDARD" - Standard tier.
	//   "SEARCH_TIER_ENTERPRISE" - Enterprise tier.
	SearchTier string `json:"searchTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SearchAddOns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SearchAddOns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEngineSimilarDocumentsEngineConfig:
// Additional config specs for a `similar-items` engine.
type GoogleCloudDiscoveryengineV1alphaEngineSimilarDocumentsEngineConfig struct {
}

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeMetadata: Metadata related
// to the progress of the EstimateDataSize operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequest: Request message
// for EstimateBillingService.EstimateDataSize method
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequest struct {
	// FileDataSource: Structured or unstructured data.
	FileDataSource *GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestFileDataSource `json:"fileDataSource,omitempty"`
	// WebsiteDataSource: Website data.
	WebsiteDataSource *GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSource `json:"websiteDataSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FileDataSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FileDataSource") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestFileDataSource: Data
// source contains files either in Cloud Storage or BigQuery.
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestFileDataSource struct {
	// BigquerySource: BigQuery input source.
	BigquerySource *GoogleCloudDiscoveryengineV1alphaBigQuerySource `json:"bigquerySource,omitempty"`
	// GcsSource: Cloud Storage location for the input content.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigquerySource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigquerySource") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSource:
// Data source is a set of website patterns that we crawl to get the total
// number of websites.
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSource struct {
	// EstimatorUriPatterns: Required. The URI patterns to estimate the data sizes.
	// At most 10 patterns are allowed, otherwise an INVALID_ARGUMENT error is
	// thrown.
	EstimatorUriPatterns []*GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSourceEstimatorUriPattern `json:"estimatorUriPatterns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EstimatorUriPatterns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EstimatorUriPatterns") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSourceEsti
// matorUriPattern: URI patterns that we use to crawl.
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequestWebsiteDataSourceEstimatorUriPattern struct {
	// ExactMatch: Whether we infer the generated URI or use the exact provided
	// one.
	ExactMatch bool `json:"exactMatch,omitempty"`
	// Exclusive: Whether the pattern is exclusive or not. If set to true, the
	// pattern is considered exclusive. If unset or set to false, the pattern is
	// considered inclusive by default.
	Exclusive bool `json:"exclusive,omitempty"`
	// ProvidedUriPattern: User provided URI pattern. For example, `foo.com/bar/*`.
	ProvidedUriPattern string `json:"providedUriPattern,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEstimateDataSizeResponse: Response of the
// EstimateDataSize request. If the long running operation was successful, then
// this message is returned by the google.longrunning.Operations.response field
// if the operation was successful.
type GoogleCloudDiscoveryengineV1alphaEstimateDataSizeResponse struct {
	// DataSizeBytes: Data size in terms of bytes.
	DataSizeBytes int64 `json:"dataSizeBytes,omitempty,string"`
	// DocumentCount: Total number of documents.
	DocumentCount int64 `json:"documentCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "DataSizeBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataSizeBytes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEvaluation: An evaluation is a single
// execution (or run) of an evaluation process. It encapsulates the state of
// the evaluation and the resulting data.
type GoogleCloudDiscoveryengineV1alphaEvaluation struct {
	// CreateTime: Output only. Timestamp the Evaluation was created at.
	CreateTime string `json:"createTime,omitempty"`
	// EndTime: Output only. Timestamp the Evaluation was completed at.
	EndTime string `json:"endTime,omitempty"`
	// Error: Output only. The error that occurred during evaluation. Only
	// populated when the evaluation's state is FAILED.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// ErrorSamples: Output only. A sample of errors encountered while processing
	// the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// EvaluationSpec: Required. The specification of the evaluation.
	EvaluationSpec *GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpec `json:"evaluationSpec,omitempty"`
	// Name: Identifier. The full resource name of the Evaluation, in the format of
	// `projects/{project}/locations/{location}/evaluations/{evaluation}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// QualityMetrics: Output only. The metrics produced by the evaluation,
	// averaged across all SampleQuerys in the SampleQuerySet. Only populated when
	// the evaluation's state is SUCCEEDED.
	QualityMetrics *GoogleCloudDiscoveryengineV1alphaQualityMetrics `json:"qualityMetrics,omitempty"`
	// State: Output only. The state of the evaluation.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The evaluation is unspecified.
	//   "PENDING" - The service is preparing to run the evaluation.
	//   "RUNNING" - The evaluation is in progress.
	//   "SUCCEEDED" - The evaluation completed successfully.
	//   "FAILED" - The evaluation failed.
	State string `json:"state,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpec: Describes the
// specification of the evaluation.
type GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpec struct {
	// QuerySetSpec: Optional. The specification of the query set.
	QuerySetSpec *GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpecQuerySetSpec `json:"querySetSpec,omitempty"`
	// SearchRequest: Required. The search request that is used to perform the
	// evaluation. Only the following fields within SearchRequest are supported; if
	// any other fields are provided, an UNSUPPORTED error will be returned: *
	// SearchRequest.serving_config * SearchRequest.branch *
	// SearchRequest.canonical_filter * SearchRequest.query_expansion_spec *
	// SearchRequest.spell_correction_spec * SearchRequest.content_search_spec *
	// SearchRequest.user_pseudo_id
	SearchRequest *GoogleCloudDiscoveryengineV1alphaSearchRequest `json:"searchRequest,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuerySetSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuerySetSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpecQuerySetSpec:
// Describes the specification of the query set.
type GoogleCloudDiscoveryengineV1alphaEvaluationEvaluationSpecQuerySetSpec struct {
	// SampleQuerySet: Optional. The full resource name of the SampleQuerySet used
	// for the evaluation, in the format of
	// `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`.
	SampleQuerySet string `json:"sampleQuerySet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SampleQuerySet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SampleQuerySet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaExportMetricsMetadata: Metadata related to
// the progress of the Export operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaExportMetricsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaExportMetricsRequest: Request message for
// the `ExportMetrics` method.
type GoogleCloudDiscoveryengineV1alphaExportMetricsRequest struct {
	// OutputConfig: Required. The output location of the data.
	OutputConfig *GoogleCloudDiscoveryengineV1alphaOutputConfig `json:"outputConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OutputConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OutputConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaExportMetricsResponse: Response of the
// ExportMetricsRequest. If the long running operation was successful, then
// this message is returned by the google.longrunning.Operations.response
// field.
type GoogleCloudDiscoveryengineV1alphaExportMetricsResponse struct {
}

// GoogleCloudDiscoveryengineV1alphaFactChunk: Fact Chunk.
type GoogleCloudDiscoveryengineV1alphaFactChunk struct {
	// ChunkText: Text content of the fact chunk. Can be at most 10K characters
	// long.
	ChunkText string `json:"chunkText,omitempty"`
	// Domain: The domain of the source.
	Domain string `json:"domain,omitempty"`
	// Index: The index of this chunk. Currently, only used for the streaming mode.
	Index int64 `json:"index,omitempty"`
	// Source: Source from which this fact chunk was retrieved. If it was retrieved
	// from the GroundingFacts provided in the request then this field will contain
	// the index of the specific fact from which this chunk was retrieved.
	Source string `json:"source,omitempty"`
	// SourceMetadata: More fine-grained information for the source reference.
	SourceMetadata map[string]string `json:"sourceMetadata,omitempty"`
	// Title: The title of the source.
	Title string `json:"title,omitempty"`
	// Uri: The URI of the source.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse:
// Response message for SiteSearchEngineService.FetchDomainVerificationStatus
// method.
type GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse struct {
	// NextPageToken: A token that can be sent as `page_token` to retrieve the next
	// page. If this field is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// TargetSites: List of TargetSites containing the site verification status.
	TargetSites []*GoogleCloudDiscoveryengineV1alphaTargetSite `json:"targetSites,omitempty"`
	// TotalSize: The total number of items matching the request. This will always
	// be populated in the response.
	TotalSize int64 `json:"totalSize,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 GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse: Response message for
// SiteSearchEngineService.FetchSitemaps method.
type GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse struct {
	// SitemapsMetadata: List of Sitemaps fetched.
	SitemapsMetadata []*GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponseSitemapMetadata `json:"sitemapsMetadata,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "SitemapsMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SitemapsMetadata") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaFhirStoreSource: Cloud FhirStore source
// import data from.
type GoogleCloudDiscoveryengineV1alphaFhirStoreSource struct {
	// FhirStore: Required. The full resource name of the FHIR store to import data
	// from, in the format of
	// `projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_
	// store}`.
	FhirStore string `json:"fhirStore,omitempty"`
	// GcsStagingDir: Intermediate Cloud Storage directory used for the import with
	// a length limit of 2,000 characters. Can be specified if one wants to have
	// the FhirStore export to a specific Cloud Storage directory.
	GcsStagingDir string `json:"gcsStagingDir,omitempty"`
	// ResourceTypes: The FHIR resource types to import. The resource types should
	// be a subset of all supported FHIR resource types
	// (https://cloud.google.com/generative-ai-app-builder/docs/fhir-schema-reference#resource-level-specification).
	// Default to all supported FHIR resource types if empty.
	ResourceTypes []string `json:"resourceTypes,omitempty"`
	// UpdateFromLatestPredefinedSchema: Optional. Whether to update the DataStore
	// schema to the latest predefined schema. If true, the DataStore schema will
	// be updated to include any FHIR fields or resource types that have been added
	// since the last import and corresponding FHIR resources will be imported from
	// the FHIR store. Note this field cannot be used in conjunction with
	// `resource_types`. It should be used after initial import.
	UpdateFromLatestPredefinedSchema bool `json:"updateFromLatestPredefinedSchema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FhirStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FhirStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFieldConfig: Configurations for fields of a
// schema. For example, configuring a field is indexable, or searchable.
type GoogleCloudDiscoveryengineV1alphaFieldConfig struct {
	// AdvancedSiteSearchDataSources: If this field is set, only the corresponding
	// source will be indexed for this field. Otherwise, the values from different
	// sources are merged. Assuming a page with `` in meta tag, and `` in page map:
	// if this enum is set to METATAGS, we will only index ``; if this enum is not
	// set, we will merge them and index ``.
	//
	// Possible values:
	//   "ADVANCED_SITE_SEARCH_DATA_SOURCE_UNSPECIFIED" - Value used when unset.
	//   "METATAGS" - Retrieve value from meta tag.
	//   "PAGEMAP" - Retrieve value from page map.
	//   "URI_PATTERN_MAPPING" - Retrieve value from the attributes set by
	// SiteSearchEngineService.SetUriPatternDocumentData API.
	//   "SCHEMA_ORG" - Retrieve value from schema.org data.
	AdvancedSiteSearchDataSources []string `json:"advancedSiteSearchDataSources,omitempty"`
	// CompletableOption: If completable_option is COMPLETABLE_ENABLED, field
	// values are directly used and returned as suggestions for Autocomplete in
	// CompletionService.CompleteQuery. If completable_option is unset, the server
	// behavior defaults to COMPLETABLE_DISABLED for fields that support setting
	// completable options, which are just `string` fields. For those fields that
	// do not support setting completable options, the server will skip completable
	// option setting, and setting completable_option for those fields will throw
	// `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "COMPLETABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "COMPLETABLE_ENABLED" - Completable option enabled for a schema field.
	//   "COMPLETABLE_DISABLED" - Completable option disabled for a schema field.
	CompletableOption string `json:"completableOption,omitempty"`
	// DynamicFacetableOption: If dynamic_facetable_option is
	// DYNAMIC_FACETABLE_ENABLED, field values are available for dynamic facet.
	// Could only be DYNAMIC_FACETABLE_DISABLED if FieldConfig.indexable_option is
	// INDEXABLE_DISABLED. Otherwise, an `INVALID_ARGUMENT` error will be returned.
	// If dynamic_facetable_option is unset, the server behavior defaults to
	// DYNAMIC_FACETABLE_DISABLED for fields that support setting dynamic facetable
	// options. For those fields that do not support setting dynamic facetable
	// options, such as `object` and `boolean`, the server will skip dynamic
	// facetable option setting, and setting dynamic_facetable_option for those
	// fields will throw `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "DYNAMIC_FACETABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "DYNAMIC_FACETABLE_ENABLED" - Dynamic facetable option enabled for a
	// schema field.
	//   "DYNAMIC_FACETABLE_DISABLED" - Dynamic facetable option disabled for a
	// schema field.
	DynamicFacetableOption string `json:"dynamicFacetableOption,omitempty"`
	// FieldPath: Required. Field path of the schema field. For example: `title`,
	// `description`, `release_info.release_year`.
	FieldPath string `json:"fieldPath,omitempty"`
	// FieldType: Output only. Raw type of the field.
	//
	// Possible values:
	//   "FIELD_TYPE_UNSPECIFIED" - Field type is unspecified.
	//   "OBJECT" - Field value type is Object.
	//   "STRING" - Field value type is String.
	//   "NUMBER" - Field value type is Number.
	//   "INTEGER" - Field value type is Integer.
	//   "BOOLEAN" - Field value type is Boolean.
	//   "GEOLOCATION" - Field value type is Geolocation. Geolocation is expressed
	// as an object with the following keys: * `id`: a string representing the
	// location id * `longitude`: a number representing the longitude coordinate of
	// the location * `latitude`: a number repesenting the latitude coordinate of
	// the location * `address`: a string representing the full address of the
	// location `latitude` and `longitude` must always be provided together. At
	// least one of a) `address` or b) `latitude`-`longitude` pair must be
	// provided.
	//   "DATETIME" - Field value type is Datetime. Datetime can be expressed as
	// either: * a number representing milliseconds-since-the-epoch * a string
	// representing milliseconds-since-the-epoch. e.g. "1420070400001" * a string
	// representing the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date or
	// date and time. e.g. "2015-01-01" or "2015-01-01T12:10:30Z"
	FieldType string `json:"fieldType,omitempty"`
	// IndexableOption: If indexable_option is INDEXABLE_ENABLED, field values are
	// indexed so that it can be filtered or faceted in SearchService.Search. If
	// indexable_option is unset, the server behavior defaults to
	// INDEXABLE_DISABLED for fields that support setting indexable options. For
	// those fields that do not support setting indexable options, such as `object`
	// and `boolean` and key properties, the server will skip indexable_option
	// setting, and setting indexable_option for those fields will throw
	// `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "INDEXABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "INDEXABLE_ENABLED" - Indexable option enabled for a schema field.
	//   "INDEXABLE_DISABLED" - Indexable option disabled for a schema field.
	IndexableOption string `json:"indexableOption,omitempty"`
	// KeyPropertyType: Output only. Type of the key property that this field is
	// mapped to. Empty string if this is not annotated as mapped to a key
	// property. Example types are `title`, `description`. Full list is defined by
	// `keyPropertyMapping` in the schema field annotation. If the schema field has
	// a `KeyPropertyMapping` annotation, `indexable_option` and
	// `searchable_option` of this field cannot be modified.
	KeyPropertyType string `json:"keyPropertyType,omitempty"`
	// MetatagName: Optional. The metatag name found in the HTML page. If user
	// defines this field, the value of this metatag name will be used to extract
	// metatag. If the user does not define this field, the FieldConfig.field_path
	// will be used to extract metatag.
	MetatagName string `json:"metatagName,omitempty"`
	// RecsFilterableOption: If recs_filterable_option is FILTERABLE_ENABLED, field
	// values are filterable by filter expression in
	// RecommendationService.Recommend. If FILTERABLE_ENABLED but the field type is
	// numerical, field values are not filterable by text queries in
	// RecommendationService.Recommend. Only textual fields are supported. If
	// recs_filterable_option is unset, the default setting is FILTERABLE_DISABLED
	// for fields that support setting filterable options. When a field set to
	// [FILTERABLE_DISABLED] is filtered, a warning is generated and an empty
	// result is returned.
	//
	// Possible values:
	//   "FILTERABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "FILTERABLE_ENABLED" - Filterable option enabled for a schema field.
	//   "FILTERABLE_DISABLED" - Filterable option disabled for a schema field.
	RecsFilterableOption string `json:"recsFilterableOption,omitempty"`
	// RetrievableOption: If retrievable_option is RETRIEVABLE_ENABLED, field
	// values are included in the search results. If retrievable_option is unset,
	// the server behavior defaults to RETRIEVABLE_DISABLED for fields that support
	// setting retrievable options. For those fields that do not support setting
	// retrievable options, such as `object` and `boolean`, the server will skip
	// retrievable option setting, and setting retrievable_option for those fields
	// will throw `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "RETRIEVABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "RETRIEVABLE_ENABLED" - Retrievable option enabled for a schema field.
	//   "RETRIEVABLE_DISABLED" - Retrievable option disabled for a schema field.
	RetrievableOption string `json:"retrievableOption,omitempty"`
	// SchemaOrgPaths: Field paths for indexing custom attribute from schema.org
	// data. More details of schema.org and its defined types can be found at
	// schema.org (https://schema.org). It is only used on advanced site search
	// schema. Currently only support full path from root. The full path to a field
	// is constructed by concatenating field names, starting from `_root`, with a
	// period `.` as the delimiter. Examples: * Publish date of the root:
	// _root.datePublished * Publish date of the reviews:
	// _root.review.datePublished
	SchemaOrgPaths []string `json:"schemaOrgPaths,omitempty"`
	// SearchableOption: If searchable_option is SEARCHABLE_ENABLED, field values
	// are searchable by text queries in SearchService.Search. If
	// SEARCHABLE_ENABLED but field type is numerical, field values will not be
	// searchable by text queries in SearchService.Search, as there are no text
	// values associated to numerical fields. If searchable_option is unset, the
	// server behavior defaults to SEARCHABLE_DISABLED for fields that support
	// setting searchable options. Only `string` fields that have no key property
	// mapping support setting searchable_option. For those fields that do not
	// support setting searchable options, the server will skip searchable option
	// setting, and setting searchable_option for those fields will throw
	// `INVALID_ARGUMENT` error.
	//
	// Possible values:
	//   "SEARCHABLE_OPTION_UNSPECIFIED" - Value used when unset.
	//   "SEARCHABLE_ENABLED" - Searchable option enabled for a schema field.
	//   "SEARCHABLE_DISABLED" - Searchable option disabled for a schema field.
	SearchableOption string `json:"searchableOption,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "AdvancedSiteSearchDataSources") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdvancedSiteSearchDataSources")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFileCharacteristics: Caracteristics of
// other file types.
type GoogleCloudDiscoveryengineV1alphaFileCharacteristics struct {
	// Characteristics: Output only. Generic map of characteristics.
	Characteristics map[string]string `json:"characteristics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Characteristics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Characteristics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFileMetadata: Represents a file attached to
// a session (context file)
type GoogleCloudDiscoveryengineV1alphaFileMetadata struct {
	// ByteSize: Output only. The size of the context file in bytes.
	ByteSize int64 `json:"byteSize,omitempty,string"`
	// DownloadUri: Output only. The AssistantService.DownloadSessionFile URL to
	// download the file. This URL will need the same credentials as
	// AssistantService.ListSessionFileMetadata method and will provide the
	// resource.
	DownloadUri string `json:"downloadUri,omitempty"`
	// FileId: Output only. The ID of the file.
	FileId string `json:"fileId,omitempty"`
	// FileOriginType: Optional. The origin of the file.
	//
	// Possible values:
	//   "FILE_ORIGIN_TYPE_UNSPECIFIED" - Default value.
	//   "USER_PROVIDED" - The file was provided by the user.
	//   "AI_GENERATED" - The file was generated by an AI model.
	//   "INTERNALLY_GENERATED" - The file was generated from other files by an
	// internal process.
	FileOriginType string `json:"fileOriginType,omitempty"`
	// LastAddTime: Output only. The time the file was added to the session. Note
	// that if a file was added, then modified externally, then added again, the
	// add time will be updated.
	LastAddTime string `json:"lastAddTime,omitempty"`
	// Metadata: Optional. Represents metadata related to the file that can suit
	// particular use cases. The prefix "google." is reserved for the key for use
	// by Google, but other prefixes can be freely used.
	Metadata map[string]string `json:"metadata,omitempty"`
	// MimeType: The content type of the file, see
	// https://www.iana.org/assignments/media-types/media-types.xhtml.
	MimeType string `json:"mimeType,omitempty"`
	// Name: Output only. The name of the file uploaded.
	Name string `json:"name,omitempty"`
	// OriginalSourceType: Optional. The type of the original source of the file.
	//
	// Possible values:
	//   "FILE_SOURCE_UNSPECIFIED" - Default value. Unknown source.
	//   "FILE_SOURCE_INLINE" - The data of the file was provided inline (e.g.
	// pasted from the clipboard).
	//   "FILE_SOURCE_LOCAL" - The file was uploaded from a local file.
	//   "FILE_SOURCE_CLOUD_STORAGE" - The file was uploaded from Cloud Storage.
	//   "FILE_SOURCE_CLOUD_DRIVE" - The file was uploaded from Drive.
	//   "FILE_SOURCE_URL" - The file was retrieved from a URL (e.g. public web).
	OriginalSourceType string `json:"originalSourceType,omitempty"`
	// OriginalUri: Optional. The original location of the file. It may be a local
	// file path, or any other URI that allows accessing the file in an external
	// system. There are two scenarios in which this url may be empty: 1. If the
	// file was sent as inline data (e.g. pasted from the clipboard). 2. If the
	// original location is not available. Note that there's no guarantee that the
	// URI will be pointing to a valid or actually existing file. For example, a
	// file might have been uploaded to the session, and then deleted from the
	// original source.
	OriginalUri string `json:"originalUri,omitempty"`
	// UploadTime: Output only. The time the file was uploaded (If this is a file
	// generated by an internal process and then made available to the session,
	// this indicates the moment it happened).
	UploadTime string `json:"uploadTime,omitempty"`
	// Views: Output only. Alternate views of this file object. Each file view is
	// attached to a specific role. Possible example keys: - "thumbnail" -
	// "mobile_thumbnail" - "clip" - "summary" - "translation"
	Views map[string]GoogleCloudDiscoveryengineV1alphaFileView `json:"views,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ByteSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ByteSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFileView: Represents a specific alternate
// version or "view" of a file object, such as a summary, a thumbnail, a
// translated version, etc.
type GoogleCloudDiscoveryengineV1alphaFileView struct {
	// ByteSize: Output only. The size of the view in bytes.
	ByteSize int64 `json:"byteSize,omitempty,string"`
	// CreateTime: Output only. The time the view was created.
	CreateTime string `json:"createTime,omitempty"`
	// FileCharacteristics: Output only. Characteristics of other file types.
	FileCharacteristics *GoogleCloudDiscoveryengineV1alphaFileCharacteristics `json:"fileCharacteristics,omitempty"`
	// ImageCharacteristics: Output only. Characteristics of an image media view.
	ImageCharacteristics *GoogleCloudDiscoveryengineV1alphaImageCharacteristics `json:"imageCharacteristics,omitempty"`
	// MimeType: Output only. MIME type (e.g., "image/jpeg", "image/png",
	// "text/plain", "video/mp4")
	MimeType string `json:"mimeType,omitempty"`
	// Uri: Output only. The URI to access this media view.
	Uri string `json:"uri,omitempty"`
	// VideoCharacteristics: Output only. Characteristics of a video media view.
	VideoCharacteristics *GoogleCloudDiscoveryengineV1alphaVideoCharacteristics `json:"videoCharacteristics,omitempty"`
	// ViewId: Output only. Globally Unique id for this specific view.
	ViewId string `json:"viewId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ByteSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ByteSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaFirestoreSource: Firestore source import
// data from.
type GoogleCloudDiscoveryengineV1alphaFirestoreSource struct {
	// CollectionId: Required. The Firestore collection (or entity) to copy the
	// data from with a length limit of 1,500 characters.
	CollectionId string `json:"collectionId,omitempty"`
	// DatabaseId: Required. The Firestore database to copy the data from with a
	// length limit of 256 characters.
	DatabaseId string `json:"databaseId,omitempty"`
	// GcsStagingDir: Intermediate Cloud Storage directory used for the import with
	// a length limit of 2,000 characters. Can be specified if one wants to have
	// the Firestore export to a specific Cloud Storage directory. Ensure that the
	// Firestore service account has the necessary Cloud Storage Admin permissions
	// to access the specified Cloud Storage directory.
	GcsStagingDir string `json:"gcsStagingDir,omitempty"`
	// ProjectId: The project ID that the Cloud SQL source is in with a length
	// limit of 128 characters. If not specified, inherits the project ID from the
	// parent request.
	ProjectId string `json:"projectId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CollectionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CollectionId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaGcsSource: Cloud Storage location for input
// content.
type GoogleCloudDiscoveryengineV1alphaGcsSource struct {
	// DataSchema: The schema to use when parsing the data from the source.
	// Supported values for document imports: * `document` (default): One JSON
	// Document per line. Each document must have a valid Document.id. * `content`:
	// Unstructured data (e.g. PDF, HTML). Each file matched by `input_uris`
	// becomes a document, with the ID set to the first 128 bits of SHA256(URI)
	// encoded as a hex string. * `custom`: One custom data JSON per row in
	// arbitrary format that conforms to the defined Schema of the data store. This
	// can only be used by the GENERIC Data Store vertical. * `csv`: A CSV file
	// with header conforming to the defined Schema of the data store. Each entry
	// after the header is imported as a Document. This can only be used by the
	// GENERIC Data Store vertical. Supported values for user event imports: *
	// `user_event` (default): One JSON UserEvent per line.
	DataSchema string `json:"dataSchema,omitempty"`
	// InputUris: Required. Cloud Storage URIs to input files. Each URI can be up
	// to 2000 characters long. URIs can match the full object path (for example,
	// `gs://bucket/directory/object.json`) or a pattern matching one or more
	// files, such as `gs://bucket/directory/*.json`. A request can contain at most
	// 100 files (or 100,000 files if `data_schema` is `content`). Each file can be
	// up to 2 GB (or 100 MB if `data_schema` is `content`).
	InputUris []string `json:"inputUris,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataSchema") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataSchema") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse: Response
// message for DataConnectorService.GetConnectorSecret.
type GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse struct {
	// App: The app name of the associated Connector.
	App string `json:"app,omitempty"`
	// AuthorizationUri: The authorization uri for the data connector.
	AuthorizationUri string `json:"authorizationUri,omitempty"`
	// ClientId: The client id of the associated Connector.
	ClientId string `json:"clientId,omitempty"`
	// Instance: The instance name of the associated Connector.
	Instance string `json:"instance,omitempty"`
	// RedirectUri: The redirect url of the associated Connector.
	RedirectUri string `json:"redirectUri,omitempty"`
	// TenantId: The tenant id of the associated Connector.
	TenantId string `json:"tenantId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// 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 GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaGetSessionRequest: Request for GetSession
// method.
type GoogleCloudDiscoveryengineV1alphaGetSessionRequest struct {
	// IncludeAnswerDetails: Optional. If set to true, the full session including
	// all answer details will be returned.
	IncludeAnswerDetails bool `json:"includeAnswerDetails,omitempty"`
	// Name: Required. The resource name of the Session to get. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store_id}/sessions/{session_id}`
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IncludeAnswerDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IncludeAnswerDetails") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaGetUriPatternDocumentDataResponse: Response
// message for SiteSearchEngineService.GetUriPatternDocumentData method.
type GoogleCloudDiscoveryengineV1alphaGetUriPatternDocumentDataResponse struct {
	// DocumentDataMap: Document data keyed by URI pattern. For example:
	// document_data_map = { "www.url1.com/*": { "Categories": ["category1",
	// "category2"] }, "www.url2.com/*": { "Categories": ["category3"] } }
	DocumentDataMap map[string]googleapi.RawMessage `json:"documentDataMap,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "DocumentDataMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentDataMap") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaGroundingFact: Grounding Fact.
type GoogleCloudDiscoveryengineV1alphaGroundingFact struct {
	// Attributes: Attributes associated with the fact. Common attributes include
	// `source` (indicating where the fact was sourced from), `author` (indicating
	// the author of the fact), and so on.
	Attributes map[string]string `json:"attributes,omitempty"`
	// FactText: Text content of the fact. Can be at most 10K characters long.
	FactText string `json:"factText,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 GoogleCloudDiscoveryengineV1alphaGroundingFact) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaGroundingFact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaGuidedSearchSpec: Defines guided search
// spec.
type GoogleCloudDiscoveryengineV1alphaGuidedSearchSpec struct {
	// EnableRefinementAttributes: Whether or not to enable and include refinement
	// attributes in gudied search result.
	EnableRefinementAttributes bool `json:"enableRefinementAttributes,omitempty"`
	// EnableRelatedQuestions: Whether or not to enable and include related
	// questions in search response.
	EnableRelatedQuestions bool `json:"enableRelatedQuestions,omitempty"`
	// MaxRelatedQuestions: Max number of related questions to be returned. The
	// valid range is [1, 5]. If enable_related_questions is true, the default
	// value is 3.
	MaxRelatedQuestions int64 `json:"maxRelatedQuestions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableRefinementAttributes")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableRefinementAttributes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaHealthcareFhirConfig: Config to data store
// for `HEALTHCARE_FHIR` vertical.
type GoogleCloudDiscoveryengineV1alphaHealthcareFhirConfig struct {
	// EnableConfigurableSchema: Whether to enable configurable schema for
	// `HEALTHCARE_FHIR` vertical. If set to `true`, the predefined healthcare fhir
	// schema can be extended for more customized searching and filtering.
	EnableConfigurableSchema bool `json:"enableConfigurableSchema,omitempty"`
	// EnableStaticIndexingForBatchIngestion: Whether to enable static indexing for
	// `HEALTHCARE_FHIR` batch ingestion. If set to `true`, the batch ingestion
	// will be processed in a static indexing mode which is slower but more capable
	// of handling larger volume.
	EnableStaticIndexingForBatchIngestion bool `json:"enableStaticIndexingForBatchIngestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableConfigurableSchema")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableConfigurableSchema") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdentityMappingEntry: Identity Mapping
// Entry that maps an external identity to an internal identity.
type GoogleCloudDiscoveryengineV1alphaIdentityMappingEntry struct {
	// ExternalIdentity: Required. Identity outside the customer identity provider.
	// The length limit of external identity will be of 100 characters.
	ExternalIdentity string `json:"externalIdentity,omitempty"`
	// GroupId: Group identifier. For Google Workspace user account, group_id
	// should be the google workspace group email. For non-google identity
	// provider, group_id is the mapped group identifier configured during the
	// workforcepool config.
	GroupId string `json:"groupId,omitempty"`
	// UserId: User identifier. For Google Workspace user account, user_id should
	// be the google workspace user email. For non-google identity provider,
	// user_id is the mapped user identifier configured during the workforcepool
	// config.
	UserId string `json:"userId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIdentity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIdentity") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdentityMappingEntryOperationMetadata:
// IdentityMappingEntry LongRunningOperation metadata for
// IdentityMappingStoreService.ImportIdentityMappings and
// IdentityMappingStoreService.PurgeIdentityMappings
type GoogleCloudDiscoveryengineV1alphaIdentityMappingEntryOperationMetadata struct {
	// FailureCount: The number of IdentityMappingEntries that failed to be
	// processed.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: The number of IdentityMappingEntries that were successfully
	// processed.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: The total number of IdentityMappingEntries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FailureCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdentityMappingStore: Identity Mapping
// Store which contains Identity Mapping Entries.
type GoogleCloudDiscoveryengineV1alphaIdentityMappingStore struct {
	// CmekConfig: Output only. CMEK-related information for the Identity Mapping
	// Store.
	CmekConfig *GoogleCloudDiscoveryengineV1alphaCmekConfig `json:"cmekConfig,omitempty"`
	// IdpConfig: Output only. The identity provider configuration this is bound to
	// translate the identity mapping entries within.
	IdpConfig *GoogleCloudDiscoveryengineV1alphaIdpConfig `json:"idpConfig,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect this Identity
	// Mapping Store at creation time. Must be set for requests that need to comply
	// with CMEK Org Policy protections. If this field is set and processed
	// successfully, the Identity Mapping Store will be protected by the KMS key,
	// as indicated in the cmek_config field.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// Name: Immutable. The full resource name of the identity mapping store.
	// Format:
	// `projects/{project}/locations/{location}/identityMappingStores/{identity_mapp
	// ing_store}`. This field must be a UTF-8 encoded string with a length limit
	// of 1024 characters.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CmekConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CmekConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdentityScheduleConfig: The configuration
// for the identity data synchronization runs.
type GoogleCloudDiscoveryengineV1alphaIdentityScheduleConfig struct {
	// NextSyncTime: Optional. The UTC time when the next data sync is expected to
	// start for the Data Connector. Customers are only able to specify the hour
	// and minute to schedule the data sync. This is utilized when the data
	// connector has a refresh interval greater than 1 day.
	NextSyncTime *GoogleTypeDateTime `json:"nextSyncTime,omitempty"`
	// RefreshInterval: Optional. The refresh interval to sync the Access Control
	// List information for the documents ingested by this connector. If not set,
	// the access control list will be refreshed at the default interval of 30
	// minutes. The identity refresh interval can be at least 30 minutes and at
	// most 7 days.
	RefreshInterval string `json:"refreshInterval,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NextSyncTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NextSyncTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdpConfig: Identity Provider Config.
type GoogleCloudDiscoveryengineV1alphaIdpConfig struct {
	// ExternalIdpConfig: External Identity provider config.
	ExternalIdpConfig *GoogleCloudDiscoveryengineV1alphaIdpConfigExternalIdpConfig `json:"externalIdpConfig,omitempty"`
	// IdpType: Identity provider type configured.
	//
	// Possible values:
	//   "IDP_TYPE_UNSPECIFIED" - Default value. ACL search not enabled.
	//   "GSUITE" - Google 1P provider.
	//   "THIRD_PARTY" - Third party provider.
	IdpType string `json:"idpType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIdpConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaIdpConfigExternalIdpConfig: Third party IDP
// Config.
type GoogleCloudDiscoveryengineV1alphaIdpConfigExternalIdpConfig struct {
	// WorkforcePoolName: Workforce pool name. Example:
	// "locations/global/workforcePools/pool_id"
	WorkforcePoolName string `json:"workforcePoolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WorkforcePoolName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WorkforcePoolName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImageCharacteristics: Standard
// characteristics of an image media view.
type GoogleCloudDiscoveryengineV1alphaImageCharacteristics struct {
	// BitDepth: Output only. Bit depth of the image (e.g., 8-bit, 16-bit).
	BitDepth int64 `json:"bitDepth,omitempty"`
	// ColorSpace: Output only. Color space of the image (e.g., "RGB", "CMYK",
	// "Grayscale").
	//
	// Possible values:
	//   "COLOR_SPACE_UNSPECIFIED" - Default value. Unknown color space.
	//   "RGB" - Red, green, blue colorspace.
	//   "CMYK" - Cyan, magenta, yellow, and black colorspace.
	//   "GRAYSCALE" - Grayscale colorspace.
	//   "YUV" - YUV colorspace.
	//   "OTHER_COLOR_SPACE" - Other colorspace.
	ColorSpace string `json:"colorSpace,omitempty"`
	// Height: Output only. Image height in pixels.
	Height int64 `json:"height,omitempty"`
	// Width: Output only. Image width in pixels.
	Width int64 `json:"width,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BitDepth") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BitDepth") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsMetadata:
// Metadata related to the progress of the ImportCompletionSuggestions
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of CompletionSuggestions that failed to be imported.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of CompletionSuggestions successfully imported.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest: Request
// message for CompletionService.ImportCompletionSuggestions method.
type GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest struct {
	// BigquerySource: BigQuery input source.
	BigquerySource *GoogleCloudDiscoveryengineV1alphaBigQuerySource `json:"bigquerySource,omitempty"`
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// GcsSource: Cloud Storage location for the input content.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// InlineSource: The Inline source for suggestion entries.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigquerySource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigquerySource") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequestInlineSour
// ce: The inline source for CompletionSuggestions.
type GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequestInlineSource struct {
	// Suggestions: Required. A list of all denylist entries to import. Max of 1000
	// items.
	Suggestions []*GoogleCloudDiscoveryengineV1alphaCompletionSuggestion `json:"suggestions,omitempty"`
	// 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 GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequestInlineSource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequestInlineSource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsResponse:
// Response of the CompletionService.ImportCompletionSuggestions method. If the
// long running operation is done, this message is returned by the
// google.longrunning.Operations.response field if the operation is successful.
type GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsResponse struct {
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportDocumentsMetadata: Metadata related
// to the progress of the ImportDocuments operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaImportDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: Total count of entries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest: Request message for
// Import methods.
type GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest struct {
	// AlloyDbSource: AlloyDB input source.
	AlloyDbSource *GoogleCloudDiscoveryengineV1alphaAlloyDbSource `json:"alloyDbSource,omitempty"`
	// AutoGenerateIds: Whether to automatically generate IDs for the documents if
	// absent. If set to `true`, Document.ids are automatically generated based on
	// the hash of the payload, where IDs may not be consistent during multiple
	// imports. In which case ReconciliationMode.FULL is highly recommended to
	// avoid duplicate contents. If unset or set to `false`, Document.ids have to
	// be specified using id_field, otherwise, documents without IDs fail to be
	// imported. Supported data sources: * GcsSource. GcsSource.data_schema must be
	// `custom` or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. *
	// BigQuerySource. BigQuerySource.data_schema must be `custom` or `csv`.
	// Otherwise, an INVALID_ARGUMENT error is thrown. * SpannerSource. *
	// CloudSqlSource. * FirestoreSource. * BigtableSource.
	AutoGenerateIds bool `json:"autoGenerateIds,omitempty"`
	// BigquerySource: BigQuery input source.
	BigquerySource *GoogleCloudDiscoveryengineV1alphaBigQuerySource `json:"bigquerySource,omitempty"`
	// BigtableSource: Cloud Bigtable input source.
	BigtableSource *GoogleCloudDiscoveryengineV1alphaBigtableSource `json:"bigtableSource,omitempty"`
	// CloudSqlSource: Cloud SQL input source.
	CloudSqlSource *GoogleCloudDiscoveryengineV1alphaCloudSqlSource `json:"cloudSqlSource,omitempty"`
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// FhirStoreSource: FhirStore input source.
	FhirStoreSource *GoogleCloudDiscoveryengineV1alphaFhirStoreSource `json:"fhirStoreSource,omitempty"`
	// FirestoreSource: Firestore input source.
	FirestoreSource *GoogleCloudDiscoveryengineV1alphaFirestoreSource `json:"firestoreSource,omitempty"`
	// ForceRefreshContent: Optional. Whether to force refresh the unstructured
	// content of the documents. If set to `true`, the content part of the
	// documents will be refreshed regardless of the update status of the
	// referencing content.
	ForceRefreshContent bool `json:"forceRefreshContent,omitempty"`
	// GcsSource: Cloud Storage location for the input content.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// IdField: The field indicates the ID field or column to be used as unique IDs
	// of the documents. For GcsSource it is the key of the JSON field. For
	// instance, `my_id` for JSON `{"my_id": "some_uuid"}`. For others, it may be
	// the column name of the table where the unique ids are stored. The values of
	// the JSON field or the table column are used as the Document.ids. The JSON
	// field or the table column must be of string type, and the values must be set
	// as valid strings conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
	// with 1-63 characters. Otherwise, documents without valid IDs fail to be
	// imported. Only set this field when auto_generate_ids is unset or set as
	// `false`. Otherwise, an INVALID_ARGUMENT error is thrown. If it is unset, a
	// default value `_id` is used when importing from the allowed data sources.
	// Supported data sources: * GcsSource. GcsSource.data_schema must be `custom`
	// or `csv`. Otherwise, an INVALID_ARGUMENT error is thrown. * BigQuerySource.
	// BigQuerySource.data_schema must be `custom` or `csv`. Otherwise, an
	// INVALID_ARGUMENT error is thrown. * SpannerSource. * CloudSqlSource. *
	// BigtableSource.
	IdField string `json:"idField,omitempty"`
	// InlineSource: The Inline source for the input content for documents.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportDocumentsRequestInlineSource `json:"inlineSource,omitempty"`
	// ReconciliationMode: The mode of reconciliation between existing documents
	// and the documents to be imported. Defaults to
	// ReconciliationMode.INCREMENTAL.
	//
	// Possible values:
	//   "RECONCILIATION_MODE_UNSPECIFIED" - Defaults to `INCREMENTAL`.
	//   "INCREMENTAL" - Inserts new documents or updates existing documents.
	//   "FULL" - Calculates diff and replaces the entire document dataset.
	// Existing documents may be deleted if they are not present in the source
	// location. When using this mode, there won't be any downtime on the dataset
	// targeted. Any document that should remain unchanged or that should be
	// updated will continue serving while the operation is running.
	ReconciliationMode string `json:"reconciliationMode,omitempty"`
	// SpannerSource: Spanner input source.
	SpannerSource *GoogleCloudDiscoveryengineV1alphaSpannerSource `json:"spannerSource,omitempty"`
	// UpdateMask: Indicates which fields in the provided imported documents to
	// update. If not set, the default is to update all fields.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AlloyDbSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlloyDbSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportDocumentsRequestInlineSource: The
// inline source for the input config for ImportDocuments method.
type GoogleCloudDiscoveryengineV1alphaImportDocumentsRequestInlineSource struct {
	// Documents: Required. A list of documents to update/create. Each document
	// must have a valid Document.id. Recommended max of 100 items.
	Documents []*GoogleCloudDiscoveryengineV1alphaDocument `json:"documents,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Documents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Documents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportDocumentsResponse: Response of the
// ImportDocumentsRequest. If the long running operation is done, then this
// message is returned by the google.longrunning.Operations.response field if
// the operation was successful.
type GoogleCloudDiscoveryengineV1alphaImportDocumentsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportErrorConfig: Configuration of
// destination for Import related errors.
type GoogleCloudDiscoveryengineV1alphaImportErrorConfig struct {
	// GcsPrefix: Cloud Storage prefix for import errors. This must be an empty,
	// existing Cloud Storage directory. Import errors are written to sharded files
	// in this directory, one per line, as a JSON-encoded `google.rpc.Status`
	// message.
	GcsPrefix string `json:"gcsPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsPrefix") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsPrefix") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequest: Request
// message for IdentityMappingStoreService.ImportIdentityMappings
type GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequest struct {
	// InlineSource: The inline source to import identity mapping entries from.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "InlineSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "InlineSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequestInlineSource:
// The inline source to import identity mapping entries from.
type GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequestInlineSource struct {
	// IdentityMappingEntries: A maximum of 10000 entries can be imported at one
	// time
	IdentityMappingEntries []*GoogleCloudDiscoveryengineV1alphaIdentityMappingEntry `json:"identityMappingEntries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IdentityMappingEntries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityMappingEntries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsResponse: Response
// message for IdentityMappingStoreService.ImportIdentityMappings
type GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSampleQueriesMetadata: Metadata
// related to the progress of the ImportSampleQueries operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaImportSampleQueriesMetadata struct {
	// CreateTime: ImportSampleQueries operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of SampleQuerys that failed to be imported.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of SampleQuerys successfully imported.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: Total count of SampleQuerys that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// UpdateTime: ImportSampleQueries operation last update time. If the operation
	// is done, this is also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequest: Request message
// for SampleQueryService.ImportSampleQueries method.
type GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequest struct {
	// BigquerySource: BigQuery input source.
	BigquerySource *GoogleCloudDiscoveryengineV1alphaBigQuerySource `json:"bigquerySource,omitempty"`
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// GcsSource: Cloud Storage location for the input content.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// InlineSource: The Inline source for sample query entries.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigquerySource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigquerySource") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequestInlineSource: The
// inline source for SampleQuerys.
type GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequestInlineSource struct {
	// SampleQueries: Required. A list of SampleQuerys to import. Max of 1000
	// items.
	SampleQueries []*GoogleCloudDiscoveryengineV1alphaSampleQuery `json:"sampleQueries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SampleQueries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SampleQueries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSampleQueriesResponse: Response of
// the SampleQueryService.ImportSampleQueries method. If the long running
// operation is done, this message is returned by the
// google.longrunning.Operations.response field if the operation is successful.
type GoogleCloudDiscoveryengineV1alphaImportSampleQueriesResponse struct {
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesMetadata:
// Metadata related to the progress of the ImportSuggestionDenyListEntries
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest:
// Request message for CompletionService.ImportSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest struct {
	// GcsSource: Cloud Storage location for the input content. Only 1 file can be
	// specified that contains all entries to import. Supported values
	// `gcs_source.schema` for autocomplete suggestion deny list entry imports: *
	// `suggestion_deny_list` (default): One JSON [SuggestionDenyListEntry] per
	// line.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// InlineSource: The Inline source for the input content for suggestion deny
	// list entries.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequestInline
// Source: The inline source for SuggestionDenyListEntry.
type GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequestInlineSource struct {
	// Entries: Required. A list of all denylist entries to import. Max of 1000
	// items.
	Entries []*GoogleCloudDiscoveryengineV1alphaSuggestionDenyListEntry `json:"entries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Entries") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Entries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesResponse:
// Response message for CompletionService.ImportSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// FailedEntriesCount: Count of deny list entries that failed to be imported.
	FailedEntriesCount int64 `json:"failedEntriesCount,omitempty,string"`
	// ImportedEntriesCount: Count of deny list entries successfully imported.
	ImportedEntriesCount int64 `json:"importedEntriesCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportUserEventsMetadata: Metadata related
// to the progress of the Import operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaImportUserEventsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest: Request message
// for the ImportUserEvents request.
type GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest struct {
	// BigquerySource: BigQuery input source.
	BigquerySource *GoogleCloudDiscoveryengineV1alphaBigQuerySource `json:"bigquerySource,omitempty"`
	// ErrorConfig: The desired location of errors incurred during the Import.
	// Cannot be set for inline user event imports.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// GcsSource: Cloud Storage location for the input content.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// InlineSource: The Inline source for the input content for UserEvents.
	InlineSource *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigquerySource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigquerySource") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportUserEventsRequestInlineSource: The
// inline source for the input config for ImportUserEvents method.
type GoogleCloudDiscoveryengineV1alphaImportUserEventsRequestInlineSource struct {
	// UserEvents: Required. A list of user events to import. Recommended max of
	// 10k items.
	UserEvents []*GoogleCloudDiscoveryengineV1alphaUserEvent `json:"userEvents,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserEvents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserEvents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaImportUserEventsResponse: Response of the
// ImportUserEventsRequest. If the long running operation was successful, then
// this message is returned by the google.longrunning.Operations.response field
// if the operation was successful.
type GoogleCloudDiscoveryengineV1alphaImportUserEventsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors if this field
	// was set in the request.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// JoinedEventsCount: Count of user events imported with complete existing
	// Documents.
	JoinedEventsCount int64 `json:"joinedEventsCount,omitempty,string"`
	// UnjoinedEventsCount: Count of user events imported, but with Document
	// information not found in the existing Branch.
	UnjoinedEventsCount int64 `json:"unjoinedEventsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaInterval: A floating point interval.
type GoogleCloudDiscoveryengineV1alphaInterval struct {
	// ExclusiveMaximum: Exclusive upper bound.
	ExclusiveMaximum float64 `json:"exclusiveMaximum,omitempty"`
	// ExclusiveMinimum: Exclusive lower bound.
	ExclusiveMinimum float64 `json:"exclusiveMinimum,omitempty"`
	// Maximum: Inclusive upper bound.
	Maximum float64 `json:"maximum,omitempty"`
	// Minimum: Inclusive lower bound.
	Minimum float64 `json:"minimum,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExclusiveMaximum") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExclusiveMaximum") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaInterval) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaInterval
	var s1 struct {
		ExclusiveMaximum gensupport.JSONFloat64 `json:"exclusiveMaximum"`
		ExclusiveMinimum gensupport.JSONFloat64 `json:"exclusiveMinimum"`
		Maximum          gensupport.JSONFloat64 `json:"maximum"`
		Minimum          gensupport.JSONFloat64 `json:"minimum"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ExclusiveMaximum = float64(s1.ExclusiveMaximum)
	s.ExclusiveMinimum = float64(s1.ExclusiveMinimum)
	s.Maximum = float64(s1.Maximum)
	s.Minimum = float64(s1.Minimum)
	return nil
}

// GoogleCloudDiscoveryengineV1alphaLanguageInfo: Language info for DataStore.
type GoogleCloudDiscoveryengineV1alphaLanguageInfo struct {
	// Language: Output only. Language part of normalized_language_code. E.g.:
	// `en-US` -> `en`, `zh-Hans-HK` -> `zh`, `en` -> `en`.
	Language string `json:"language,omitempty"`
	// LanguageCode: The language code for the DataStore.
	LanguageCode string `json:"languageCode,omitempty"`
	// NormalizedLanguageCode: Output only. This is the normalized form of
	// language_code. E.g.: language_code of `en-GB`, `en_GB`, `en-UK` or `en-gb`
	// will have normalized_language_code of `en-GB`.
	NormalizedLanguageCode string `json:"normalizedLanguageCode,omitempty"`
	// Region: Output only. Region part of normalized_language_code, if present.
	// E.g.: `en-US` -> `US`, `zh-Hans-HK` -> `HK`, `en` -> ``.
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Language") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Language") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaLicenseConfig: Information about users'
// licenses.
type GoogleCloudDiscoveryengineV1alphaLicenseConfig struct {
	// AlertPolicyResourceConfig: Optional. The alert policy config for this
	// license config.
	AlertPolicyResourceConfig *GoogleCloudDiscoveryengineV1alphaAlertPolicyResourceConfig `json:"alertPolicyResourceConfig,omitempty"`
	// AutoRenew: Optional. Whether the license config should be auto renewed when
	// it reaches the end date.
	AutoRenew bool `json:"autoRenew,omitempty"`
	// EndDate: Optional. The planed end date.
	EndDate *GoogleTypeDate `json:"endDate,omitempty"`
	// FreeTrial: Optional. Whether the license config is for free trial.
	FreeTrial bool `json:"freeTrial,omitempty"`
	// GeminiBundle: Output only. Whether the license config is for Gemini bundle.
	GeminiBundle bool `json:"geminiBundle,omitempty"`
	// LicenseCount: Required. Number of licenses purchased.
	LicenseCount int64 `json:"licenseCount,omitempty,string"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// license config. Format:
	// `projects/{project}/locations/{location}/licenseConfigs/{license_config}`
	Name string `json:"name,omitempty"`
	// StartDate: Required. The start date.
	StartDate *GoogleTypeDate `json:"startDate,omitempty"`
	// State: Output only. The state of the license config.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value. The license config does not exist.
	//   "ACTIVE" - The license config is effective and being used.
	//   "EXPIRED" - The license config has expired.
	//   "NOT_STARTED" - The license config has not started yet, and its start date
	// is in the future.
	State string `json:"state,omitempty"`
	// SubscriptionTerm: Required. Subscription term.
	//
	// Possible values:
	//   "SUBSCRIPTION_TERM_UNSPECIFIED" - Default value, do not use.
	//   "SUBSCRIPTION_TERM_ONE_MONTH" - 1 month.
	//   "SUBSCRIPTION_TERM_ONE_YEAR" - 1 year.
	//   "SUBSCRIPTION_TERM_THREE_YEARS" - 3 years.
	SubscriptionTerm string `json:"subscriptionTerm,omitempty"`
	// SubscriptionTier: Required. Subscription tier information for the license
	// config.
	//
	// Possible values:
	//   "SUBSCRIPTION_TIER_UNSPECIFIED" - Default value.
	//   "SUBSCRIPTION_TIER_SEARCH" - Search tier. Search tier can access VAIS
	// search features and NotebookLM features.
	//   "SUBSCRIPTION_TIER_SEARCH_AND_ASSISTANT" - Search + assistant tier. Search
	// + assistant tier can access VAIS search features, NotebookLM features and
	// assistant features.
	//   "SUBSCRIPTION_TIER_NOTEBOOK_LM" - NotebookLM tier. NotebookLM is a
	// subscription tier can only access NotebookLM features.
	//   "SUBSCRIPTION_TIER_FRONTLINE_WORKER" - Frontline worker tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_STARTER" - Agentspace Starter tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_BUSINESS" - Agentspace Business tier.
	//   "SUBSCRIPTION_TIER_ENTERPRISE" - Enterprise tier.
	//   "SUBSCRIPTION_TIER_EDU" - EDU tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO" - EDU Pro tier.
	//   "SUBSCRIPTION_TIER_EDU_EMERGING" - EDU emerging market tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO_EMERGING" - EDU Pro emerging market tier.
	SubscriptionTier string `json:"subscriptionTier,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AlertPolicyResourceConfig")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AlertPolicyResourceConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListBranchesResponse: Response for
// BranchService.ListBranches method.
type GoogleCloudDiscoveryengineV1alphaListBranchesResponse struct {
	// Branches: The Branches.
	Branches []*GoogleCloudDiscoveryengineV1alphaBranch `json:"branches,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Branches") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Branches") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListChunksResponse: Response message for
// ChunkService.ListChunks method.
type GoogleCloudDiscoveryengineV1alphaListChunksResponse struct {
	// Chunks: The Chunks.
	Chunks []*GoogleCloudDiscoveryengineV1alphaChunk `json:"chunks,omitempty"`
	// NextPageToken: A token that can be sent as ListChunksRequest.page_token to
	// retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	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. "Chunks") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Chunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListCmekConfigsResponse: Response message
// for CmekConfigService.ListCmekConfigs method.
type GoogleCloudDiscoveryengineV1alphaListCmekConfigsResponse struct {
	// CmekConfigs: All the customer's CmekConfigs.
	CmekConfigs []*GoogleCloudDiscoveryengineV1alphaCmekConfig `json:"cmekConfigs,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CmekConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CmekConfigs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListCollectionsResponse: Response message
// for CollectionService.ListCollections method.
type GoogleCloudDiscoveryengineV1alphaListCollectionsResponse struct {
	// Collections: The Collections.
	Collections []*GoogleCloudDiscoveryengineV1alphaCollection `json:"collections,omitempty"`
	// NextPageToken: A token that can be sent as ListCollectionsRequest.page_token
	// to retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	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. "Collections") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Collections") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse: Response for
// DataConnectorService.ListConnectorRuns method.
type GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse struct {
	// ConnectorRuns: List of ConnectorRuns.
	ConnectorRuns []*GoogleCloudDiscoveryengineV1alphaConnectorRun `json:"connectorRuns,omitempty"`
	// NextPageToken: A token that can be sent as `page_token` to retrieve the next
	// page. If this field is omitted, there are no subsequent pages.
	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. "ConnectorRuns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorRuns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListControlsResponse: Response for
// ListControls method.
type GoogleCloudDiscoveryengineV1alphaListControlsResponse struct {
	// Controls: All the Controls for a given data store.
	Controls []*GoogleCloudDiscoveryengineV1alphaControl `json:"controls,omitempty"`
	// NextPageToken: Pagination token, if not returned indicates 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. "Controls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Controls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListConversationsResponse: Response for
// ListConversations method.
type GoogleCloudDiscoveryengineV1alphaListConversationsResponse struct {
	// Conversations: All the Conversations for a given data store.
	Conversations []*GoogleCloudDiscoveryengineV1alphaConversation `json:"conversations,omitempty"`
	// NextPageToken: Pagination token, if not returned indicates 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. "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 GoogleCloudDiscoveryengineV1alphaListConversationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListConversationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListCustomModelsResponse: Response message
// for SearchTuningService.ListCustomModels method.
type GoogleCloudDiscoveryengineV1alphaListCustomModelsResponse struct {
	// Models: List of custom tuning models.
	Models []*GoogleCloudDiscoveryengineV1alphaCustomTuningModel `json:"models,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Models") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Models") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListDataStoresResponse: Response message
// for DataStoreService.ListDataStores method.
type GoogleCloudDiscoveryengineV1alphaListDataStoresResponse struct {
	// DataStores: All the customer's DataStores.
	DataStores []*GoogleCloudDiscoveryengineV1alphaDataStore `json:"dataStores,omitempty"`
	// NextPageToken: A token that can be sent as ListDataStoresRequest.page_token
	// to retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	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. "DataStores") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStores") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListDocumentsResponse: Response message for
// DocumentService.ListDocuments method.
type GoogleCloudDiscoveryengineV1alphaListDocumentsResponse struct {
	// Documents: The Documents.
	Documents []*GoogleCloudDiscoveryengineV1alphaDocument `json:"documents,omitempty"`
	// NextPageToken: A token that can be sent as ListDocumentsRequest.page_token
	// to retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	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. "Documents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Documents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListEnginesResponse: Response message for
// EngineService.ListEngines method.
type GoogleCloudDiscoveryengineV1alphaListEnginesResponse struct {
	// Engines: All the customer's Engines.
	Engines []*GoogleCloudDiscoveryengineV1alphaEngine `json:"engines,omitempty"`
	// NextPageToken: Not supported.
	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. "Engines") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Engines") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse: Response
// message for EvaluationService.ListEvaluationResults method.
type GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse struct {
	// EvaluationResults: The evaluation results for the SampleQuerys.
	EvaluationResults []*GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponseEvaluationResult `json:"evaluationResults,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListEvaluationResultsRequest.page_token to retrieve the next page. If this
	// field is omitted, there are no subsequent pages.
	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. "EvaluationResults") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationResults") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponseEvaluationResul
// t: Represents the results of an evaluation for a single SampleQuery.
type GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponseEvaluationResult struct {
	// QualityMetrics: Output only. The metrics produced by the evaluation, for a
	// given SampleQuery.
	QualityMetrics *GoogleCloudDiscoveryengineV1alphaQualityMetrics `json:"qualityMetrics,omitempty"`
	// SampleQuery: Output only. The SampleQuery that was evaluated.
	SampleQuery *GoogleCloudDiscoveryengineV1alphaSampleQuery `json:"sampleQuery,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QualityMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QualityMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse: Response message
// for EvaluationService.ListEvaluations method.
type GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse struct {
	// Evaluations: The Evaluations.
	Evaluations []*GoogleCloudDiscoveryengineV1alphaEvaluation `json:"evaluations,omitempty"`
	// NextPageToken: A token that can be sent as ListEvaluationsRequest.page_token
	// to retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	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. "Evaluations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Evaluations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListFilesResponse: Response message for
// SessionService.ListFiles method.
type GoogleCloudDiscoveryengineV1alphaListFilesResponse struct {
	// Files: The FileMetadatas.
	Files []*GoogleCloudDiscoveryengineV1alphaFileMetadata `json:"files,omitempty"`
	// NextPageToken: A token to retrieve next page of results. Pass this value in
	// the ListFilesRequest.page_token field in the subsequent call to `ListFiles`
	// method to retrieve the next page of results.
	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. "Files") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Files") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse: Response
// message for IdentityMappingStoreService.ListIdentityMappingStores
type GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse struct {
	// IdentityMappingStores: The Identity Mapping Stores.
	IdentityMappingStores []*GoogleCloudDiscoveryengineV1alphaIdentityMappingStore `json:"identityMappingStores,omitempty"`
	// NextPageToken: A token that can be sent as `page_token` to retrieve the next
	// page. If this field is omitted, there are no subsequent pages.
	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. "IdentityMappingStores") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityMappingStores") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse: Response
// message for IdentityMappingStoreService.ListIdentityMappings
type GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse struct {
	// IdentityMappingEntries: The Identity Mapping Entries.
	IdentityMappingEntries []*GoogleCloudDiscoveryengineV1alphaIdentityMappingEntry `json:"identityMappingEntries,omitempty"`
	// NextPageToken: A token that can be sent as `page_token` to retrieve the next
	// page. If this field is omitted, there are no subsequent pages.
	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. "IdentityMappingEntries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityMappingEntries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse: Response message
// for SampleQueryService.ListSampleQueries method.
type GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse struct {
	// NextPageToken: A token that can be sent as
	// ListSampleQueriesRequest.page_token to retrieve the next page. If this field
	// is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SampleQueries: The SampleQuerys.
	SampleQueries []*GoogleCloudDiscoveryengineV1alphaSampleQuery `json:"sampleQueries,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 GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse: Response
// message for SampleQuerySetService.ListSampleQuerySets method.
type GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse struct {
	// NextPageToken: A token that can be sent as
	// ListSampleQuerySetsRequest.page_token to retrieve the next page. If this
	// field is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// SampleQuerySets: The SampleQuerySets.
	SampleQuerySets []*GoogleCloudDiscoveryengineV1alphaSampleQuerySet `json:"sampleQuerySets,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 GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListSchemasResponse: Response message for
// SchemaService.ListSchemas method.
type GoogleCloudDiscoveryengineV1alphaListSchemasResponse struct {
	// NextPageToken: A token that can be sent as ListSchemasRequest.page_token to
	// retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Schemas: The Schemas.
	Schemas []*GoogleCloudDiscoveryengineV1alphaSchema `json:"schemas,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 GoogleCloudDiscoveryengineV1alphaListSchemasResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListSchemasResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse: Response for
// ListServingConfigs method.
type GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse struct {
	// NextPageToken: Pagination token, if not returned indicates the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ServingConfigs: All the ServingConfigs for a given dataStore.
	ServingConfigs []*GoogleCloudDiscoveryengineV1alphaServingConfig `json:"servingConfigs,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 GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListSessionsRequest: Request for
// ListSessions method.
type GoogleCloudDiscoveryengineV1alphaListSessionsRequest struct {
	// Filter: A comma-separated list of fields to filter by, in EBNF grammar. The
	// supported fields are: * `user_pseudo_id` * `state` * `display_name` *
	// `starred` * `is_pinned` * `labels` * `create_time` * `update_time` Examples:
	// * `user_pseudo_id = some_id` * `display_name = "some_name" * `starred =
	// true` * `is_pinned=true AND (NOT labels:hidden)` * `create_time >
	// "1970-01-01T12:00:00Z"
	Filter string `json:"filter,omitempty"`
	// OrderBy: A comma-separated list of fields to order by, sorted in ascending
	// order. Use "desc" after a field name for descending. Supported fields: *
	// `update_time` * `create_time` * `session_name` * `is_pinned` Example: *
	// `update_time desc` * `create_time` * `is_pinned desc,update_time desc`: list
	// sessions by is_pinned first, then by update_time.
	OrderBy string `json:"orderBy,omitempty"`
	// PageSize: Maximum number of results to return. If unspecified, defaults to
	// 50. Max allowed value is 1000.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: A page token, received from a previous `ListSessions` call.
	// Provide this to retrieve the subsequent page.
	PageToken string `json:"pageToken,omitempty"`
	// Parent: Required. The data store resource name. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store_id}`
	Parent string `json:"parent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaListSessionsResponse: Response for
// ListSessions method.
type GoogleCloudDiscoveryengineV1alphaListSessionsResponse struct {
	// NextPageToken: Pagination token, if not returned indicates the last page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Sessions: All the Sessions for a given data store.
	Sessions []*GoogleCloudDiscoveryengineV1alphaSession `json:"sessions,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 GoogleCloudDiscoveryengineV1alphaListSessionsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListSessionsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse: Response message
// for SiteSearchEngineService.ListTargetSites method.
type GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse struct {
	// NextPageToken: A token that can be sent as `page_token` to retrieve the next
	// page. If this field is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// TargetSites: List of TargetSites.
	TargetSites []*GoogleCloudDiscoveryengineV1alphaTargetSite `json:"targetSites,omitempty"`
	// TotalSize: The total number of items matching the request. This will always
	// be populated in the response.
	TotalSize int64 `json:"totalSize,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 GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse: Response message
// for UserLicenseService.ListUserLicenses.
type GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse struct {
	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
	// next page. If this field is omitted, there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// UserLicenses: All the customer's UserLicenses.
	UserLicenses []*GoogleCloudDiscoveryengineV1alphaUserLicense `json:"userLicenses,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 GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaMediaInfo: Media-specific user event
// information.
type GoogleCloudDiscoveryengineV1alphaMediaInfo struct {
	// MediaProgressDuration: The media progress time in seconds, if applicable.
	// For example, if the end user has finished 90 seconds of a playback video,
	// then MediaInfo.media_progress_duration.seconds should be set to 90.
	MediaProgressDuration string `json:"mediaProgressDuration,omitempty"`
	// MediaProgressPercentage: Media progress should be computed using only the
	// media_progress_duration relative to the media total length. This value must
	// be between `[0, 1.0]` inclusive. If this is not a playback or the progress
	// cannot be computed (e.g. ongoing livestream), this field should be unset.
	MediaProgressPercentage float64 `json:"mediaProgressPercentage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MediaProgressDuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MediaProgressDuration") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaNaturalLanguageQueryUnderstandingConfig:
// Configuration for Natural Language Query Understanding.
type GoogleCloudDiscoveryengineV1alphaNaturalLanguageQueryUnderstandingConfig struct {
	// Mode: Mode of Natural Language Query Understanding. If this field is unset,
	// the behavior defaults to
	// NaturalLanguageQueryUnderstandingConfig.Mode.DISABLED.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Default value.
	//   "DISABLED" - Natural Language Query Understanding is disabled.
	//   "ENABLED" - Natural Language Query Understanding is enabled.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaObtainCrawlRateRequest: Request message for
// CrawlRateManagementService.ObtainCrawlRate method.
type GoogleCloudDiscoveryengineV1alphaObtainCrawlRateRequest struct {
	// CrawlRateScope: Required. The scope of the crawl rate that the user wants to
	// monitor. Currently, only domain and host name are supported. A domain name
	// example: `example.com`. A host name example: `www.example.com`. Please do
	// not include `/` in the domain or host name.
	CrawlRateScope string `json:"crawlRateScope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CrawlRateScope") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CrawlRateScope") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaObtainCrawlRateResponse: Response message
// for CrawlRateManagementService.ObtainCrawlRate method. The response contains
// organcic or dedicated crawl rate time series data for monitoring, depending
// on whether dedicated crawl rate is set.
type GoogleCloudDiscoveryengineV1alphaObtainCrawlRateResponse struct {
	// DedicatedCrawlRateTimeSeries: The historical dedicated crawl rate timeseries
	// data, used for monitoring.
	DedicatedCrawlRateTimeSeries *GoogleCloudDiscoveryengineV1alphaDedicatedCrawlRateTimeSeries `json:"dedicatedCrawlRateTimeSeries,omitempty"`
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// OrganicCrawlRateTimeSeries: The historical organic crawl rate timeseries
	// data, used for monitoring.
	OrganicCrawlRateTimeSeries *GoogleCloudDiscoveryengineV1alphaOrganicCrawlRateTimeSeries `json:"organicCrawlRateTimeSeries,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g.
	// "DedicatedCrawlRateTimeSeries") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DedicatedCrawlRateTimeSeries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaOrganicCrawlRateTimeSeries: The historical
// organic crawl rate timeseries data, used for monitoring. Organic crawl is
// auto-determined by Google to crawl the user's website when dedicate crawl is
// not set. Crawl rate is the QPS of crawl request Google sends to the user's
// website.
type GoogleCloudDiscoveryengineV1alphaOrganicCrawlRateTimeSeries struct {
	// GoogleOrganicCrawlRate: Google's organic crawl rate time series, which is
	// the sum of all googlebots' crawl rate. Please refer to
	// https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers
	// for more details about googlebots.
	GoogleOrganicCrawlRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"googleOrganicCrawlRate,omitempty"`
	// VertexAiOrganicCrawlRate: Vertex AI's organic crawl rate time series, which
	// is the crawl rate of Google-CloudVertexBot when dedicate crawl is not set.
	// Please refer to
	// https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers#google-cloudvertexbot
	// for more details about Google-CloudVertexBot.
	VertexAiOrganicCrawlRate *GoogleCloudDiscoveryengineV1alphaCrawlRateTimeSeries `json:"vertexAiOrganicCrawlRate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoogleOrganicCrawlRate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoogleOrganicCrawlRate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaOutputConfig: The output configuration
// setting.
type GoogleCloudDiscoveryengineV1alphaOutputConfig struct {
	// BigqueryDestination: The BigQuery location where the output is to be written
	// to.
	BigqueryDestination *GoogleCloudDiscoveryengineV1alphaBigQueryDestination `json:"bigqueryDestination,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BigqueryDestination") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BigqueryDestination") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPageInfo: Detailed page information.
type GoogleCloudDiscoveryengineV1alphaPageInfo struct {
	// PageCategory: The most specific category associated with a category page. To
	// represent full path of category, use '>' sign to separate different
	// hierarchies. If '>' is part of the category name, replace it with other
	// character(s). Category pages include special pages such as sales or
	// promotions. For instance, a special sale page may have the category
	// hierarchy: "pageCategory" : "Sales > 2017 Black Friday Deals". Required
	// for `view-category-page` events. Other event types should not set this
	// field. Otherwise, an `INVALID_ARGUMENT` error is returned.
	PageCategory string `json:"pageCategory,omitempty"`
	// PageviewId: A unique ID of a web page view. This should be kept the same for
	// all user events triggered from the same pageview. For example, an item
	// detail page view could trigger multiple events as the user is browsing the
	// page. The `pageview_id` property should be kept the same for all these
	// events so that they can be grouped together properly. When using the client
	// side event reporting with JavaScript pixel and Google Tag Manager, this
	// value is filled in automatically.
	PageviewId string `json:"pageviewId,omitempty"`
	// ReferrerUri: The referrer URL of the current page. When using the client
	// side event reporting with JavaScript pixel and Google Tag Manager, this
	// value is filled in automatically. However, some browser privacy restrictions
	// may cause this field to be empty.
	ReferrerUri string `json:"referrerUri,omitempty"`
	// Uri: Complete URL (window.location.href) of the user's current page. When
	// using the client side event reporting with JavaScript pixel and Google Tag
	// Manager, this value is filled in automatically. Maximum length 5,000
	// characters.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageCategory") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageCategory") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPanelInfo: Detailed panel information
// associated with a user event.
type GoogleCloudDiscoveryengineV1alphaPanelInfo struct {
	// DisplayName: The display name of the panel.
	DisplayName string `json:"displayName,omitempty"`
	// Documents: Optional. The document IDs associated with this panel.
	Documents []*GoogleCloudDiscoveryengineV1alphaDocumentInfo `json:"documents,omitempty"`
	// PanelId: Required. The panel ID.
	PanelId string `json:"panelId,omitempty"`
	// PanelPosition: The ordered position of the panel, if shown to the user with
	// other panels. If set, then total_panels must also be set.
	PanelPosition int64 `json:"panelPosition,omitempty"`
	// TotalPanels: The total number of panels, including this one, shown to the
	// user. Must be set if panel_position is set.
	TotalPanels int64 `json:"totalPanels,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 GoogleCloudDiscoveryengineV1alphaPanelInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaPanelInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaPauseEngineRequest: Request for pausing
// training of an engine.
type GoogleCloudDiscoveryengineV1alphaPauseEngineRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaPrincipal: Principal identifier of a user
// or a group.
type GoogleCloudDiscoveryengineV1alphaPrincipal struct {
	// ExternalEntityId: For 3P application identities which are not present in the
	// customer identity provider.
	ExternalEntityId string `json:"externalEntityId,omitempty"`
	// GroupId: Group identifier. For Google Workspace user account, group_id
	// should be the google workspace group email. For non-google identity provider
	// user account, group_id is the mapped group identifier configured during the
	// workforcepool config.
	GroupId string `json:"groupId,omitempty"`
	// UserId: User identifier. For Google Workspace user account, user_id should
	// be the google workspace user email. For non-google identity provider user
	// account, user_id is the mapped user identifier configured during the
	// workforcepool config.
	UserId string `json:"userId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalEntityId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalEntityId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProcessedDocument: Document captures all
// raw metadata information of items to be recommended or searched.
type GoogleCloudDiscoveryengineV1alphaProcessedDocument struct {
	// Document: Required. Full resource name of the referenced document, in the
	// format
	// `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`.
	Document string `json:"document,omitempty"`
	// JsonData: The JSON string representation of the processed document.
	JsonData string `json:"jsonData,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProject: Metadata and configurations for a
// Google Cloud project in the service.
type GoogleCloudDiscoveryengineV1alphaProject struct {
	// CreateTime: Output only. The timestamp when this project is created.
	CreateTime string `json:"createTime,omitempty"`
	// CustomerProvidedConfig: Optional. Customer provided configurations.
	CustomerProvidedConfig *GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfig `json:"customerProvidedConfig,omitempty"`
	// Name: Output only. Full resource name of the project, for example
	// `projects/{project}`. Note that when making requests, project number and
	// project id are both acceptable, but the server will always respond in
	// project number.
	Name string `json:"name,omitempty"`
	// ProvisionCompletionTime: Output only. The timestamp when this project is
	// successfully provisioned. Empty value means this project is still
	// provisioning and is not ready for use.
	ProvisionCompletionTime string `json:"provisionCompletionTime,omitempty"`
	// ServiceTermsMap: Output only. A map of terms of services. The key is the
	// `id` of ServiceTerms.
	ServiceTermsMap map[string]GoogleCloudDiscoveryengineV1alphaProjectServiceTerms `json:"serviceTermsMap,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfigNotebooklmConfi
// g: Configuration for NotebookLM.
type GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfigNotebooklmConfig struct {
	// ModelArmorConfig: Model Armor configuration to be used for sanitizing user
	// prompts and LLM responses.
	ModelArmorConfig *GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig `json:"modelArmorConfig,omitempty"`
	// OptOutNotebookSharing: Optional. Whether to disable the notebook sharing
	// feature for the project. Default to false if not specified.
	OptOutNotebookSharing bool `json:"optOutNotebookSharing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelArmorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelArmorConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfigNotebooklmConfi
// gModelArmorConfig: Configuration for customer defined Model Armor templates
// to be used for sanitizing user prompts and LLM responses.
type GoogleCloudDiscoveryengineV1alphaProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig struct {
	// ResponseTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing LLM responses. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the LLM response.
	ResponseTemplate string `json:"responseTemplate,omitempty"`
	// UserPromptTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing user prompts. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the user prompt.
	UserPromptTemplate string `json:"userPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResponseTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResponseTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProjectServiceTerms: Metadata about the
// terms of service.
type GoogleCloudDiscoveryengineV1alphaProjectServiceTerms struct {
	// AcceptTime: The last time when the project agreed to the terms of service.
	AcceptTime string `json:"acceptTime,omitempty"`
	// DeclineTime: The last time when the project declined or revoked the
	// agreement to terms of service.
	DeclineTime string `json:"declineTime,omitempty"`
	// Id: The unique identifier of this terms of service. Available terms: *
	// `GA_DATA_USE_TERMS`: Terms for data use
	// (https://cloud.google.com/retail/data-use-terms). When using this as `id`,
	// the acceptable version to provide is `2022-11-23`.
	Id string `json:"id,omitempty"`
	// State: Whether the project has accepted/rejected the service terms or it is
	// still pending.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The default value of the enum. This value is not
	// actually used.
	//   "TERMS_ACCEPTED" - The project has given consent to the terms of service.
	//   "TERMS_PENDING" - The project is pending to review and accept the terms of
	// service.
	//   "TERMS_DECLINED" - The project has declined or revoked the agreement to
	// terms of service.
	State string `json:"state,omitempty"`
	// Version: The version string of the terms of service. For acceptable values,
	// see the comments for id above.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProvisionProjectMetadata: Metadata
// associated with a project provision operation.
type GoogleCloudDiscoveryengineV1alphaProvisionProjectMetadata struct {
}

// GoogleCloudDiscoveryengineV1alphaProvisionProjectRequest: Request for
// ProjectService.ProvisionProject method.
type GoogleCloudDiscoveryengineV1alphaProvisionProjectRequest struct {
	// AcceptDataUseTerms: Required. Set to `true` to specify that caller has read
	// and would like to give consent to the Terms for data use
	// (https://cloud.google.com/retail/data-use-terms).
	AcceptDataUseTerms bool `json:"acceptDataUseTerms,omitempty"`
	// DataUseTermsVersion: Required. The version of the Terms for data use
	// (https://cloud.google.com/retail/data-use-terms) that caller has read and
	// would like to give consent to. Acceptable version is `2022-11-23`, and this
	// may change over time.
	DataUseTermsVersion string `json:"dataUseTermsVersion,omitempty"`
	// SaasParams: Optional. Parameters for Agentspace.
	SaasParams *GoogleCloudDiscoveryengineV1alphaProvisionProjectRequestSaasParams `json:"saasParams,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptDataUseTerms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptDataUseTerms") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaProvisionProjectRequestSaasParams:
// Parameters for Agentspace.
type GoogleCloudDiscoveryengineV1alphaProvisionProjectRequestSaasParams struct {
	// AcceptBizQos: Optional. Set to `true` to specify that caller has read and
	// would like to give consent to the [Terms for Agent Space quality of
	// service].
	AcceptBizQos bool `json:"acceptBizQos,omitempty"`
	// IsBiz: Optional. Indicates if the current request is for Biz edition (=
	// true) or not (= false).
	IsBiz bool `json:"isBiz,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptBizQos") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptBizQos") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsMetadata:
// Metadata related to the progress of the PurgeCompletionSuggestions
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest: Request
// message for CompletionService.PurgeCompletionSuggestions method.
type GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsResponse:
// Response message for CompletionService.PurgeCompletionSuggestions method.
type GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// PurgeSucceeded: Whether the completion suggestions were successfully purged.
	PurgeSucceeded bool `json:"purgeSucceeded,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeDocumentsMetadata: Metadata related to
// the progress of the PurgeDocuments operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaPurgeDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// IgnoredCount: Count of entries that were ignored as entries were not found.
	IgnoredCount int64 `json:"ignoredCount,omitempty,string"`
	// SuccessCount: Count of entries that were deleted successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest: Request message for
// DocumentService.PurgeDocuments method.
type GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest struct {
	// ErrorConfig: The desired location of errors incurred during the purge.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaPurgeErrorConfig `json:"errorConfig,omitempty"`
	// Filter: Required. Filter matching documents to purge. Only currently
	// supported value is `*` (all items).
	Filter string `json:"filter,omitempty"`
	// Force: Actually performs the purge. If `force` is set to false, return the
	// expected purge count without deleting any documents.
	Force bool `json:"force,omitempty"`
	// GcsSource: Cloud Storage location for the input content. Supported
	// `data_schema`: * `document_id`: One valid Document.id per line.
	GcsSource *GoogleCloudDiscoveryengineV1alphaGcsSource `json:"gcsSource,omitempty"`
	// InlineSource: Inline source for the input content for purge.
	InlineSource *GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequestInlineSource: The
// inline source for the input config for DocumentService.PurgeDocuments
// method.
type GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequestInlineSource struct {
	// Documents: Required. A list of full resource name of documents to purge. In
	// the format
	// `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`.
	// Recommended max of 100 items.
	Documents []string `json:"documents,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Documents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Documents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeDocumentsResponse: Response message
// for DocumentService.PurgeDocuments method. If the long running operation is
// successfully done, then this message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1alphaPurgeDocumentsResponse struct {
	// PurgeCount: The total count of documents purged as a result of the
	// operation.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// PurgeSample: A sample of document names that will be deleted. Only populated
	// if `force` is set to false. A max of 100 names will be returned and the
	// names are chosen at random.
	PurgeSample []string `json:"purgeSample,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PurgeCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PurgeCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeErrorConfig: Configuration of
// destination for Purge related errors.
type GoogleCloudDiscoveryengineV1alphaPurgeErrorConfig struct {
	// GcsPrefix: Cloud Storage prefix for purge errors. This must be an empty,
	// existing Cloud Storage directory. Purge errors are written to sharded files
	// in this directory, one per line, as a JSON-encoded `google.rpc.Status`
	// message.
	GcsPrefix string `json:"gcsPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsPrefix") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsPrefix") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequest: Request
// message for IdentityMappingStoreService.PurgeIdentityMappings
type GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequest struct {
	// Filter: Filter matching identity mappings to purge. The eligible field for
	// filtering is: * `update_time`: in ISO 8601 "zulu" format. * `external_id`
	// Examples: * Deleting all identity mappings updated in a time range:
	// `update_time > "2012-04-23T18:25:43.511Z" AND update_time <
	// "2012-04-23T18:30:43.511Z" * Deleting all identity mappings for a given
	// external_id: `external_id = "id1" * Deleting all identity mappings inside
	// an identity mapping store: `*` The filtering fields are assumed to have an
	// implicit AND. Should not be used with source. An error will be thrown, if
	// both are provided.
	Filter string `json:"filter,omitempty"`
	// Force: Actually performs the purge. If `force` is set to false, return the
	// expected purge count without deleting any identity mappings. This field is
	// only supported for purge with filter. For input source this field is ignored
	// and data will be purged regardless of the value of this field.
	Force bool `json:"force,omitempty"`
	// InlineSource: The inline source to purge identity mapping entries from.
	InlineSource *GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequestInlineSource `json:"inlineSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequestInlineSource:
// The inline source to purge identity mapping entries from.
type GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequestInlineSource struct {
	// IdentityMappingEntries: A maximum of 10000 entries can be purged at one time
	IdentityMappingEntries []*GoogleCloudDiscoveryengineV1alphaIdentityMappingEntry `json:"identityMappingEntries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IdentityMappingEntries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdentityMappingEntries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesMetadata:
// Metadata related to the progress of the PurgeSuggestionDenyListEntries
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest:
// Request message for CompletionService.PurgeSuggestionDenyListEntries method.
type GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesResponse:
// Response message for CompletionService.PurgeSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// PurgeCount: Number of suggestion deny list entries purged.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeUserEventsMetadata: Metadata related
// to the progress of the PurgeUserEvents operation. This will be returned by
// the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaPurgeUserEventsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were deleted successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest: Request message for
// PurgeUserEvents method.
type GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest struct {
	// Filter: Required. The filter string to specify the events to be deleted with
	// a length limit of 5,000 characters. The eligible fields for filtering are: *
	// `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in
	// ISO 8601 "zulu" format. * `userPseudoId`: Double quoted string. Specifying
	// this will delete all events associated with a visitor. * `userId`: Double
	// quoted string. Specifying this will delete all events associated with a
	// user. Note: This API only supports purging a max range of 30 days. Examples:
	// * Deleting all events in a time range: `eventTime >
	// "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" *
	// Deleting specific eventType in a time range: `eventTime >
	// "2012-04-23T18:25:43.511Z" eventTime < "2012-04-23T18:30:43.511Z" eventType
	// = "search" * Deleting all events for a specific visitor in a time range:
	// `eventTime > "2012-04-23T18:25:43.511Z" eventTime <
	// "2012-04-23T18:30:43.511Z" userPseudoId = "visitor1024" * Deleting the past
	// 30 days of events inside a DataStore: `*` The filtering fields are assumed
	// to have an implicit AND.
	Filter string `json:"filter,omitempty"`
	// Force: The `force` field is currently not supported. Purge user event
	// requests will permanently delete all purgeable events. Once the development
	// is complete: If `force` is set to false, the method will return the expected
	// purge count without deleting any user events. This field will default to
	// false if not included in the request.
	Force bool `json:"force,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaPurgeUserEventsResponse: Response of the
// PurgeUserEventsRequest. If the long running operation is successfully done,
// then this message is returned by the google.longrunning.Operations.response
// field.
type GoogleCloudDiscoveryengineV1alphaPurgeUserEventsResponse struct {
	// PurgeCount: The total count of events purged as a result of the operation.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "PurgeCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PurgeCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaQualityMetrics: Describes the metrics
// produced by the evaluation.
type GoogleCloudDiscoveryengineV1alphaQualityMetrics struct {
	// DocNdcg: Normalized discounted cumulative gain (NDCG) per document, at
	// various top-k cutoff levels. NDCG measures the ranking quality, giving
	// higher relevance to top results. Example (top-3): Suppose SampleQuery with
	// three retrieved documents (D1, D2, D3) and binary relevance judgements (1
	// for relevant, 0 for not relevant): Retrieved: [D3 (0), D1 (1), D2 (1)]
	// Ideal: [D1 (1), D2 (1), D3 (0)] Calculate NDCG@3 for each SampleQuery: *
	// DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 * Ideal DCG@3:
	// 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 * NDCG@3: 1.13/1.63 = 0.693
	DocNdcg *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics `json:"docNdcg,omitempty"`
	// DocPrecision: Precision per document, at various top-k cutoff levels.
	// Precision is the fraction of retrieved documents that are relevant. Example
	// (top-5): * For a single SampleQuery, If 4 out of 5 retrieved documents in
	// the top-5 are relevant, precision@5 = 4/5 = 0.8
	DocPrecision *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics `json:"docPrecision,omitempty"`
	// DocRecall: Recall per document, at various top-k cutoff levels. Recall is
	// the fraction of relevant documents retrieved out of all relevant documents.
	// Example (top-5): * For a single SampleQuery, If 3 out of 5 relevant
	// documents are retrieved in the top-5, recall@5 = 3/5 = 0.6
	DocRecall *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics `json:"docRecall,omitempty"`
	// PageNdcg: Normalized discounted cumulative gain (NDCG) per page, at various
	// top-k cutoff levels. NDCG measures the ranking quality, giving higher
	// relevance to top results. Example (top-3): Suppose SampleQuery with three
	// retrieved pages (P1, P2, P3) and binary relevance judgements (1 for
	// relevant, 0 for not relevant): Retrieved: [P3 (0), P1 (1), P2 (1)] Ideal:
	// [P1 (1), P2 (1), P3 (0)] Calculate NDCG@3 for SampleQuery: * DCG@3:
	// 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 * Ideal DCG@3: 1/log2(1+1) +
	// 1/log2(2+1) + 0/log2(3+1) = 1.63 * NDCG@3: 1.13/1.63 = 0.693
	PageNdcg *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics `json:"pageNdcg,omitempty"`
	// PageRecall: Recall per page, at various top-k cutoff levels. Recall is the
	// fraction of relevant pages retrieved out of all relevant pages. Example
	// (top-5): * For a single SampleQuery, if 3 out of 5 relevant pages are
	// retrieved in the top-5, recall@5 = 3/5 = 0.6
	PageRecall *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics `json:"pageRecall,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocNdcg") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocNdcg") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics: Stores the
// metric values at specific top-k levels.
type GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics struct {
	// Top1: The top-1 value.
	Top1 float64 `json:"top1,omitempty"`
	// Top10: The top-10 value.
	Top10 float64 `json:"top10,omitempty"`
	// Top3: The top-3 value.
	Top3 float64 `json:"top3,omitempty"`
	// Top5: The top-5 value.
	Top5 float64 `json:"top5,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Top1") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Top1") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaQualityMetricsTopkMetrics
	var s1 struct {
		Top1  gensupport.JSONFloat64 `json:"top1"`
		Top10 gensupport.JSONFloat64 `json:"top10"`
		Top3  gensupport.JSONFloat64 `json:"top3"`
		Top5  gensupport.JSONFloat64 `json:"top5"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Top1 = float64(s1.Top1)
	s.Top10 = float64(s1.Top10)
	s.Top3 = float64(s1.Top3)
	s.Top5 = float64(s1.Top5)
	return nil
}

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

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

// GoogleCloudDiscoveryengineV1alphaRankRequest: Request message for
// RankService.Rank method.
type GoogleCloudDiscoveryengineV1alphaRankRequest struct {
	// IgnoreRecordDetailsInResponse: If true, the response will contain only
	// record ID and score. By default, it is false, the response will contain
	// record details.
	IgnoreRecordDetailsInResponse bool `json:"ignoreRecordDetailsInResponse,omitempty"`
	// Model: The identifier of the model to use. It is one of: *
	// `semantic-ranker-512@latest`: Semantic ranking model with maximum input
	// token size 512. It is set to `semantic-ranker-512@latest` by default if
	// unspecified.
	Model string `json:"model,omitempty"`
	// Query: The query to use.
	Query string `json:"query,omitempty"`
	// Records: Required. A list of records to rank.
	Records []*GoogleCloudDiscoveryengineV1alphaRankingRecord `json:"records,omitempty"`
	// TopN: The number of results to return. If this is unset or no bigger than
	// zero, returns all results.
	TopN int64 `json:"topN,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "IgnoreRecordDetailsInResponse") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreRecordDetailsInResponse")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRankResponse: Response message for
// RankService.Rank method.
type GoogleCloudDiscoveryengineV1alphaRankResponse struct {
	// Records: A list of records sorted by descending score.
	Records []*GoogleCloudDiscoveryengineV1alphaRankingRecord `json:"records,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Records") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Records") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRankingRecord: Record message for
// RankService.Rank method.
type GoogleCloudDiscoveryengineV1alphaRankingRecord struct {
	// Content: The content of the record. Empty by default. At least one of title
	// or content should be set otherwise an INVALID_ARGUMENT error is thrown.
	Content string `json:"content,omitempty"`
	// Id: The unique ID to represent the record.
	Id string `json:"id,omitempty"`
	// Score: The score of this record based on the given query and selected model.
	// The score will be rounded to 2 decimal places. If the score is close to 0,
	// it will be rounded to 0.0001 to avoid returning unset.
	Score float64 `json:"score,omitempty"`
	// Title: The title of the record. Empty by default. At least one of title or
	// content should be set otherwise an INVALID_ARGUMENT error is thrown.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaRecommendRequest: Request message for
// Recommend method.
type GoogleCloudDiscoveryengineV1alphaRecommendRequest struct {
	// Filter: Filter for restricting recommendation results with a length limit of
	// 5,000 characters. Currently, only filter expressions on the `filter_tags`
	// attribute is supported. Examples: * `(filter_tags: ANY("Red", "Blue") OR
	// filter_tags: ANY("Hot", "Cold"))` * `(filter_tags: ANY("Red", "Blue")) AND
	// NOT (filter_tags: ANY("Green"))` If `attributeFilteringSyntax` is set to
	// true under the `params` field, then attribute-based expressions are expected
	// instead of the above described tag-based syntax. Examples: * (language:
	// ANY("en", "es")) AND NOT (categories: ANY("Movie")) * (available: true) AND
	// (language: ANY("en", "es")) OR (categories: ANY("Movie")) If your filter
	// blocks all results, the API returns generic (unfiltered) popular Documents.
	// If you only want results strictly matching the filters, set
	// `strictFiltering` to `true` in RecommendRequest.params to receive empty
	// results instead. Note that the API never returns Documents with
	// `storageStatus` as `EXPIRED` or `DELETED` regardless of filter choices.
	Filter string `json:"filter,omitempty"`
	// PageSize: Maximum number of results to return. Set this property to the
	// number of recommendation results needed. If zero, the service chooses a
	// reasonable default. The maximum allowed value is 100. Values above 100 are
	// set to 100.
	PageSize int64 `json:"pageSize,omitempty"`
	// Params: Additional domain specific parameters for the recommendations.
	// Allowed values: * `returnDocument`: Boolean. If set to `true`, the
	// associated Document object is returned in
	// RecommendResponse.RecommendationResult.document. * `returnScore`: Boolean.
	// If set to true, the recommendation score corresponding to each returned
	// Document is set in RecommendResponse.RecommendationResult.metadata. The
	// given score indicates the probability of a Document conversion given the
	// user's context and history. * `strictFiltering`: Boolean. True by default.
	// If set to `false`, the service returns generic (unfiltered) popular
	// Documents instead of empty if your filter blocks all recommendation results.
	// * `diversityLevel`: String. Default empty. If set to be non-empty, then it
	// needs to be one of: * `no-diversity` * `low-diversity` * `medium-diversity`
	// * `high-diversity` * `auto-diversity` This gives request-level control and
	// adjusts recommendation results based on Document category. *
	// `attributeFilteringSyntax`: Boolean. False by default. If set to true, the
	// `filter` field is interpreted according to the new, attribute-based syntax.
	Params googleapi.RawMessage `json:"params,omitempty"`
	// UserEvent: Required. Context about the user, what they are looking at and
	// what action they took to trigger the Recommend request. Note that this user
	// event detail won't be ingested to userEvent logs. Thus, a separate userEvent
	// write request is required for event logging. Don't set
	// UserEvent.user_pseudo_id or UserEvent.user_info.user_id to the same fixed ID
	// for different users. If you are trying to receive non-personalized
	// recommendations (not recommended; this can negatively impact model
	// performance), instead set UserEvent.user_pseudo_id to a random unique ID and
	// leave UserEvent.user_info.user_id unset.
	UserEvent *GoogleCloudDiscoveryengineV1alphaUserEvent `json:"userEvent,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Requirements for labels
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// ValidateOnly: Use validate only mode for this recommendation query. If set
	// to `true`, a fake model is used that returns arbitrary Document IDs. Note
	// that the validate only mode should only be used for testing the API, or if
	// the model is not ready.
	ValidateOnly bool `json:"validateOnly,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Filter") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Filter") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecommendResponse: Response message for
// Recommend method.
type GoogleCloudDiscoveryengineV1alphaRecommendResponse struct {
	// AttributionToken: A unique attribution token. This should be included in the
	// UserEvent logs resulting from this recommendation, which enables accurate
	// attribution of recommendation model performance.
	AttributionToken string `json:"attributionToken,omitempty"`
	// MissingIds: IDs of documents in the request that were missing from the
	// default Branch associated with the requested ServingConfig.
	MissingIds []string `json:"missingIds,omitempty"`
	// Results: A list of recommended Documents. The order represents the ranking
	// (from the most relevant Document to the least).
	Results []*GoogleCloudDiscoveryengineV1alphaRecommendResponseRecommendationResult `json:"results,omitempty"`
	// ValidateOnly: True if RecommendRequest.validate_only was set.
	ValidateOnly bool `json:"validateOnly,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AttributionToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributionToken") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecommendResponseRecommendationResult:
// RecommendationResult represents a generic recommendation result with
// associated metadata.
type GoogleCloudDiscoveryengineV1alphaRecommendResponseRecommendationResult struct {
	// Document: Set if `returnDocument` is set to true in RecommendRequest.params.
	Document *GoogleCloudDiscoveryengineV1alphaDocument `json:"document,omitempty"`
	// Id: Resource ID of the recommended Document.
	Id string `json:"id,omitempty"`
	// Metadata: Additional Document metadata or annotations. Possible values: *
	// `score`: Recommendation score in double value. Is set if `returnScore` is
	// set to true in RecommendRequest.params.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Document") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Document") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecrawlUrisMetadata: Metadata related to
// the progress of the SiteSearchEngineService.RecrawlUris operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaRecrawlUrisMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// InvalidUris: Unique URIs in the request that have invalid format. Sample
	// limited to 1000.
	InvalidUris []string `json:"invalidUris,omitempty"`
	// InvalidUrisCount: Total number of unique URIs in the request that have
	// invalid format.
	InvalidUrisCount int64 `json:"invalidUrisCount,omitempty"`
	// NoindexUris: URIs that have no index meta tag. Sample limited to 1000.
	NoindexUris []string `json:"noindexUris,omitempty"`
	// NoindexUrisCount: Total number of URIs that have no index meta tag.
	NoindexUrisCount int64 `json:"noindexUrisCount,omitempty"`
	// PendingCount: Total number of URIs that have yet to be crawled.
	PendingCount int64 `json:"pendingCount,omitempty"`
	// QuotaExceededCount: Total number of URIs that were rejected due to
	// insufficient indexing resources.
	QuotaExceededCount int64 `json:"quotaExceededCount,omitempty"`
	// SuccessCount: Total number of URIs that have been crawled so far.
	SuccessCount int64 `json:"successCount,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// UrisNotMatchingTargetSites: Unique URIs in the request that don't match any
	// TargetSite in the DataStore, only match TargetSites that haven't been fully
	// indexed, or match a TargetSite with type EXCLUDE. Sample limited to 1000.
	UrisNotMatchingTargetSites []string `json:"urisNotMatchingTargetSites,omitempty"`
	// UrisNotMatchingTargetSitesCount: Total number of URIs that don't match any
	// TargetSites.
	UrisNotMatchingTargetSitesCount int64 `json:"urisNotMatchingTargetSitesCount,omitempty"`
	// ValidUrisCount: Total number of unique URIs in the request that are not in
	// invalid_uris.
	ValidUrisCount int64 `json:"validUrisCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest: Request message for
// SiteSearchEngineService.RecrawlUris method.
type GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest struct {
	// SiteCredential: Optional. Credential id to use for crawling.
	SiteCredential string `json:"siteCredential,omitempty"`
	// Uris: Required. List of URIs to crawl. At most 10K URIs are supported,
	// otherwise an INVALID_ARGUMENT error is thrown. Each URI should match at
	// least one TargetSite in `site_search_engine`.
	Uris []string `json:"uris,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SiteCredential") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SiteCredential") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponse: Response message for
// SiteSearchEngineService.RecrawlUris method.
type GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponse struct {
	// FailedUris: URIs that were not crawled before the LRO terminated.
	FailedUris []string `json:"failedUris,omitempty"`
	// FailureSamples: Details for a sample of up to 10 `failed_uris`.
	FailureSamples []*GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfo `json:"failureSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailedUris") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailedUris") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfo: Details
// about why a particular URI failed to be crawled. Each FailureInfo contains
// one FailureReason per CorpusType.
type GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfo struct {
	// FailureReasons: List of failure reasons by corpus type (e.g. desktop,
	// mobile).
	FailureReasons []*GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfoFailureReason `json:"failureReasons,omitempty"`
	// Uri: URI that failed to be crawled.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailureReasons") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureReasons") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfoFailureReason:
//
//	Details about why crawling failed for a particular CorpusType, e.g.,
//
// DESKTOP and MOBILE crawling may fail for different reasons.
type GoogleCloudDiscoveryengineV1alphaRecrawlUrisResponseFailureInfoFailureReason struct {
	// CorpusType: DESKTOP, MOBILE, or CORPUS_TYPE_UNSPECIFIED.
	//
	// Possible values:
	//   "CORPUS_TYPE_UNSPECIFIED" - Default value.
	//   "DESKTOP" - Denotes a crawling attempt for the desktop version of a page.
	//   "MOBILE" - Denotes a crawling attempt for the mobile version of a page.
	CorpusType string `json:"corpusType,omitempty"`
	// ErrorMessage: Reason why the URI was not crawled.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CorpusType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CorpusType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo: Describes a refresh
// token.
type GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo struct {
	// Name: Required. The connection for which this token applies.
	Name string `json:"name,omitempty"`
	// Scopes: The list of scopes for this token.
	Scopes []string `json:"scopes,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 GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRefreshTokenInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateMetadata: Metadata
// related to the progress of the
// CrawlRateManagementService.RemoveDedicatedCrawlRate operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateRequest: Request
// message for CrawlRateManagementService.RemoveDedicatedCrawlRate method. The
// user can remove the dedicated crawl rate for a crawl_rate_scope they own,
// and Google will fall back to organic crawl, and the crawl rate will be
// determined by Google.
type GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateRequest struct {
	// CrawlRateScope: Required. The scope of the crawl rate change. Currently,
	// only domain and host name are supported. A domain name example:
	// `example.com`. A host name example: `www.example.com`. Please do not include
	// `/` in the domain or host name.
	CrawlRateScope string `json:"crawlRateScope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CrawlRateScope") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CrawlRateScope") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateResponse: Response
// message for CrawlRateManagementService.RemoveDedicatedCrawlRate method. It
// simply returns the state of the response, and an error message if the state
// is FAILED.
type GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateResponse struct {
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,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 GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaRemoveSuggestionRequest: Request message
// for CompletionService.RemoveSuggestion method.
type GoogleCloudDiscoveryengineV1alphaRemoveSuggestionRequest struct {
	// RemoveAllSearchHistorySuggestions: Remove all search history suggestions for
	// the user.
	RemoveAllSearchHistorySuggestions bool `json:"removeAllSearchHistorySuggestions,omitempty"`
	// RemoveTime: Required. Time at which the suggestion was removed. If not set,
	// the current time will be used.
	RemoveTime string `json:"removeTime,omitempty"`
	// SearchHistorySuggestion: The search history suggestion to be removed.
	SearchHistorySuggestion string `json:"searchHistorySuggestion,omitempty"`
	// UserInfo: Optional. Information about the end user. This should be the same
	// identifier information as UserEvent.user_info and SearchRequest.user_info.
	UserInfo *GoogleCloudDiscoveryengineV1alphaUserInfo `json:"userInfo,omitempty"`
	// UserPseudoId: Required. A unique identifier for tracking visitors. For
	// example, this could be implemented with an HTTP cookie, which should be able
	// to uniquely identify a visitor on a single device. This unique identifier
	// should not change if the visitor logs in or out of the website. This field
	// should NOT have a fixed value such as `unknown_visitor`. This should be the
	// same identifier as UserEvent.user_pseudo_id and
	// SearchRequest.user_pseudo_id. The field must be a UTF-8 encoded string with
	// a length limit of 128.
	UserPseudoId string `json:"userPseudoId,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "RemoveAllSearchHistorySuggestions") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "RemoveAllSearchHistorySuggestions") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRemoveSuggestionResponse: Response message
// for CompletionService.RemoveSuggestion method.
type GoogleCloudDiscoveryengineV1alphaRemoveSuggestionResponse struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// GoogleCloudDiscoveryengineV1alphaReply: Defines a reply message to user.
type GoogleCloudDiscoveryengineV1alphaReply struct {
	// References: References in the reply.
	References []*GoogleCloudDiscoveryengineV1alphaReplyReference `json:"references,omitempty"`
	// Reply: DEPRECATED: use `summary` instead. Text reply.
	Reply string `json:"reply,omitempty"`
	// Summary: Summary based on search results.
	Summary *GoogleCloudDiscoveryengineV1alphaSearchResponseSummary `json:"summary,omitempty"`
	// ForceSendFields is a list of field names (e.g. "References") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "References") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaReplyReference: Defines reference in reply.
type GoogleCloudDiscoveryengineV1alphaReplyReference struct {
	// AnchorText: Anchor text.
	AnchorText string `json:"anchorText,omitempty"`
	// End: Anchor text end index.
	End int64 `json:"end,omitempty"`
	// Start: Anchor text start index.
	Start int64 `json:"start,omitempty"`
	// Uri: URI link reference.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AnchorText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnchorText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaReportConsentChangeRequest: Request for
// ReportConsentChange method.
type GoogleCloudDiscoveryengineV1alphaReportConsentChangeRequest struct {
	// ConsentChangeAction: Required. Whether customer decides to accept or decline
	// service term. At this moment, only accept action is supported.
	//
	// Possible values:
	//   "CONSENT_CHANGE_ACTION_UNSPECIFIED" - Invalid action, user must specify
	// accept/decline
	//   "ACCEPT" - User accepts service terms.
	ConsentChangeAction string `json:"consentChangeAction,omitempty"`
	// ServiceTermId: Required. The unique identifier of the terms of service to
	// update. Available term ids: * `GA_DATA_USE_TERMS`: Terms for data use
	// (https://cloud.google.com/retail/data-use-terms). When using this service
	// term id, the acceptable service_term_version to provide is `2022-11-23`.
	ServiceTermId string `json:"serviceTermId,omitempty"`
	// ServiceTermVersion: Required. The version string of the terms of service to
	// update.
	ServiceTermVersion string `json:"serviceTermVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConsentChangeAction") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConsentChangeAction") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRequirement: A data requirement.
type GoogleCloudDiscoveryengineV1alphaRequirement struct {
	// Condition: The condition for evaluating the requirement result. Variables in
	// the expression should be provided by `metrics_bindings` or
	// `threshold_bindings`. Where `metrics_bindings` are used for computed metrics
	// and `threshold_bindings` are used to define thresholds for corresponding
	// `metric_bindings`.
	Condition *GoogleTypeExpr `json:"condition,omitempty"`
	// Description: The description of the requirement.
	Description string `json:"description,omitempty"`
	// DisplayName: The name of the requirement.
	DisplayName string `json:"displayName,omitempty"`
	// MetricBindings: A list of the metric bindings to be used in `condition`.
	MetricBindings []*GoogleCloudDiscoveryengineV1alphaRequirementMetricBinding `json:"metricBindings,omitempty"`
	// Severity: The severity of errors if the requirement is not met. It must be
	// ordered from the most strict to the least strict. Examples: * `BLOCKING` *
	// `CRITICAL` * `WARNING` All thresholds in the requirement must have all the
	// severity here.
	Severity []string `json:"severity,omitempty"`
	// ThresholdBindings: A list of threshold bindings to be used in `condition`.
	ThresholdBindings []*GoogleCloudDiscoveryengineV1alphaRequirementThresholdBinding `json:"thresholdBindings,omitempty"`
	// Type: The requirement type, used as an identifier. Must be unique. The type
	// should prefix with service name to avoid possible collision. It's encouraged
	// to use natural hierarchical grouping for similar requirements. Examples: *
	// `library.googleapis.com/books/min_available_books` *
	// `discoveryengine.googleapis.com/media_rec/recommended_for_you/conversion_rate
	// `
	Type string `json:"type,omitempty"`
	// ViolationSamplesBindings: A list of the metric bindings to be used in
	// `condition`.
	ViolationSamplesBindings []*GoogleCloudDiscoveryengineV1alphaRequirementViolationSamplesBinding `json:"violationSamplesBindings,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 GoogleCloudDiscoveryengineV1alphaRequirement) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRequirement
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaRequirementMetricBinding: Specifies a
// metrics query and bind its result to a variable which will be used in the
// `condition`.
type GoogleCloudDiscoveryengineV1alphaRequirementMetricBinding struct {
	// Category: The category of the metric's target resource. Example: "Events"
	Category string `json:"category,omitempty"`
	// Description: Human readable description of the corresponding metric filter.
	Description string `json:"description,omitempty"`
	// MetricFilter: The filter string used for metrics query. Example:
	// "metric.type = \"discoveryengine.googleapis.com/events/day_count\" AND "
	// "metric.conditions.time_range = \"NINETY_DAYS\""
	MetricFilter string `json:"metricFilter,omitempty"`
	// ResourceType: The resource being monitored for the metric.
	ResourceType string `json:"resourceType,omitempty"`
	// VariableId: The variable id to be referenced in `condition`.
	VariableId string `json:"variableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Category") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Category") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaRequirementThresholdBinding: Specifies a
// multi-level threshold to apply to apply to a `metric_bindings` in the
// `condition` CEL expression.
type GoogleCloudDiscoveryengineV1alphaRequirementThresholdBinding struct {
	// Description: Human readable description of the corresponding threshold and
	// sub-requirement.
	Description string `json:"description,omitempty"`
	// ThresholdValues: The values of the threshold. The values should be ordered
	// from the most strict to the least strict.
	ThresholdValues []*GoogleCloudDiscoveryengineV1alphaRequirementThresholdBindingThresholdValue `json:"thresholdValues,omitempty"`
	// VariableId: The variable id to be referenced in `condition`. Must be unique
	// across all `metric_bindings` and `threshold_bindings`.
	VariableId string `json:"variableId,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 GoogleCloudDiscoveryengineV1alphaRequirementThresholdBinding) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRequirementThresholdBinding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaRequirementThresholdBindingThresholdValue:
// Specifies a threshold value for a given severity.
type GoogleCloudDiscoveryengineV1alphaRequirementThresholdBindingThresholdValue struct {
	// Severity: The severity of errors if the threshold is not met. It should be
	// one of the `severity` fields in the requirement.
	Severity string `json:"severity,omitempty"`
	// Value: The value of the threshold.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Severity") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Severity") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaRequirementThresholdBindingThresholdValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRequirementThresholdBindingThresholdValue
	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
}

// GoogleCloudDiscoveryengineV1alphaRequirementViolationSamplesBinding:
// Specifies a samples query and bind its result to a variable which will be
// used in the `condition`.
type GoogleCloudDiscoveryengineV1alphaRequirementViolationSamplesBinding struct {
	// Description: Description of this sample binding. Used by the UI to render
	// user friendly descriptions for each requirement condition. Should be less
	// than 128 characters long.
	Description string `json:"description,omitempty"`
	// SampleFilter: The filter string used for samples query. Example:
	// "sample.type = \"retail.googleapis.com/user_event\" AND "
	// "sample.labels.event_type = \"PURCHASE\" "
	SampleFilter string `json:"sampleFilter,omitempty"`
	// VariableId: The variable id to be referenced in `condition`.
	VariableId string `json:"variableId,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 GoogleCloudDiscoveryengineV1alphaRequirementViolationSamplesBinding) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaRequirementViolationSamplesBinding
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaResumeEngineRequest: Request for resuming
// training of an engine.
type GoogleCloudDiscoveryengineV1alphaResumeEngineRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaSafetyRating: Safety rating corresponding
// to the generated content.
type GoogleCloudDiscoveryengineV1alphaSafetyRating struct {
	// Blocked: Output only. Indicates whether the content was filtered out because
	// of this rating.
	Blocked bool `json:"blocked,omitempty"`
	// Category: Output only. Harm category.
	//
	// Possible values:
	//   "HARM_CATEGORY_UNSPECIFIED" - The harm category is unspecified.
	//   "HARM_CATEGORY_HATE_SPEECH" - The harm category is hate speech.
	//   "HARM_CATEGORY_DANGEROUS_CONTENT" - The harm category is dangerous
	// content.
	//   "HARM_CATEGORY_HARASSMENT" - The harm category is harassment.
	//   "HARM_CATEGORY_SEXUALLY_EXPLICIT" - The harm category is sexually explicit
	// content.
	//   "HARM_CATEGORY_CIVIC_INTEGRITY" - The harm category is civic integrity.
	Category string `json:"category,omitempty"`
	// Probability: Output only. Harm probability levels in the content.
	//
	// Possible values:
	//   "HARM_PROBABILITY_UNSPECIFIED" - Harm probability unspecified.
	//   "NEGLIGIBLE" - Negligible level of harm.
	//   "LOW" - Low level of harm.
	//   "MEDIUM" - Medium level of harm.
	//   "HIGH" - High level of harm.
	Probability string `json:"probability,omitempty"`
	// ProbabilityScore: Output only. Harm probability score.
	ProbabilityScore float64 `json:"probabilityScore,omitempty"`
	// Severity: Output only. Harm severity levels in the content.
	//
	// Possible values:
	//   "HARM_SEVERITY_UNSPECIFIED" - Harm severity unspecified.
	//   "HARM_SEVERITY_NEGLIGIBLE" - Negligible level of harm severity.
	//   "HARM_SEVERITY_LOW" - Low level of harm severity.
	//   "HARM_SEVERITY_MEDIUM" - Medium level of harm severity.
	//   "HARM_SEVERITY_HIGH" - High level of harm severity.
	Severity string `json:"severity,omitempty"`
	// SeverityScore: Output only. Harm severity score.
	SeverityScore float64 `json:"severityScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Blocked") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Blocked") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaSampleQuery: Sample Query captures metadata
// to be used for evaluation.
type GoogleCloudDiscoveryengineV1alphaSampleQuery struct {
	// CreateTime: Output only. Timestamp the SampleQuery was created at.
	CreateTime string `json:"createTime,omitempty"`
	// Name: Identifier. The full resource name of the sample query, in the format
	// of
	// `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}/s
	// ampleQueries/{sample_query}`. This field must be a UTF-8 encoded string with
	// a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// QueryEntry: The query entry.
	QueryEntry *GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntry `json:"queryEntry,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntry: Query Entry captures
// metadata to be used for search evaluation.
type GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntry struct {
	// Query: Required. The query.
	Query string `json:"query,omitempty"`
	// Targets: List of targets for the query.
	Targets []*GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntryTarget `json:"targets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Query") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Query") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntryTarget: Defines the
// parameters of the query's expected outcome.
type GoogleCloudDiscoveryengineV1alphaSampleQueryQueryEntryTarget struct {
	// PageNumbers: Expected page numbers of the target. Each page number must be
	// non negative.
	PageNumbers []int64 `json:"pageNumbers,omitempty"`
	// Score: Relevance score of the target.
	Score float64 `json:"score,omitempty"`
	// Uri: Expected uri of the target. This field must be a UTF-8 encoded string
	// with a length limit of 2048 characters. Example of valid uris:
	// `https://example.com/abc`, `gcs://example/example.pdf`.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PageNumbers") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PageNumbers") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaSampleQuerySet: A SampleQuerySet is the
// parent resource of SampleQuery, and contains the configurations shared by
// all SampleQuery under it.
type GoogleCloudDiscoveryengineV1alphaSampleQuerySet struct {
	// CreateTime: Output only. Timestamp the SampleQuerySet was created at.
	CreateTime string `json:"createTime,omitempty"`
	// Description: The description of the SampleQuerySet.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. The sample query set display name. This field must be
	// a UTF-8 encoded string with a length limit of 128 characters.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Identifier. The full resource name of the SampleQuerySet, in the
	// format of
	// `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}`.
	//  This field must be a UTF-8 encoded string with a length limit of 1024
	// characters.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSchema: Defines the structure and layout of
// a type of document data.
type GoogleCloudDiscoveryengineV1alphaSchema struct {
	// FieldConfigs: Output only. Configurations for fields of the schema.
	FieldConfigs []*GoogleCloudDiscoveryengineV1alphaFieldConfig `json:"fieldConfigs,omitempty"`
	// JsonSchema: The JSON representation of the schema.
	JsonSchema string `json:"jsonSchema,omitempty"`
	// Name: Immutable. The full resource name of the schema, in the format of
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/schemas/{schema}`. This field must be a UTF-8 encoded string
	// with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// StructSchema: The structured representation of the schema.
	StructSchema googleapi.RawMessage `json:"structSchema,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "FieldConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldConfigs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchInfo: Detailed search information.
type GoogleCloudDiscoveryengineV1alphaSearchInfo struct {
	// Offset: An integer that specifies the current offset for pagination (the
	// 0-indexed starting location, amongst the products deemed by the API as
	// relevant). See SearchRequest.offset for definition. If this field is
	// negative, an `INVALID_ARGUMENT` is returned. This can only be set for
	// `search` events. Other event types should not set this field. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	Offset int64 `json:"offset,omitempty"`
	// OrderBy: The order in which products are returned, if applicable. See
	// SearchRequest.order_by for definition and syntax. The value must be a UTF-8
	// encoded string with a length limit of 1,000 characters. Otherwise, an
	// `INVALID_ARGUMENT` error is returned. This can only be set for `search`
	// events. Other event types should not set this field. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	OrderBy string `json:"orderBy,omitempty"`
	// SearchQuery: The user's search query. See SearchRequest.query for
	// definition. The value must be a UTF-8 encoded string with a length limit of
	// 5,000 characters. Otherwise, an `INVALID_ARGUMENT` error is returned. At
	// least one of search_query or PageInfo.page_category is required for `search`
	// events. Other event types should not set this field. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	SearchQuery string `json:"searchQuery,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Offset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Offset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion: Promotion proto
// includes uri and other helping information to display the promotion.
type GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion struct {
	// Description: Optional. The Promotion description. Maximum length: 200
	// characters.
	Description string `json:"description,omitempty"`
	// Document: Optional. The Document the user wants to promote. For site search,
	// leave unset and only populate uri. Can be set along with uri.
	Document string `json:"document,omitempty"`
	// Enabled: Optional. The enabled promotion will be returned for any serving
	// configs associated with the parent of the control this promotion is attached
	// to. This flag is used for basic site search only.
	Enabled bool `json:"enabled,omitempty"`
	// ImageUri: Optional. The promotion thumbnail image url.
	ImageUri string `json:"imageUri,omitempty"`
	// Title: Required. The title of the promotion. Maximum length: 160 characters.
	Title string `json:"title,omitempty"`
	// Uri: Optional. The URL for the page the user wants to promote. Must be set
	// for site search. For other verticals, this is optional.
	Uri string `json:"uri,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 GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchRequest: Request message for
// SearchService.Search method.
type GoogleCloudDiscoveryengineV1alphaSearchRequest struct {
	// BoostSpec: Boost specification to boost certain documents. For more
	// information on boosting, see Boosting
	// (https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results)
	BoostSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// Branch: The branch resource name, such as
	// `projects/*/locations/global/collections/default_collection/dataStores/defaul
	// t_data_store/branches/0`. Use `default_branch` as the branch ID or leave
	// this field empty, to search documents under the default branch.
	Branch string `json:"branch,omitempty"`
	// CanonicalFilter: The default filter that is applied when a user performs a
	// search without checking any filters on the search page. The filter applied
	// to every search request when quality improvement such as query expansion is
	// needed. In the case a query does not have a sufficient amount of results
	// this filter will be used to determine whether or not to enable the query
	// expansion flow. The original filter will still be used for the query
	// expanded search. This field is strongly recommended to achieve high search
	// quality. For more information about filter syntax, see SearchRequest.filter.
	CanonicalFilter string `json:"canonicalFilter,omitempty"`
	// ContentSearchSpec: A specification for configuring the behavior of content
	// search.
	ContentSearchSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpec `json:"contentSearchSpec,omitempty"`
	// CustomFineTuningSpec: Custom fine tuning configs. If set, it has higher
	// priority than the configs set in ServingConfig.custom_fine_tuning_spec.
	CustomFineTuningSpec *GoogleCloudDiscoveryengineV1alphaCustomFineTuningSpec `json:"customFineTuningSpec,omitempty"`
	// DataStoreSpecs: Specifications that define the specific DataStores to be
	// searched, along with configurations for those data stores. This is only
	// considered for Engines with multiple data stores. For engines with a single
	// data store, the specs directly under SearchRequest should be used.
	DataStoreSpecs []*GoogleCloudDiscoveryengineV1alphaSearchRequestDataStoreSpec `json:"dataStoreSpecs,omitempty"`
	// DisplaySpec: Optional. Config for display feature, like match highlighting
	// on search results.
	DisplaySpec *GoogleCloudDiscoveryengineV1alphaSearchRequestDisplaySpec `json:"displaySpec,omitempty"`
	// EmbeddingSpec: Uses the provided embedding to do additional semantic
	// document retrieval. The retrieval is based on the dot product of
	// SearchRequest.EmbeddingSpec.EmbeddingVector.vector and the document
	// embedding that is provided in
	// SearchRequest.EmbeddingSpec.EmbeddingVector.field_path. If
	// SearchRequest.EmbeddingSpec.EmbeddingVector.field_path is not provided, it
	// will use ServingConfig.EmbeddingConfig.field_path.
	EmbeddingSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpec `json:"embeddingSpec,omitempty"`
	// FacetSpecs: Facet specifications for faceted search. If empty, no facets are
	// returned. A maximum of 100 values are allowed. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	FacetSpecs []*GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpec `json:"facetSpecs,omitempty"`
	// Filter: The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. Filter expression is case-sensitive. If this field is
	// unrecognizable, an `INVALID_ARGUMENT` is returned. Filtering in Vertex AI
	// Search is done by mapping the LHS filter key to a key property defined in
	// the Vertex AI Search backend -- this mapping is defined by the customer in
	// their schema. For example a media customer might have a field 'name' in
	// their schema. In this case the filter would look like this: filter -->
	// name:'ANY("king kong")' For more information about filtering including
	// syntax and filter operators, see Filter
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// ImageQuery: Raw image query.
	ImageQuery *GoogleCloudDiscoveryengineV1alphaSearchRequestImageQuery `json:"imageQuery,omitempty"`
	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn". For
	// more information, see Standard fields
	// (https://cloud.google.com/apis/design/standard_fields). This field helps to
	// better interpret the query. If a value isn't specified, the query language
	// code is automatically detected, which may not be accurate.
	LanguageCode string `json:"languageCode,omitempty"`
	// NaturalLanguageQueryUnderstandingSpec: Optional. Config for natural language
	// query understanding capabilities, such as extracting structured field
	// filters from the query. Refer to this documentation
	// (https://cloud.google.com/generative-ai-app-builder/docs/natural-language-queries)
	// for more information. If `naturalLanguageQueryUnderstandingSpec` is not
	// specified, no additional natural language query understanding will be done.
	NaturalLanguageQueryUnderstandingSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestNaturalLanguageQueryUnderstandingSpec `json:"naturalLanguageQueryUnderstandingSpec,omitempty"`
	// Offset: A 0-indexed integer that specifies the current offset (that is,
	// starting result location, amongst the Documents deemed by the API as
	// relevant) in search results. This field is only considered if page_token is
	// unset. If this field is negative, an `INVALID_ARGUMENT` is returned. A large
	// offset may be capped to a reasonable threshold.
	Offset int64 `json:"offset,omitempty"`
	// OneBoxPageSize: The maximum number of results to return for OneBox. This
	// applies to each OneBox type individually. Default number is 10.
	OneBoxPageSize int64 `json:"oneBoxPageSize,omitempty"`
	// OrderBy: The order in which documents are returned. Documents can be ordered
	// by a field in an Document object. Leave it unset if ordered by relevance.
	// `order_by` expression is case-sensitive. For more information on ordering
	// the website search results, see Order web search results
	// (https://cloud.google.com/generative-ai-app-builder/docs/order-web-search-results).
	// For more information on ordering the healthcare search results, see Order
	// healthcare search results
	// (https://cloud.google.com/generative-ai-app-builder/docs/order-hc-results).
	// If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
	OrderBy string `json:"orderBy,omitempty"`
	// PageSize: Maximum number of Documents to return. The maximum allowed value
	// depends on the data type. Values above the maximum value are coerced to the
	// maximum value. * Websites with basic indexing: Default `10`, Maximum `25`. *
	// Websites with advanced indexing: Default `25`, Maximum `50`. * Other:
	// Default `50`, Maximum `100`. If this field is negative, an
	// `INVALID_ARGUMENT` is returned.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: A page token received from a previous SearchService.Search call.
	// Provide this to retrieve the subsequent page. When paginating, all other
	// parameters provided to SearchService.Search must match the call that
	// provided the page token. Otherwise, an `INVALID_ARGUMENT` error is returned.
	PageToken string `json:"pageToken,omitempty"`
	// Params: Additional search parameters. For public website search only,
	// supported values are: * `user_country_code`: string. Default empty. If set
	// to non-empty, results are restricted or boosted based on the location
	// provided. For example, `user_country_code: "au" For available codes see
	// Country Codes
	// (https://developers.google.com/custom-search/docs/json_api_reference#countryCodes)
	// * `search_type`: double. Default empty. Enables non-webpage searching
	// depending on the value. The only valid non-default value is 1, which enables
	// image searching. For example, `search_type: 1`
	Params googleapi.RawMessage `json:"params,omitempty"`
	// PersonalizationSpec: The specification for personalization. Notice that if
	// both ServingConfig.personalization_spec and
	// SearchRequest.personalization_spec are set,
	// SearchRequest.personalization_spec overrides
	// ServingConfig.personalization_spec.
	PersonalizationSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestPersonalizationSpec `json:"personalizationSpec,omitempty"`
	// Query: Raw search query.
	Query string `json:"query,omitempty"`
	// QueryExpansionSpec: The query expansion specification that specifies the
	// conditions under which query expansion occurs.
	QueryExpansionSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestQueryExpansionSpec `json:"queryExpansionSpec,omitempty"`
	// RankingExpression: Optional. The ranking expression controls the customized
	// ranking on retrieval documents. This overrides
	// ServingConfig.ranking_expression. The syntax and supported features depend
	// on the `ranking_expression_backend` value. If `ranking_expression_backend`
	// is not provided, it defaults to `RANK_BY_EMBEDDING`. If
	// ranking_expression_backend is not provided or set to `RANK_BY_EMBEDDING`, it
	// should be a single function or multiple functions that are joined by "+". *
	// ranking_expression = function, { " + ", function }; Supported functions: *
	// double * relevance_score * double * dotProduct(embedding_field_path)
	// Function variables: * `relevance_score`: pre-defined keywords, used for
	// measure relevance between query and document. * `embedding_field_path`: the
	// document embedding field used with query embedding vector. * `dotProduct`:
	// embedding function between `embedding_field_path` and query embedding
	// vector. Example ranking expression: If document has an embedding field
	// doc_embedding, the ranking expression could be `0.5 * relevance_score + 0.3
	// * dotProduct(doc_embedding)`. If ranking_expression_backend is set to
	// `RANK_BY_FORMULA`, the following expression types (and combinations of those
	// chained using + or * operators) are supported: * `double` * `signal` *
	// `log(signal)` * `exp(signal)` * `rr(signal, double > 0)` -- reciprocal rank
	// transformation with second argument being a denominator constant. *
	// `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. *
	// `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns signal2
	// | double, else returns signal1. Here are a few examples of ranking formulas
	// that use the supported ranking expression types: - `0.2 *
	// semantic_similarity_score + 0.8 * log(keyword_similarity_score)` -- mostly
	// rank by the logarithm of `keyword_similarity_score` with slight
	// `semantic_smilarity_score` adjustment. - `0.2 *
	// exp(fill_nan(semantic_similarity_score, 0)) + 0.3 *
	// is_nan(keyword_similarity_score)` -- rank by the exponent of
	// `semantic_similarity_score` filling the value with 0 if it's NaN, also add
	// constant 0.3 adjustment to the final score if `semantic_similarity_score` is
	// NaN. - `0.2 * rr(semantic_similarity_score, 16) + 0.8 *
	// rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank of
	// `keyword_similarity_score` with slight adjustment of reciprocal rank of
	// `semantic_smilarity_score`. The following signals are supported: *
	// `semantic_similarity_score`: semantic similarity adjustment that is
	// calculated using the embeddings generated by a proprietary Google model.
	// This score determines how semantically similar a search query is to a
	// document. * `keyword_similarity_score`: keyword match adjustment uses the
	// Best Match 25 (BM25) ranking function. This score is calculated using a
	// probabilistic model to estimate the probability that a document is relevant
	// to a given query. * `relevance_score`: semantic relevance adjustment that
	// uses a proprietary Google model to determine the meaning and intent behind a
	// user's query in context with the content in the documents. * `pctr_rank`:
	// predicted conversion rate adjustment as a rank use predicted Click-through
	// rate (pCTR) to gauge the relevance and attractiveness of a search result
	// from a user's perspective. A higher pCTR suggests that the result is more
	// likely to satisfy the user's query and intent, making it a valuable signal
	// for ranking. * `freshness_rank`: freshness adjustment as a rank *
	// `document_age`: The time in hours elapsed since the document was last
	// updated, a floating-point number (e.g., 0.25 means 15 minutes). *
	// `topicality_rank`: topicality adjustment as a rank. Uses proprietary Google
	// model to determine the keyword-based overlap between the query and the
	// document. * `base_rank`: the default rank of the result
	RankingExpression string `json:"rankingExpression,omitempty"`
	// RankingExpressionBackend: Optional. The backend to use for the ranking
	// expression evaluation.
	//
	// Possible values:
	//   "RANKING_EXPRESSION_BACKEND_UNSPECIFIED" - Default option for
	// unspecified/unknown values.
	//   "BYOE" - Deprecated: Use `RANK_BY_EMBEDDING` instead. Ranking by custom
	// embedding model, the default way to evaluate the ranking expression. Legacy
	// enum option, `RANK_BY_EMBEDDING` should be used instead.
	//   "CLEARBOX" - Deprecated: Use `RANK_BY_FORMULA` instead. Ranking by custom
	// formula. Legacy enum option, `RANK_BY_FORMULA` should be used instead.
	//   "RANK_BY_EMBEDDING" - Ranking by custom embedding model, the default way
	// to evaluate the ranking expression.
	//   "RANK_BY_FORMULA" - Ranking by custom formula.
	RankingExpressionBackend string `json:"rankingExpressionBackend,omitempty"`
	// RegionCode: The Unicode country/region code (CLDR) of a location, such as
	// "US" and "419". For more information, see Standard fields
	// (https://cloud.google.com/apis/design/standard_fields). If set, then results
	// will be boosted based on the region_code provided.
	RegionCode string `json:"regionCode,omitempty"`
	// RelevanceScoreSpec: Optional. The specification for returning the relevance
	// score.
	RelevanceScoreSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestRelevanceScoreSpec `json:"relevanceScoreSpec,omitempty"`
	// RelevanceThreshold: The relevance threshold of the search results. Default
	// to Google defined threshold, leveraging a balance of precision and recall to
	// deliver both highly accurate results and comprehensive coverage of relevant
	// information. This feature is not supported for healthcare search.
	//
	// Possible values:
	//   "RELEVANCE_THRESHOLD_UNSPECIFIED" - Default value. In this case, server
	// behavior defaults to Google defined threshold.
	//   "LOWEST" - Lowest relevance threshold.
	//   "LOW" - Low relevance threshold.
	//   "MEDIUM" - Medium relevance threshold.
	//   "HIGH" - High relevance threshold.
	RelevanceThreshold string `json:"relevanceThreshold,omitempty"`
	// SafeSearch: Whether to turn on safe search. This is only supported for
	// website search.
	SafeSearch bool `json:"safeSearch,omitempty"`
	// SearchAddonSpec: Optional. SearchAddonSpec is used to disable add-ons for
	// search as per new repricing model. This field is only supported for search
	// requests.
	SearchAddonSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAddonSpec `json:"searchAddonSpec,omitempty"`
	// SearchAsYouTypeSpec: Search as you type configuration. Only supported for
	// the IndustryVertical.MEDIA vertical.
	SearchAsYouTypeSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAsYouTypeSpec `json:"searchAsYouTypeSpec,omitempty"`
	// ServingConfig: Required. The resource name of the Search serving config,
	// such as
	// `projects/*/locations/global/collections/default_collection/engines/*/serving
	// Configs/default_serving_config`, or
	// `projects/*/locations/global/collections/default_collection/dataStores/defaul
	// t_data_store/servingConfigs/default_serving_config`. This field is used to
	// identify the serving configuration name, set of models used to make the
	// search.
	ServingConfig string `json:"servingConfig,omitempty"`
	// Session: The session resource name. Optional. Session allows users to do
	// multi-turn /search API calls or coordination between /search API calls and
	// /answer API calls. Example #1 (multi-turn /search API calls): Call /search
	// API with the session ID generated in the first call. Here, the previous
	// search query gets considered in query standing. I.e., if the first query is
	// "How did Alphabet do in 2022?" and the current query is "How about 2023?",
	// the current query will be interpreted as "How did Alphabet do in 2023?".
	// Example #2 (coordination between /search API calls and /answer API calls):
	// Call /answer API with the session ID generated in the first call. Here, the
	// answer generation happens in the context of the search results from the
	// first search call. Multi-turn Search feature is currently at private GA
	// stage. Please use v1alpha or v1beta version instead before we launch this
	// feature to public GA. Or ask for allowlisting through Google Support team.
	Session string `json:"session,omitempty"`
	// SessionSpec: Session specification. Can be used only when `session` is set.
	SessionSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestSessionSpec `json:"sessionSpec,omitempty"`
	// SpellCorrectionSpec: The spell correction specification that specifies the
	// mode under which spell correction takes effect.
	SpellCorrectionSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestSpellCorrectionSpec `json:"spellCorrectionSpec,omitempty"`
	// UseLatestData: Uses the Engine, ServingConfig and Control freshly read from
	// the database. Note: this skips config cache and introduces dependency on
	// databases, which could significantly increase the API latency. It should
	// only be used for testing, but not serving end users.
	UseLatestData bool `json:"useLatestData,omitempty"`
	// UserInfo: Information about the end user. Highly recommended for analytics
	// and personalization. UserInfo.user_agent is used to deduce `device_type` for
	// analytics.
	UserInfo *GoogleCloudDiscoveryengineV1alphaUserInfo `json:"userInfo,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// UserPseudoId: A unique identifier for tracking visitors. For example, this
	// could be implemented with an HTTP cookie, which should be able to uniquely
	// identify a visitor on a single device. This unique identifier should not
	// change if the visitor logs in or out of the website. This field should NOT
	// have a fixed value such as `unknown_visitor`. This should be the same
	// identifier as UserEvent.user_pseudo_id and
	// CompleteQueryRequest.user_pseudo_id The field must be a UTF-8 encoded string
	// with a length limit of 128 characters. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	UserPseudoId string `json:"userPseudoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec: Boost specification
// to boost certain documents.
type GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec struct {
	// ConditionBoostSpecs: Condition boost specifications. If a document matches
	// multiple conditions in the specifications, boost scores from these
	// specifications are all applied and combined in a non-linear way. Maximum
	// number of specifications is 20.
	ConditionBoostSpecs []*GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpec `json:"conditionBoostSpecs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConditionBoostSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConditionBoostSpecs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpec:
// Boost applies to documents which match a condition.
type GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpec struct {
	// Boost: Strength of the condition boost, which should be in [-1, 1]. Negative
	// boost means demotion. Default is 0.0. Setting to 1.0 gives the document a
	// big promotion. However, it does not necessarily mean that the boosted
	// document will be the top result at all times, nor that other documents will
	// be excluded. Results could still be shown even when none of them matches the
	// condition. And results that are significantly more relevant to the search
	// query can still trump your heavily favored but irrelevant documents. Setting
	// to -1.0 gives the document a big demotion. However, results that are deeply
	// relevant might still be shown. The document will have an upstream battle to
	// get a fairly high ranking, but it is not blocked out completely. Setting to
	// 0.0 means no boost applied. The boosting condition is ignored. Only one of
	// the (condition, boost) combination or the boost_control_spec below are set.
	// If both are set then the global boost is ignored and the more fine-grained
	// boost_control_spec is applied.
	Boost float64 `json:"boost,omitempty"`
	// BoostControlSpec: Complex specification for custom ranking based on customer
	// defined attribute value.
	BoostControlSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoostControlSpec `json:"boostControlSpec,omitempty"`
	// Condition: An expression which specifies a boost condition. The syntax and
	// supported fields are the same as a filter expression. See
	// SearchRequest.filter for detail syntax and limitations. Examples: * To boost
	// documents with document ID "doc_1" or "doc_2", and color "Red" or "Blue":
	// `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))`
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoos
// tControlSpec: Specification for custom ranking based on customer specified
// attribute value. It provides more controls for customized ranking than the
// simple (condition, boost) combination above.
type GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoostControlSpec struct {
	// AttributeType: The attribute type to be used to determine the boost amount.
	// The attribute value can be derived from the field value of the specified
	// field_name. In the case of numerical it is straightforward i.e.
	// attribute_value = numerical_field_value. In the case of freshness however,
	// attribute_value = (time.now() - datetime_field_value).
	//
	// Possible values:
	//   "ATTRIBUTE_TYPE_UNSPECIFIED" - Unspecified AttributeType.
	//   "NUMERICAL" - The value of the numerical field will be used to dynamically
	// update the boost amount. In this case, the attribute_value (the x value) of
	// the control point will be the actual value of the numerical field for which
	// the boost_amount is specified.
	//   "FRESHNESS" - For the freshness use case the attribute value will be the
	// duration between the current time and the date in the datetime field
	// specified. The value must be formatted as an XSD `dayTimeDuration` value (a
	// restricted subset of an ISO 8601 duration value). The pattern for this is:
	// `nDnM]`. For example, `5D`, `3DT12H30M`, `T24H`.
	AttributeType string `json:"attributeType,omitempty"`
	// ControlPoints: The control points used to define the curve. The monotonic
	// function (defined through the interpolation_type above) passes through the
	// control points listed here.
	ControlPoints []*GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoostControlSpecControlPoint `json:"controlPoints,omitempty"`
	// FieldName: The name of the field whose value will be used to determine the
	// boost amount.
	FieldName string `json:"fieldName,omitempty"`
	// InterpolationType: The interpolation type to be applied to connect the
	// control points listed below.
	//
	// Possible values:
	//   "INTERPOLATION_TYPE_UNSPECIFIED" - Interpolation type is unspecified. In
	// this case, it defaults to Linear.
	//   "LINEAR" - Piecewise linear interpolation will be applied.
	InterpolationType string `json:"interpolationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoos
// tControlSpecControlPoint: The control points used to define the curve. The
// curve defined through these control points can only be monotonically
// increasing or decreasing(constant values are acceptable).
type GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpecConditionBoostSpecBoostControlSpecControlPoint struct {
	// AttributeValue: Can be one of: 1. The numerical field value. 2. The duration
	// spec for freshness: The value must be formatted as an XSD `dayTimeDuration`
	// value (a restricted subset of an ISO 8601 duration value). The pattern for
	// this is: `nDnM]`.
	AttributeValue string `json:"attributeValue,omitempty"`
	// BoostAmount: The value between -1 to 1 by which to boost the score if the
	// attribute_value evaluates to the value specified above.
	BoostAmount float64 `json:"boostAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpec: A
// specification for configuring the behavior of content search.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpec struct {
	// ChunkSpec: Specifies the chunk spec to be returned from the search response.
	// Only available if the SearchRequest.ContentSearchSpec.search_result_mode is
	// set to CHUNKS
	ChunkSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecChunkSpec `json:"chunkSpec,omitempty"`
	// ExtractiveContentSpec: If there is no extractive_content_spec provided,
	// there will be no extractive answer in the search response.
	ExtractiveContentSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecExtractiveContentSpec `json:"extractiveContentSpec,omitempty"`
	// SearchResultMode: Specifies the search result mode. If unspecified, the
	// search result mode defaults to `DOCUMENTS`.
	//
	// Possible values:
	//   "SEARCH_RESULT_MODE_UNSPECIFIED" - Default value.
	//   "DOCUMENTS" - Returns documents in the search result.
	//   "CHUNKS" - Returns chunks in the search result. Only available if the
	// DocumentProcessingConfig.chunking_config is specified.
	SearchResultMode string `json:"searchResultMode,omitempty"`
	// SnippetSpec: If `snippetSpec` is not specified, snippets are not included in
	// the search response.
	SnippetSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSnippetSpec `json:"snippetSpec,omitempty"`
	// SummarySpec: If `summarySpec` is not specified, summaries are not included
	// in the search response.
	SummarySpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpec `json:"summarySpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecChunkSpec:
// Specifies the chunk spec to be returned from the search response. Only
// available if the SearchRequest.ContentSearchSpec.search_result_mode is set
// to CHUNKS
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecChunkSpec struct {
	// NumNextChunks: The number of next chunks to be returned of the current
	// chunk. The maximum allowed value is 3. If not specified, no next chunks will
	// be returned.
	NumNextChunks int64 `json:"numNextChunks,omitempty"`
	// NumPreviousChunks: The number of previous chunks to be returned of the
	// current chunk. The maximum allowed value is 3. If not specified, no previous
	// chunks will be returned.
	NumPreviousChunks int64 `json:"numPreviousChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumNextChunks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumNextChunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecExtractiveCont
// entSpec: A specification for configuring the extractive content in a search
// response.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecExtractiveContentSpec struct {
	// MaxExtractiveAnswerCount: The maximum number of extractive answers returned
	// in each search result. An extractive answer is a verbatim answer extracted
	// from the original document, which provides a precise and contextually
	// relevant answer to the search query. If the number of matching answers is
	// less than the `max_extractive_answer_count`, return all of the answers.
	// Otherwise, return the `max_extractive_answer_count`. At most five answers
	// are returned for each SearchResult.
	MaxExtractiveAnswerCount int64 `json:"maxExtractiveAnswerCount,omitempty"`
	// MaxExtractiveSegmentCount: The max number of extractive segments returned in
	// each search result. Only applied if the DataStore is set to
	// DataStore.ContentConfig.CONTENT_REQUIRED or DataStore.solution_types is
	// SOLUTION_TYPE_CHAT. An extractive segment is a text segment extracted from
	// the original document that is relevant to the search query, and, in general,
	// more verbose than an extractive answer. The segment could then be used as
	// input for LLMs to generate summaries and answers. If the number of matching
	// segments is less than `max_extractive_segment_count`, return all of the
	// segments. Otherwise, return the `max_extractive_segment_count`.
	MaxExtractiveSegmentCount int64 `json:"maxExtractiveSegmentCount,omitempty"`
	// NumNextSegments: Return at most `num_next_segments` segments after each
	// selected segments.
	NumNextSegments int64 `json:"numNextSegments,omitempty"`
	// NumPreviousSegments: Specifies whether to also include the adjacent from
	// each selected segments. Return at most `num_previous_segments` segments
	// before each selected segments.
	NumPreviousSegments int64 `json:"numPreviousSegments,omitempty"`
	// ReturnExtractiveSegmentScore: Specifies whether to return the confidence
	// score from the extractive segments in each search result. This feature is
	// available only for new or allowlisted data stores. To allowlist your data
	// store, contact your Customer Engineer. The default value is `false`.
	ReturnExtractiveSegmentScore bool `json:"returnExtractiveSegmentScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxExtractiveAnswerCount")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxExtractiveAnswerCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSnippetSpec:
// A specification for configuring snippets in a search response.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSnippetSpec struct {
	// MaxSnippetCount: [DEPRECATED] This field is deprecated. To control snippet
	// return, use `return_snippet` field. For backwards compatibility, we will
	// return snippet if max_snippet_count > 0.
	MaxSnippetCount int64 `json:"maxSnippetCount,omitempty"`
	// ReferenceOnly: [DEPRECATED] This field is deprecated and will have no affect
	// on the snippet.
	ReferenceOnly bool `json:"referenceOnly,omitempty"`
	// ReturnSnippet: If `true`, then return snippet. If no snippet can be
	// generated, we return "No snippet is available for this page." A
	// `snippet_status` with `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be
	// returned.
	ReturnSnippet bool `json:"returnSnippet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxSnippetCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxSnippetCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpec:
// A specification for configuring a summary returned in a search response.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpec struct {
	// IgnoreAdversarialQuery: Specifies whether to filter out adversarial queries.
	// The default value is `false`. Google employs search-query classification to
	// detect adversarial queries. No summary is returned if the search query is
	// classified as an adversarial query. For example, a user might ask a question
	// regarding negative comments about the company or submit a query designed to
	// generate unsafe, policy-violating output. If this field is set to `true`, we
	// skip generating summaries for adversarial queries and return fallback
	// messages instead.
	IgnoreAdversarialQuery bool `json:"ignoreAdversarialQuery,omitempty"`
	// IgnoreJailBreakingQuery: Optional. Specifies whether to filter out
	// jail-breaking queries. The default value is `false`. Google employs
	// search-query classification to detect jail-breaking queries. No summary is
	// returned if the search query is classified as a jail-breaking query. A user
	// might add instructions to the query to change the tone, style, language,
	// content of the answer, or ask the model to act as a different entity, e.g.
	// "Reply in the tone of a competing company's CEO". If this field is set to
	// `true`, we skip generating summaries for jail-breaking queries and return
	// fallback messages instead.
	IgnoreJailBreakingQuery bool `json:"ignoreJailBreakingQuery,omitempty"`
	// IgnoreLowRelevantContent: Specifies whether to filter out queries that have
	// low relevance. The default value is `false`. If this field is set to
	// `false`, all search results are used regardless of relevance to generate
	// answers. If set to `true`, only queries with high relevance search results
	// will generate answers.
	IgnoreLowRelevantContent bool `json:"ignoreLowRelevantContent,omitempty"`
	// IgnoreNonSummarySeekingQuery: Specifies whether to filter out queries that
	// are not summary-seeking. The default value is `false`. Google employs
	// search-query classification to detect summary-seeking queries. No summary is
	// returned if the search query is classified as a non-summary seeking query.
	// For example, `why is the sky blue` and `Who is the best soccer player in the
	// world?` are summary-seeking queries, but `SFO airport` and `world cup 2026`
	// are not. They are most likely navigational queries. If this field is set to
	// `true`, we skip generating summaries for non-summary seeking queries and
	// return fallback messages instead.
	IgnoreNonSummarySeekingQuery bool `json:"ignoreNonSummarySeekingQuery,omitempty"`
	// IncludeCitations: Specifies whether to include citations in the summary. The
	// default value is `false`. When this field is set to `true`, summaries
	// include in-line citation numbers. Example summary including citations:
	// BigQuery is Google Cloud's fully managed and completely serverless
	// enterprise data warehouse [1]. BigQuery supports all data types, works
	// across clouds, and has built-in machine learning and business intelligence,
	// all within a unified platform [2, 3]. The citation numbers refer to the
	// returned search results and are 1-indexed. For example, [1] means that the
	// sentence is attributed to the first search result. [2, 3] means that the
	// sentence is attributed to both the second and third search results.
	IncludeCitations bool `json:"includeCitations,omitempty"`
	// LanguageCode: Language code for Summary. Use language tags defined by BCP47
	// (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This is an
	// experimental feature.
	LanguageCode string `json:"languageCode,omitempty"`
	// ModelPromptSpec: If specified, the spec will be used to modify the prompt
	// provided to the LLM.
	ModelPromptSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecModelPromptSpec `json:"modelPromptSpec,omitempty"`
	// ModelSpec: If specified, the spec will be used to modify the model
	// specification provided to the LLM.
	ModelSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecModelSpec `json:"modelSpec,omitempty"`
	// MultimodalSpec: Optional. Multimodal specification.
	MultimodalSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecMultiModalSpec `json:"multimodalSpec,omitempty"`
	// SummaryResultCount: The number of top results to generate the summary from.
	// If the number of results returned is less than `summaryResultCount`, the
	// summary is generated from all of the results. At most 10 results for
	// documents mode, or 50 for chunks mode, can be used to generate a summary.
	// The chunks mode is used when
	// SearchRequest.ContentSearchSpec.search_result_mode is set to CHUNKS.
	SummaryResultCount int64 `json:"summaryResultCount,omitempty"`
	// UseSemanticChunks: If true, answer will be generated from most relevant
	// chunks from top search results. This feature will improve summary quality.
	// Note that with this feature enabled, not all top search results will be
	// referenced and included in the reference list, so the citation source index
	// only points to the search results listed in the reference list.
	UseSemanticChunks bool `json:"useSemanticChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecMod
// elPromptSpec: Specification of the prompt to use with the model.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecModelPromptSpec struct {
	// Preamble: Text at the beginning of the prompt that instructs the assistant.
	// Examples are available in the user guide.
	Preamble string `json:"preamble,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Preamble") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Preamble") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecMod
// elSpec: Specification of the model.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecModelSpec struct {
	// Version: The model version used to generate the summary. Supported values
	// are: * `stable`: string. Default value when no value is specified. Uses a
	// generally available, fine-tuned model. For more information, see Answer
	// generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	// * `preview`: string. (Public preview) Uses a preview model. For more
	// information, see Answer generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Version") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Version") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecMul
// tiModalSpec: Multimodal specification: Will return an image from specified
// source. If multiple sources are specified, the pick is a quality based
// decision.
type GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpecSummarySpecMultiModalSpec struct {
	// ImageSource: Optional. Source of image returned in the answer.
	//
	// Possible values:
	//   "IMAGE_SOURCE_UNSPECIFIED" - Unspecified image source (multimodal feature
	// is disabled by default).
	//   "ALL_AVAILABLE_SOURCES" - Behavior when service determines the pick from
	// all available sources.
	//   "CORPUS_IMAGE_ONLY" - Includes image from corpus in the answer.
	//   "FIGURE_GENERATION_ONLY" - Triggers figure generation in the answer.
	ImageSource string `json:"imageSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestDataStoreSpec: A struct to
// define data stores to filter on in a search call and configurations for
// those data stores. Otherwise, an `INVALID_ARGUMENT` error is returned.
type GoogleCloudDiscoveryengineV1alphaSearchRequestDataStoreSpec struct {
	// BoostSpec: Optional. Boost specification to boost certain documents. For
	// more information on boosting, see Boosting
	// (https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results)
	BoostSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// CustomSearchOperators: Optional. Custom search operators which if specified
	// will be used to filter results from workspace data stores. For more
	// information on custom search operators, see SearchOperators
	// (https://support.google.com/cloudsearch/answer/6172299).
	CustomSearchOperators string `json:"customSearchOperators,omitempty"`
	// DataStore: Required. Full resource name of DataStore, such as
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. The path must include the project number, project id is
	// not supported for this field.
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Optional. Filter specification to filter documents in the data store
	// specified by data_store field. For more information on filtering, see
	// Filtering
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestDisplaySpec: Specifies
// features for display, like match highlighting.
type GoogleCloudDiscoveryengineV1alphaSearchRequestDisplaySpec struct {
	// MatchHighlightingCondition: The condition under which match highlighting
	// should occur.
	//
	// Possible values:
	//   "MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED" - Server behavior is the same
	// as `MATCH_HIGHLIGHTING_DISABLED`.
	//   "MATCH_HIGHLIGHTING_DISABLED" - Disables match highlighting on all
	// documents.
	//   "MATCH_HIGHLIGHTING_ENABLED" - Enables match highlighting on all
	// documents.
	MatchHighlightingCondition string `json:"matchHighlightingCondition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchHighlightingCondition")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchHighlightingCondition") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpec: The
// specification that uses customized query embedding vector to do semantic
// document retrieval.
type GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpec struct {
	// EmbeddingVectors: The embedding vector used for retrieval. Limit to 1.
	EmbeddingVectors []*GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpecEmbeddingVector `json:"embeddingVectors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EmbeddingVectors") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EmbeddingVectors") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpecEmbeddingVector:
// Embedding vector.
type GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpecEmbeddingVector struct {
	// FieldPath: Embedding field path in schema.
	FieldPath string `json:"fieldPath,omitempty"`
	// Vector: Query embedding vector.
	Vector []float64 `json:"vector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPath") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpecEmbeddingVector) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchRequestEmbeddingSpecEmbeddingVector
	var s1 struct {
		Vector []gensupport.JSONFloat64 `json:"vector"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Vector = make([]float64, len(s1.Vector))
	for i := range s1.Vector {
		s.Vector[i] = float64(s1.Vector[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpec: A facet
// specification to perform faceted search.
type GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpec struct {
	// EnableDynamicPosition: Enables dynamic position for this facet. If set to
	// true, the position of this facet among all facets in the response is
	// determined automatically. If dynamic facets are enabled, it is ordered
	// together. If set to false, the position of this facet in the response is the
	// same as in the request, and it is ranked before the facets with dynamic
	// position enable and all dynamic facets. For example, you may always want to
	// have rating facet returned in the response, but it's not necessarily to
	// always display the rating facet at the top. In that case, you can set
	// enable_dynamic_position to true so that the position of rating facet in
	// response is determined automatically. Another example, assuming you have the
	// following facets in the request: * "rating", enable_dynamic_position = true
	// * "price", enable_dynamic_position = false * "brands",
	// enable_dynamic_position = false And also you have a dynamic facets enabled,
	// which generates a facet `gender`. Then the final order of the facets in the
	// response can be ("price", "brands", "rating", "gender") or ("price",
	// "brands", "gender", "rating") depends on how API orders "gender" and
	// "rating" facets. However, notice that "price" and "brands" are always ranked
	// at first and second position because their enable_dynamic_position is false.
	EnableDynamicPosition bool `json:"enableDynamicPosition,omitempty"`
	// ExcludedFilterKeys: List of keys to exclude when faceting. By default,
	// FacetKey.key is not excluded from the filter unless it is listed in this
	// field. Listing a facet key in this field allows its values to appear as
	// facet results, even when they are filtered out of search results. Using this
	// field does not affect what search results are returned. For example, suppose
	// there are 100 documents with the color facet "Red" and 200 documents with
	// the color facet "Blue". A query containing the filter "color:ANY("Red")" and
	// having "color" as FacetKey.key would by default return only "Red" documents
	// in the search results, and also return "Red" with count 100 as the only
	// color facet. Although there are also blue documents available, "Blue" would
	// not be shown as an available facet value. If "color" is listed in
	// "excludedFilterKeys", then the query returns the facet values "Red" with
	// count 100 and "Blue" with count 200, because the "color" key is now excluded
	// from the filter. Because this field doesn't affect search results, the
	// search results are still correctly filtered to return only "Red" documents.
	// A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` error
	// is returned.
	ExcludedFilterKeys []string `json:"excludedFilterKeys,omitempty"`
	// FacetKey: Required. The facet key specification.
	FacetKey *GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpecFacetKey `json:"facetKey,omitempty"`
	// Limit: Maximum facet values that are returned for this facet. If
	// unspecified, defaults to 20. The maximum allowed value is 300. Values above
	// 300 are coerced to 300. For aggregation in healthcare search, when the
	// [FacetKey.key] is "healthcare_aggregation_key", the limit will be overridden
	// to 10,000 internally, regardless of the value set here. If this field is
	// negative, an `INVALID_ARGUMENT` is returned.
	Limit int64 `json:"limit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableDynamicPosition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableDynamicPosition") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpecFacetKey: Specifies
// how a facet is computed.
type GoogleCloudDiscoveryengineV1alphaSearchRequestFacetSpecFacetKey struct {
	// CaseInsensitive: True to make facet keys case insensitive when getting
	// faceting values with prefixes or contains; false otherwise.
	CaseInsensitive bool `json:"caseInsensitive,omitempty"`
	// Contains: Only get facet values that contain the given strings. For example,
	// suppose "category" has three values "Action > 2022", "Action > 2021" and
	// "Sci-Fi > 2022". If set "contains" to "2022", the "category" facet only
	// contains "Action > 2022" and "Sci-Fi > 2022". Only supported on textual
	// fields. Maximum is 10.
	Contains []string `json:"contains,omitempty"`
	// Intervals: Set only if values should be bucketed into intervals. Must be set
	// for facets with numerical values. Must not be set for facet with text
	// values. Maximum number of intervals is 30.
	Intervals []*GoogleCloudDiscoveryengineV1alphaInterval `json:"intervals,omitempty"`
	// Key: Required. Supported textual and numerical facet keys in Document
	// object, over which the facet values are computed. Facet key is
	// case-sensitive.
	Key string `json:"key,omitempty"`
	// OrderBy: The order in which documents are returned. Allowed values are: *
	// "count desc", which means order by SearchResponse.Facet.values.count
	// descending. * "value desc", which means order by
	// SearchResponse.Facet.values.value descending. Only applies to textual
	// facets. If not set, textual values are sorted in natural order
	// (https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are
	// sorted in the order given by FacetSpec.FacetKey.intervals.
	OrderBy string `json:"orderBy,omitempty"`
	// Prefixes: Only get facet values that start with the given string prefix. For
	// example, suppose "category" has three values "Action > 2022", "Action >
	// 2021" and "Sci-Fi > 2022". If set "prefixes" to "Action", the "category"
	// facet only contains "Action > 2022" and "Action > 2021". Only supported on
	// textual fields. Maximum is 10.
	Prefixes []string `json:"prefixes,omitempty"`
	// RestrictedValues: Only get facet for the given restricted values. Only
	// supported on textual fields. For example, suppose "category" has three
	// values "Action > 2022", "Action > 2021" and "Sci-Fi > 2022". If set
	// "restricted_values" to "Action > 2022", the "category" facet only contains
	// "Action > 2022". Only supported on textual fields. Maximum is 10.
	RestrictedValues []string `json:"restrictedValues,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CaseInsensitive") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CaseInsensitive") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestImageQuery: Specifies the
// image query input.
type GoogleCloudDiscoveryengineV1alphaSearchRequestImageQuery struct {
	// ImageBytes: Base64 encoded image bytes. Supported image formats: JPEG, PNG,
	// and BMP.
	ImageBytes string `json:"imageBytes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageBytes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestNaturalLanguageQueryUnderstandi
// ngSpec: Specification to enable natural language understanding capabilities
// for search requests.
type GoogleCloudDiscoveryengineV1alphaSearchRequestNaturalLanguageQueryUnderstandingSpec struct {
	// AllowedFieldNames: Optional. Allowlist of fields that can be used for
	// natural language filter extraction. By default, if this is unspecified, all
	// indexable fields are eligible for natural language filter extraction (but
	// are not guaranteed to be used). If any fields are specified in
	// allowed_field_names, only the fields that are both marked as indexable in
	// the schema and specified in the allowlist will be eligible for natural
	// language filter extraction. Note: for multi-datastore search, this is not
	// yet supported, and will be ignored.
	AllowedFieldNames []string `json:"allowedFieldNames,omitempty"`
	// ExtractedFilterBehavior: Optional. Controls behavior of how extracted
	// filters are applied to the search. The default behavior depends on the
	// request. For single datastore structured search, the default is
	// `HARD_FILTER`. For multi-datastore search, the default behavior is
	// `SOFT_BOOST`. Location-based filters are always applied as hard filters, and
	// the `SOFT_BOOST` setting will not affect them. This field is only used if
	// SearchRequest.natural_language_query_understanding_spec.filter_extraction_con
	// dition is set to FilterExtractionCondition.ENABLED.
	//
	// Possible values:
	//   "EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED" -
	// `EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED` will use the default behavior for
	// extracted filters. For single datastore search, the default is to apply as
	// hard filters. For multi-datastore search, the default is to apply as soft
	// boosts.
	//   "HARD_FILTER" - Applies all extracted filters as hard filters on the
	// results. Results that do not pass the extracted filters will not be returned
	// in the result set.
	//   "SOFT_BOOST" - Applies all extracted filters as soft boosts. Results that
	// pass the filters will be boosted up to higher ranks in the result set.
	ExtractedFilterBehavior string `json:"extractedFilterBehavior,omitempty"`
	// FilterExtractionCondition: The condition under which filter extraction
	// should occur. Server behavior defaults to `DISABLED`.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Server behavior defaults to `DISABLED`.
	//   "DISABLED" - Disables NL filter extraction.
	//   "ENABLED" - Enables NL filter extraction.
	FilterExtractionCondition string `json:"filterExtractionCondition,omitempty"`
	// GeoSearchQueryDetectionFieldNames: Field names used for location-based
	// filtering, where geolocation filters are detected in natural language search
	// queries. Only valid when the FilterExtractionCondition is set to `ENABLED`.
	// If this field is set, it overrides the field names set in
	// ServingConfig.geo_search_query_detection_field_names.
	GeoSearchQueryDetectionFieldNames []string `json:"geoSearchQueryDetectionFieldNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowedFieldNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedFieldNames") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestPersonalizationSpec: The
// specification for personalization.
type GoogleCloudDiscoveryengineV1alphaSearchRequestPersonalizationSpec struct {
	// Mode: The personalization mode of the search request. Defaults to Mode.AUTO.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Default value. In this case, server behavior defaults
	// to Mode.AUTO.
	//   "AUTO" - Personalization is enabled if data quality requirements are met.
	//   "DISABLED" - Disable personalization.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestQueryExpansionSpec:
// Specification to determine under which conditions query expansion should
// occur.
type GoogleCloudDiscoveryengineV1alphaSearchRequestQueryExpansionSpec struct {
	// Condition: The condition under which query expansion should occur. Default
	// to Condition.DISABLED.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Unspecified query expansion condition. In this
	// case, server behavior defaults to Condition.DISABLED.
	//   "DISABLED" - Disabled query expansion. Only the exact search query is
	// used, even if SearchResponse.total_size is zero.
	//   "AUTO" - Automatic query expansion built by the Search API.
	Condition string `json:"condition,omitempty"`
	// PinUnexpandedResults: Whether to pin unexpanded results. If this field is
	// set to true, unexpanded products are always at the top of the search
	// results, followed by the expanded results.
	PinUnexpandedResults bool `json:"pinUnexpandedResults,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 GoogleCloudDiscoveryengineV1alphaSearchRequestQueryExpansionSpec) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchRequestQueryExpansionSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchRequestRelevanceScoreSpec: The
// specification for returning the document relevance score.
type GoogleCloudDiscoveryengineV1alphaSearchRequestRelevanceScoreSpec struct {
	// ReturnRelevanceScore: Optional. Whether to return the relevance score for
	// search results. The higher the score, the more relevant the document is to
	// the query.
	ReturnRelevanceScore bool `json:"returnRelevanceScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReturnRelevanceScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReturnRelevanceScore") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAddonSpec:
// SearchAddonSpec is used to disable add-ons for search as per new repricing
// model. By default if the SearchAddonSpec is not specified, we consider that
// the customer wants to enable them wherever applicable.
type GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAddonSpec struct {
	// DisableGenerativeAnswerAddOn: Optional. If true, generative answer add-on is
	// disabled. Generative answer add-on includes natural language to filters and
	// simple answers.
	DisableGenerativeAnswerAddOn bool `json:"disableGenerativeAnswerAddOn,omitempty"`
	// DisableKpiPersonalizationAddOn: Optional. If true, disables event re-ranking
	// and personalization to optimize KPIs & personalize results.
	DisableKpiPersonalizationAddOn bool `json:"disableKpiPersonalizationAddOn,omitempty"`
	// DisableSemanticAddOn: Optional. If true, semantic add-on is disabled.
	// Semantic add-on includes embeddings and jetstream.
	DisableSemanticAddOn bool `json:"disableSemanticAddOn,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DisableGenerativeAnswerAddOn") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableGenerativeAnswerAddOn") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAsYouTypeSpec:
// Specification for search as you type in search requests.
type GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAsYouTypeSpec struct {
	// Condition: The condition under which search as you type should occur.
	// Default to Condition.DISABLED.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Server behavior defaults to Condition.DISABLED.
	//   "DISABLED" - Disables Search As You Type.
	//   "ENABLED" - Enables Search As You Type.
	//   "AUTO" - Automatic switching between search-as-you-type and standard
	// search modes, ideal for single-API implementations (e.g., debouncing).
	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 GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAsYouTypeSpec) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchRequestSearchAsYouTypeSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchRequestSessionSpec: Session
// specification. Multi-turn Search feature is currently at private GA stage.
// Please use v1alpha or v1beta version instead before we launch this feature
// to public GA. Or ask for allowlisting through Google Support team.
type GoogleCloudDiscoveryengineV1alphaSearchRequestSessionSpec struct {
	// QueryId: If set, the search result gets stored to the "turn" specified by
	// this query ID. Example: Let's say the session looks like this: session {
	// name: ".../sessions/xxx" turns { query { text: "What is foo?" query_id:
	// ".../questions/yyy" } answer: "Foo is ..." } turns { query { text: "How
	// about bar then?" query_id: ".../questions/zzz" } } } The user can call
	// /search API with a request like this: session: ".../sessions/xxx"
	// session_spec { query_id: ".../questions/zzz" } Then, the API stores the
	// search result, associated with the last turn. The stored search result can
	// be used by a subsequent /answer API call (with the session ID and the query
	// ID specified). Also, it is possible to call /search and /answer in parallel
	// with the same session ID & query ID.
	QueryId string `json:"queryId,omitempty"`
	// SearchResultPersistenceCount: The number of top search results to persist.
	// The persisted search results can be used for the subsequent /answer api
	// call. This field is similar to the `summary_result_count` field in
	// SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count. At most 10
	// results for documents mode, or 50 for chunks mode.
	SearchResultPersistenceCount int64 `json:"searchResultPersistenceCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QueryId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QueryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchRequestSpellCorrectionSpec: The
// specification for query spell correction.
type GoogleCloudDiscoveryengineV1alphaSearchRequestSpellCorrectionSpec struct {
	// Mode: The mode under which spell correction replaces the original search
	// query. Defaults to Mode.AUTO.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Unspecified spell correction mode. In this case,
	// server behavior defaults to Mode.AUTO.
	//   "SUGGESTION_ONLY" - Search API tries to find a spelling suggestion. If a
	// suggestion is found, it is put in the SearchResponse.corrected_query. The
	// spelling suggestion won't be used as the search query.
	//   "AUTO" - Automatic spell correction built by the Search API. Search will
	// be based on the corrected query if found.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponse: Response message for
// SearchService.Search method.
type GoogleCloudDiscoveryengineV1alphaSearchResponse struct {
	// AppliedControls: Controls applied as part of the Control service.
	AppliedControls []string `json:"appliedControls,omitempty"`
	// AttributionToken: A unique search token. This should be included in the
	// UserEvent logs resulting from this search, which enables accurate
	// attribution of search model performance. This also helps to identify a
	// request during the customer support scenarios.
	AttributionToken string `json:"attributionToken,omitempty"`
	// CorrectedQuery: Contains the spell corrected query, if found. If the spell
	// correction type is AUTOMATIC, then the search results are based on
	// corrected_query. Otherwise the original query is used for search.
	CorrectedQuery string `json:"correctedQuery,omitempty"`
	// Facets: Results of facets requested by user.
	Facets             []*GoogleCloudDiscoveryengineV1alphaSearchResponseFacet              `json:"facets,omitempty"`
	GeoSearchDebugInfo []*GoogleCloudDiscoveryengineV1alphaSearchResponseGeoSearchDebugInfo `json:"geoSearchDebugInfo,omitempty"`
	// GuidedSearchResult: Guided search result.
	GuidedSearchResult *GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResult `json:"guidedSearchResult,omitempty"`
	// NaturalLanguageQueryUnderstandingInfo: Natural language query understanding
	// information for the returned results.
	NaturalLanguageQueryUnderstandingInfo *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfo `json:"naturalLanguageQueryUnderstandingInfo,omitempty"`
	// NextPageToken: A token that can be sent as SearchRequest.page_token to
	// retrieve the next page. If this field is omitted, there are no subsequent
	// pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// OneBoxResults: A list of One Box results. There can be multiple One Box
	// results of different types.
	OneBoxResults []*GoogleCloudDiscoveryengineV1alphaSearchResponseOneBoxResult `json:"oneBoxResults,omitempty"`
	// QueryExpansionInfo: Query expansion information for the returned results.
	QueryExpansionInfo *GoogleCloudDiscoveryengineV1alphaSearchResponseQueryExpansionInfo `json:"queryExpansionInfo,omitempty"`
	// RedirectUri: The URI of a customer-defined redirect page. If redirect action
	// is triggered, no search is performed, and only redirect_uri and
	// attribution_token are set in the response.
	RedirectUri string `json:"redirectUri,omitempty"`
	// Results: A list of matched documents. The order represents the ranking.
	Results []*GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResult `json:"results,omitempty"`
	// SearchLinkPromotions: Promotions for site search.
	SearchLinkPromotions []*GoogleCloudDiscoveryengineV1alphaSearchLinkPromotion `json:"searchLinkPromotions,omitempty"`
	// SessionInfo: Session information. Only set if SearchRequest.session is
	// provided. See its description for more details.
	SessionInfo *GoogleCloudDiscoveryengineV1alphaSearchResponseSessionInfo `json:"sessionInfo,omitempty"`
	// SuggestedQuery: Corrected query with low confidence, AKA did you mean query.
	// Compared with corrected_query, this field is set when SpellCorrector
	// returned a response, but FPR(full page replacement) is not triggered because
	// the corrction is of low confidence(eg, reversed because there are matches of
	// the original query in document corpus).
	SuggestedQuery string `json:"suggestedQuery,omitempty"`
	// Summary: A summary as part of the search results. This field is only
	// returned if SearchRequest.ContentSearchSpec.summary_spec is set.
	Summary *GoogleCloudDiscoveryengineV1alphaSearchResponseSummary `json:"summary,omitempty"`
	// TotalSize: The estimated total count of matched items irrespective of
	// pagination. The count of results returned by pagination may be less than the
	// total_size that matches.
	TotalSize int64 `json:"totalSize,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AppliedControls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppliedControls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseFacet: A facet result.
type GoogleCloudDiscoveryengineV1alphaSearchResponseFacet struct {
	// DynamicFacet: Whether the facet is dynamically generated.
	DynamicFacet bool `json:"dynamicFacet,omitempty"`
	// Key: The key for this facet. For example, "colors" or "price". It
	// matches SearchRequest.FacetSpec.FacetKey.key.
	Key string `json:"key,omitempty"`
	// Values: The facet values for this field.
	Values []*GoogleCloudDiscoveryengineV1alphaSearchResponseFacetFacetValue `json:"values,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DynamicFacet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DynamicFacet") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseFacetFacetValue: A facet
// value which contains value names and their count.
type GoogleCloudDiscoveryengineV1alphaSearchResponseFacetFacetValue struct {
	// Count: Number of items that have this facet value.
	Count int64 `json:"count,omitempty,string"`
	// Interval: Interval value for a facet, such as 10, 20) for facet "price". It
	// matches [SearchRequest.FacetSpec.FacetKey.intervals.
	Interval *GoogleCloudDiscoveryengineV1alphaInterval `json:"interval,omitempty"`
	// Value: Text value of a facet, such as "Black" for facet "colors".
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Count") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Count") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseGeoSearchDebugInfo: Debug
// information specifically related to forward geocoding issues arising from
// Geolocation Search.
type GoogleCloudDiscoveryengineV1alphaSearchResponseGeoSearchDebugInfo struct {
	// ErrorMessage: The error produced.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// OriginalAddressQuery: The address from which forward geocoding ingestion
	// produced issues.
	OriginalAddressQuery string `json:"originalAddressQuery,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorMessage") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResult: Guided
// search result. The guided search helps user to refine the search results and
// narrow down to the real needs from a broaded search results.
type GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResult struct {
	// FollowUpQuestions: Suggested follow-up questions.
	FollowUpQuestions []string `json:"followUpQuestions,omitempty"`
	// RefinementAttributes: A list of ranked refinement attributes.
	RefinementAttributes []*GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResultRefinementAttribute `json:"refinementAttributes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FollowUpQuestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FollowUpQuestions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResultRefinementAt
// tribute: Useful attribute for search result refinements.
type GoogleCloudDiscoveryengineV1alphaSearchResponseGuidedSearchResultRefinementAttribute struct {
	// AttributeKey: Attribute key used to refine the results. For example,
	// "movie_type".
	AttributeKey string `json:"attributeKey,omitempty"`
	// AttributeValue: Attribute value used to refine the results. For example,
	// "drama".
	AttributeValue string `json:"attributeValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfo: Information describing what natural language understanding was done
// on the input query.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfo struct {
	// ClassifiedIntents: The classified intents from the input query.
	ClassifiedIntents []string `json:"classifiedIntents,omitempty"`
	// ExtractedFilters: The filters that were extracted from the input query.
	ExtractedFilters string `json:"extractedFilters,omitempty"`
	// RewrittenQuery: Rewritten input query minus the extracted filters.
	RewrittenQuery string `json:"rewrittenQuery,omitempty"`
	// StructuredExtractedFilter: The filters that were extracted from the input
	// query represented in a structured form.
	StructuredExtractedFilter *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilter `json:"structuredExtractedFilter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClassifiedIntents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClassifiedIntents") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilter: The filters that were extracted from the
// input query represented in a structured form.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilter struct {
	// Expression: The expression denoting the filter that was extracted from the
	// input query in a structured form. It can be a simple expression denoting a
	// single string, numerical or geolocation constraint or a compound expression
	// which is a combination of multiple expressions connected using logical (OR
	// and AND) operators.
	Expression *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterExpression `json:"expression,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Expression") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Expression") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterAndExpression: Logical `And` operator.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterAndExpression struct {
	// Expressions: The expressions that were ANDed together.
	Expressions []*GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterExpression `json:"expressions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Expressions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Expressions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterExpression: The expression denoting the
// filter that was extracted from the input query.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterExpression struct {
	// AndExpr: Logical "And" compound operator connecting multiple expressions.
	AndExpr *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterAndExpression `json:"andExpr,omitempty"`
	// GeolocationConstraint: Geolocation constraint expression.
	GeolocationConstraint *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint `json:"geolocationConstraint,omitempty"`
	// NumberConstraint: Numerical constraint expression.
	NumberConstraint *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterNumberConstraint `json:"numberConstraint,omitempty"`
	// OrExpr: Logical "Or" compound operator connecting multiple expressions.
	OrExpr *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterOrExpression `json:"orExpr,omitempty"`
	// StringConstraint: String constraint expression.
	StringConstraint *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterStringConstraint `json:"stringConstraint,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AndExpr") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AndExpr") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterGeolocationConstraint: Constraint of a
// geolocation field. Name of the geolocation field as defined in the schema.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint struct {
	// Address: The reference address that was inferred from the input query. The
	// proximity of the reference address to the geolocation field will be used to
	// filter the results.
	Address string `json:"address,omitempty"`
	// FieldName: The name of the geolocation field as defined in the schema.
	FieldName string `json:"fieldName,omitempty"`
	// Latitude: The latitude of the geolocation inferred from the input query.
	Latitude float64 `json:"latitude,omitempty"`
	// Longitude: The longitude of the geolocation inferred from the input query.
	Longitude float64 `json:"longitude,omitempty"`
	// RadiusInMeters: The radius in meters around the address. The record is
	// returned if the location of the geolocation field is within the radius.
	RadiusInMeters float64 `json:"radiusInMeters,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 GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterGeolocationConstraint
	var s1 struct {
		Latitude       gensupport.JSONFloat64 `json:"latitude"`
		Longitude      gensupport.JSONFloat64 `json:"longitude"`
		RadiusInMeters gensupport.JSONFloat64 `json:"radiusInMeters"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Latitude = float64(s1.Latitude)
	s.Longitude = float64(s1.Longitude)
	s.RadiusInMeters = float64(s1.RadiusInMeters)
	return nil
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterNumberConstraint: Constraint expression of a
// number field. Example: price < 100.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterNumberConstraint struct {
	// Comparison: The comparison operation performed between the field value and
	// the value specified in the constraint.
	//
	// Possible values:
	//   "COMPARISON_UNSPECIFIED" - Undefined comparison operator.
	//   "EQUALS" - Denotes equality `=` operator.
	//   "LESS_THAN_EQUALS" - Denotes less than or equal to `<=` operator.
	//   "LESS_THAN" - Denotes less than `<` operator.
	//   "GREATER_THAN_EQUALS" - Denotes greater than or equal to `>=` operator.
	//   "GREATER_THAN" - Denotes greater than `>` operator.
	Comparison string `json:"comparison,omitempty"`
	// FieldName: Name of the numerical field as defined in the schema.
	FieldName string `json:"fieldName,omitempty"`
	// QuerySegment: Identifies the keywords within the search query that match a
	// filter.
	QuerySegment string `json:"querySegment,omitempty"`
	// Value: The value specified in the numerical constraint.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Comparison") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Comparison") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterNumberConstraint) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterNumberConstraint
	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
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterOrExpression: Logical `Or` operator.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterOrExpression struct {
	// Expressions: The expressions that were ORed together.
	Expressions []*GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterExpression `json:"expressions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Expressions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Expressions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstand
// ingInfoStructuredExtractedFilterStringConstraint: Constraint expression of a
// string field.
type GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterStringConstraint struct {
	// FieldName: Name of the string field as defined in the schema.
	FieldName string `json:"fieldName,omitempty"`
	// QuerySegment: Identifies the keywords within the search query that match a
	// filter.
	QuerySegment string `json:"querySegment,omitempty"`
	// Values: Values of the string field. The record will only be returned if the
	// field value matches one of the values specified here.
	Values []string `json:"values,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 GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterStringConstraint) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseNaturalLanguageQueryUnderstandingInfoStructuredExtractedFilterStringConstraint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseOneBoxResult: OneBoxResult is
// a holder for all results of specific type that we want to display in UI
// differently.
type GoogleCloudDiscoveryengineV1alphaSearchResponseOneBoxResult struct {
	// OneBoxType: The type of One Box result.
	//
	// Possible values:
	//   "ONE_BOX_TYPE_UNSPECIFIED" - Default value. Should not be used.
	//   "PEOPLE" - One Box result contains people results.
	//   "ORGANIZATION" - One Box result contains organization results.
	//   "SLACK" - One Box result contains slack results.
	//   "KNOWLEDGE_GRAPH" - One Box result contains Knowledge Graph search
	// responses.
	OneBoxType string `json:"oneBoxType,omitempty"`
	// SearchResults: The search results for this One Box.
	SearchResults []*GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResult `json:"searchResults,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OneBoxType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OneBoxType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseQueryExpansionInfo:
// Information describing query expansion including whether expansion has
// occurred.
type GoogleCloudDiscoveryengineV1alphaSearchResponseQueryExpansionInfo struct {
	// ExpandedQuery: Bool describing whether query expansion has occurred.
	ExpandedQuery bool `json:"expandedQuery,omitempty"`
	// PinnedResultCount: Number of pinned results. This field will only be set
	// when expansion happens and
	// SearchRequest.QueryExpansionSpec.pin_unexpanded_results is set to true.
	PinnedResultCount int64 `json:"pinnedResultCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ExpandedQuery") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpandedQuery") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResult: Represents the
// search results.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResult struct {
	// Chunk: The chunk data in the search response if the
	// SearchRequest.ContentSearchSpec.search_result_mode is set to CHUNKS.
	Chunk *GoogleCloudDiscoveryengineV1alphaChunk `json:"chunk,omitempty"`
	// Document: The document data snippet in the search response. Only fields that
	// are marked as `retrievable` are populated.
	Document *GoogleCloudDiscoveryengineV1alphaDocument `json:"document,omitempty"`
	// Id: Document.id of the searched Document.
	Id string `json:"id,omitempty"`
	// ModelScores: Output only. Google provided available scores.
	ModelScores map[string]GoogleCloudDiscoveryengineV1alphaDoubleList `json:"modelScores,omitempty"`
	// RankSignals: Optional. A set of ranking signals associated with the result.
	RankSignals *GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignals `json:"rankSignals,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Chunk") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Chunk") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignals: A
// set of ranking signals.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignals struct {
	// BoostingFactor: Optional. Combined custom boosts for a doc.
	BoostingFactor float64 `json:"boostingFactor,omitempty"`
	// CustomSignals: Optional. A list of custom clearbox signals.
	CustomSignals []*GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal `json:"customSignals,omitempty"`
	// DefaultRank: Optional. The default rank of the result.
	DefaultRank float64 `json:"defaultRank,omitempty"`
	// DocumentAge: Optional. Age of the document in hours.
	DocumentAge float64 `json:"documentAge,omitempty"`
	// KeywordSimilarityScore: Optional. Keyword matching adjustment.
	KeywordSimilarityScore float64 `json:"keywordSimilarityScore,omitempty"`
	// PctrRank: Optional. Predicted conversion rate adjustment as a rank.
	PctrRank float64 `json:"pctrRank,omitempty"`
	// RelevanceScore: Optional. Semantic relevance adjustment.
	RelevanceScore float64 `json:"relevanceScore,omitempty"`
	// SemanticSimilarityScore: Optional. Semantic similarity adjustment.
	SemanticSimilarityScore float64 `json:"semanticSimilarityScore,omitempty"`
	// TopicalityRank: Optional. Topicality adjustment as a rank.
	TopicalityRank float64 `json:"topicalityRank,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostingFactor") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostingFactor") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignals) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignals
	var s1 struct {
		BoostingFactor          gensupport.JSONFloat64 `json:"boostingFactor"`
		DefaultRank             gensupport.JSONFloat64 `json:"defaultRank"`
		DocumentAge             gensupport.JSONFloat64 `json:"documentAge"`
		KeywordSimilarityScore  gensupport.JSONFloat64 `json:"keywordSimilarityScore"`
		PctrRank                gensupport.JSONFloat64 `json:"pctrRank"`
		RelevanceScore          gensupport.JSONFloat64 `json:"relevanceScore"`
		SemanticSimilarityScore gensupport.JSONFloat64 `json:"semanticSimilarityScore"`
		TopicalityRank          gensupport.JSONFloat64 `json:"topicalityRank"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.BoostingFactor = float64(s1.BoostingFactor)
	s.DefaultRank = float64(s1.DefaultRank)
	s.DocumentAge = float64(s1.DocumentAge)
	s.KeywordSimilarityScore = float64(s1.KeywordSimilarityScore)
	s.PctrRank = float64(s1.PctrRank)
	s.RelevanceScore = float64(s1.RelevanceScore)
	s.SemanticSimilarityScore = float64(s1.SemanticSimilarityScore)
	s.TopicalityRank = float64(s1.TopicalityRank)
	return nil
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomS
// ignal: Custom clearbox signal represented by name and value pair.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal struct {
	// Name: Optional. Name of the signal.
	Name string `json:"name,omitempty"`
	// Value: Optional. Float value representing the ranking signal (e.g. 1.25 for
	// BM25).
	Value float64 `json:"value,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 GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSearchResultRankSignalsCustomSignal
	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
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseSessionInfo: Information
// about the session.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSessionInfo struct {
	// Name: Name of the session. If the auto-session mode is used (when
	// SearchRequest.session ends with "-"), this field holds the newly generated
	// session name.
	Name string `json:"name,omitempty"`
	// QueryId: Query ID that corresponds to this search API call. One session can
	// have multiple turns, each with a unique query ID. By specifying the session
	// name and this query ID in the Answer API call, the answer generation happens
	// in the context of the search results from this search call.
	QueryId string `json:"queryId,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 GoogleCloudDiscoveryengineV1alphaSearchResponseSessionInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSessionInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummary: Summary of the top N
// search results specified by the summary spec.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummary struct {
	// SafetyAttributes: A collection of Safety Attribute categories and their
	// associated confidence scores.
	SafetyAttributes *GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributes `json:"safetyAttributes,omitempty"`
	// SummarySkippedReasons: Additional summary-skipped reasons. This provides the
	// reason for ignored cases. If nothing is skipped, this field is not set.
	//
	// Possible values:
	//   "SUMMARY_SKIPPED_REASON_UNSPECIFIED" - Default value. The summary skipped
	// reason is not specified.
	//   "ADVERSARIAL_QUERY_IGNORED" - The adversarial query ignored case. Only
	// used when SummarySpec.ignore_adversarial_query is set to `true`.
	//   "NON_SUMMARY_SEEKING_QUERY_IGNORED" - The non-summary seeking query
	// ignored case. Google skips the summary if the query is chit chat. Only used
	// when SummarySpec.ignore_non_summary_seeking_query is set to `true`.
	//   "OUT_OF_DOMAIN_QUERY_IGNORED" - The out-of-domain query ignored case.
	// Google skips the summary if there are no high-relevance search results. For
	// example, the data store contains facts about company A but the user query is
	// asking questions about company B.
	//   "POTENTIAL_POLICY_VIOLATION" - The potential policy violation case. Google
	// skips the summary if there is a potential policy violation detected. This
	// includes content that may be violent or toxic.
	//   "LLM_ADDON_NOT_ENABLED" - The LLM addon not enabled case. Google skips the
	// summary if the LLM addon is not enabled.
	//   "NO_RELEVANT_CONTENT" - The no relevant content case. Google skips the
	// summary if there is no relevant content in the retrieved search results.
	//   "JAIL_BREAKING_QUERY_IGNORED" - The jail-breaking query ignored case. For
	// example, "Reply in the tone of a competing company's CEO". Only used when
	// [SearchRequest.ContentSearchSpec.SummarySpec.ignore_jail_breaking_query] is
	// set to `true`.
	//   "CUSTOMER_POLICY_VIOLATION" - The customer policy violation case. Google
	// skips the summary if there is a customer policy violation detected. The
	// policy is defined by the customer.
	//   "NON_SUMMARY_SEEKING_QUERY_IGNORED_V2" - The non-answer seeking query
	// ignored case. Google skips the summary if the query doesn't have clear
	// intent. Only used when
	// [SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_answer_seeking_query]
	//  is set to `true`.
	//   "TIME_OUT" - The time out case. Google skips the summary if the time out.
	SummarySkippedReasons []string `json:"summarySkippedReasons,omitempty"`
	// SummaryText: The summary content.
	SummaryText string `json:"summaryText,omitempty"`
	// SummaryWithMetadata: Summary with metadata information.
	SummaryWithMetadata *GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySummaryWithMetadata `json:"summaryWithMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SafetyAttributes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SafetyAttributes") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachment: Stores
// binarydata attached to text answer, e.g. image, video, audio, etc.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachment struct {
	// AttributionType: Output only. The attribution type of the blob.
	//
	// Possible values:
	//   "ATTRIBUTION_TYPE_UNSPECIFIED" - Unspecified attribution type.
	//   "CORPUS" - The attachment data is from the corpus.
	//   "GENERATED" - The attachment data is generated by the model through code
	// generation.
	AttributionType string `json:"attributionType,omitempty"`
	// Data: Output only. The blob data.
	Data *GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachmentBlob `json:"data,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributionType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributionType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachmentBlob:
// Stores type and data of the blob.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachmentBlob struct {
	// Data: Output only. Raw bytes.
	Data string `json:"data,omitempty"`
	// MimeType: Output only. The media type (MIME type) of the generated data.
	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 GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachmentBlob) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachmentBlob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitation: Citation
// info for a segment.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitation struct {
	// EndIndex: End of the attributed segment, exclusive.
	EndIndex int64 `json:"endIndex,omitempty,string"`
	// Sources: Citation sources for the attributed segment.
	Sources []*GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitationSource `json:"sources,omitempty"`
	// StartIndex: Index indicates the start of the segment, measured in
	// bytes/unicode.
	StartIndex int64 `json:"startIndex,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "EndIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndIndex") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitationSource:
// Citation source.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitationSource struct {
	// ReferenceIndex: Document reference index from
	// SummaryWithMetadata.references. It is 0-indexed and the value will be zero
	// if the reference_index is not set explicitly.
	ReferenceIndex int64 `json:"referenceIndex,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ReferenceIndex") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReferenceIndex") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReference: Document
// reference.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReference struct {
	// ChunkContents: List of cited chunk contents derived from document content.
	ChunkContents []*GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReferenceChunkContent `json:"chunkContents,omitempty"`
	// Document: Required. Document.name of the document. Full resource name of the
	// referenced document, in the format
	// `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`.
	Document string `json:"document,omitempty"`
	// Title: Title of the document.
	Title string `json:"title,omitempty"`
	// Uri: Cloud Storage or HTTP uri for the document.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkContents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkContents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReferenceChunkContent:
// Chunk content.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReferenceChunkContent struct {
	// BlobAttachmentIndexes: Output only. Stores indexes of blobattachments linked
	// to this chunk.
	BlobAttachmentIndexes googleapi.Int64s `json:"blobAttachmentIndexes,omitempty"`
	// Content: Chunk textual content.
	Content string `json:"content,omitempty"`
	// PageIdentifier: Page identifier.
	PageIdentifier string `json:"pageIdentifier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobAttachmentIndexes") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributes:
// Safety Attribute categories and their associated confidence scores.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributes struct {
	// Categories: The display names of Safety Attribute categories associated with
	// the generated content. Order matches the Scores.
	Categories []string `json:"categories,omitempty"`
	// Scores: The confidence scores of the each category, higher value means
	// higher confidence. Order matches the Categories.
	Scores []float64 `json:"scores,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Categories") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Categories") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributes) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySafetyAttributes
	var s1 struct {
		Scores []gensupport.JSONFloat64 `json:"scores"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Scores = make([]float64, len(s1.Scores))
	for i := range s1.Scores {
		s.Scores[i] = float64(s1.Scores[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySummaryWithMetadata:
// Summary with metadata information.
type GoogleCloudDiscoveryengineV1alphaSearchResponseSummarySummaryWithMetadata struct {
	// BlobAttachments: Output only. Store multimodal data for answer enhancement.
	BlobAttachments []*GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryBlobAttachment `json:"blobAttachments,omitempty"`
	// CitationMetadata: Citation metadata for given summary.
	CitationMetadata *GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryCitationMetadata `json:"citationMetadata,omitempty"`
	// References: Document References.
	References []*GoogleCloudDiscoveryengineV1alphaSearchResponseSummaryReference `json:"references,omitempty"`
	// Summary: Summary text with no citation information.
	Summary string `json:"summary,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlobAttachments") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlobAttachments") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaServingConfig: Configures metadata that is
// used to generate serving time results (e.g. search results or recommendation
// predictions). The ServingConfig is passed in the search and predict request
// and generates results.
type GoogleCloudDiscoveryengineV1alphaServingConfig struct {
	// AnswerGenerationSpec: Optional. The specification for answer generation.
	AnswerGenerationSpec *GoogleCloudDiscoveryengineV1alphaAnswerGenerationSpec `json:"answerGenerationSpec,omitempty"`
	// BoostControlIds: Boost controls to use in serving path. All triggered boost
	// controls will be applied. Boost controls must be in the same data store as
	// the serving config. Maximum of 20 boost controls.
	BoostControlIds []string `json:"boostControlIds,omitempty"`
	// CreateTime: Output only. ServingConfig created timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// CustomFineTuningSpec: Custom fine tuning configs. If
	// SearchRequest.custom_fine_tuning_spec is set, it has higher priority than
	// the configs set here.
	CustomFineTuningSpec *GoogleCloudDiscoveryengineV1alphaCustomFineTuningSpec `json:"customFineTuningSpec,omitempty"`
	// DisplayName: Required. The human readable serving config display name. Used
	// in Discovery UI. This field must be a UTF-8 encoded string with a length
	// limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// DissociateControlIds: Condition do not associate specifications. If multiple
	// do not associate conditions match, all matching do not associate controls in
	// the list will execute. Order does not matter. Maximum number of
	// specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	DissociateControlIds []string `json:"dissociateControlIds,omitempty"`
	// DiversityLevel: How much diversity to use in recommendation model results
	// e.g. `medium-diversity` or `high-diversity`. Currently supported values: *
	// `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` *
	// `auto-diversity` If not specified, we choose default based on recommendation
	// model type. Default value: `no-diversity`. Can only be set if SolutionType
	// is SOLUTION_TYPE_RECOMMENDATION.
	DiversityLevel string `json:"diversityLevel,omitempty"`
	// EmbeddingConfig: Bring your own embedding config. The config is used for
	// search semantic retrieval. The retrieval is based on the dot product of
	// SearchRequest.EmbeddingSpec.EmbeddingVector.vector and the document
	// embeddings that are provided by this EmbeddingConfig. If
	// SearchRequest.EmbeddingSpec.EmbeddingVector.vector is provided, it overrides
	// this ServingConfig.embedding_config.
	EmbeddingConfig *GoogleCloudDiscoveryengineV1alphaEmbeddingConfig `json:"embeddingConfig,omitempty"`
	// FilterControlIds: Filter controls to use in serving path. All triggered
	// filter controls will be applied. Filter controls must be in the same data
	// store as the serving config. Maximum of 20 filter controls.
	FilterControlIds []string `json:"filterControlIds,omitempty"`
	// GenericConfig: The GenericConfig of the serving configuration.
	GenericConfig *GoogleCloudDiscoveryengineV1alphaServingConfigGenericConfig `json:"genericConfig,omitempty"`
	// GuidedSearchSpec: Guided search configs.
	GuidedSearchSpec *GoogleCloudDiscoveryengineV1alphaGuidedSearchSpec `json:"guidedSearchSpec,omitempty"`
	// IgnoreControlIds: Condition ignore specifications. If multiple ignore
	// conditions match, all matching ignore controls in the list will execute.
	// Order does not matter. Maximum number of specifications is 100.
	IgnoreControlIds []string `json:"ignoreControlIds,omitempty"`
	// MediaConfig: The MediaConfig of the serving configuration.
	MediaConfig *GoogleCloudDiscoveryengineV1alphaServingConfigMediaConfig `json:"mediaConfig,omitempty"`
	// ModelId: The id of the model to use at serving time. Currently only
	// RecommendationModels are supported. Can be changed but only to a compatible
	// model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required
	// when SolutionType is SOLUTION_TYPE_RECOMMENDATION.
	ModelId string `json:"modelId,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/{project}/locations/{location}/collections/{collection_id}/engines/
	// {engine_id}/servingConfigs/{serving_config_id}`
	Name string `json:"name,omitempty"`
	// OnewaySynonymsControlIds: Condition oneway synonyms specifications. If
	// multiple oneway synonyms conditions match, all matching oneway synonyms
	// controls in the list will execute. Maximum number of specifications is 100.
	// Can only be set if SolutionType is SOLUTION_TYPE_SEARCH.
	OnewaySynonymsControlIds []string `json:"onewaySynonymsControlIds,omitempty"`
	// PersonalizationSpec: The specification for personalization spec. Notice that
	// if both ServingConfig.personalization_spec and
	// SearchRequest.personalization_spec are set,
	// SearchRequest.personalization_spec overrides
	// ServingConfig.personalization_spec.
	PersonalizationSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestPersonalizationSpec `json:"personalizationSpec,omitempty"`
	// PromoteControlIds: Condition promote specifications. Maximum number of
	// specifications is 100.
	PromoteControlIds []string `json:"promoteControlIds,omitempty"`
	// RankingExpression: The ranking expression controls the customized ranking on
	// retrieval documents. To leverage this, document embedding is required. The
	// ranking expression setting in ServingConfig applies to all search requests
	// served by the serving config. However, if `SearchRequest.ranking_expression`
	// is specified, it overrides the ServingConfig ranking expression. The ranking
	// expression is a single function or multiple functions that are joined by
	// "+". * ranking_expression = function, { " + ", function }; Supported
	// functions: * double * relevance_score * double *
	// dotProduct(embedding_field_path) Function variables: * `relevance_score`:
	// pre-defined keywords, used for measure relevance between query and document.
	// * `embedding_field_path`: the document embedding field used with query
	// embedding vector. * `dotProduct`: embedding function between
	// embedding_field_path and query embedding vector. Example ranking expression:
	// If document has an embedding field doc_embedding, the ranking expression
	// could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
	RankingExpression string `json:"rankingExpression,omitempty"`
	// RedirectControlIds: IDs of the redirect controls. Only the first triggered
	// redirect action is applied, even if multiple apply. Maximum number of
	// specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	RedirectControlIds []string `json:"redirectControlIds,omitempty"`
	// ReplacementControlIds: Condition replacement specifications. Applied
	// according to the order in the list. A previously replaced term can not be
	// re-replaced. Maximum number of specifications is 100. Can only be set if
	// SolutionType is SOLUTION_TYPE_SEARCH.
	ReplacementControlIds []string `json:"replacementControlIds,omitempty"`
	// SolutionType: Required. Immutable. Specifies the solution type that a
	// serving config can be associated with.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// SynonymsControlIds: Condition synonyms specifications. If multiple synonyms
	// conditions match, all matching synonyms controls in the list will execute.
	// Maximum number of specifications is 100. Can only be set if SolutionType is
	// SOLUTION_TYPE_SEARCH.
	SynonymsControlIds []string `json:"synonymsControlIds,omitempty"`
	// UpdateTime: Output only. ServingConfig updated timestamp.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AnswerGenerationSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AnswerGenerationSpec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaServingConfigGenericConfig: Specifies the
// configurations needed for Generic Discovery.Currently we support: *
// `content_search_spec`: configuration for generic content search.
type GoogleCloudDiscoveryengineV1alphaServingConfigGenericConfig struct {
	// ContentSearchSpec: Specifies the expected behavior of content search. Only
	// valid for content-search enabled data store.
	ContentSearchSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpec `json:"contentSearchSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentSearchSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentSearchSpec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaServingConfigMediaConfig: Specifies the
// configurations needed for Media Discovery. Currently we support: *
// `demote_content_watched`: Threshold for watched content demotion. Customers
// can specify if using watched content demotion or use viewed detail page.
// Using the content watched demotion, customers need to specify the watched
// minutes or percentage exceeds the threshold, the content will be demoted in
// the recommendation result. * `promote_fresh_content`: cutoff days for fresh
// content promotion. Customers can specify if using content freshness
// promotion. If the content was published within the cutoff days, the content
// will be promoted in the recommendation result. Can only be set if
// SolutionType is SOLUTION_TYPE_RECOMMENDATION.
type GoogleCloudDiscoveryengineV1alphaServingConfigMediaConfig struct {
	// ContentFreshnessCutoffDays: Specifies the content freshness used for
	// recommendation result. Contents will be demoted if contents were published
	// for more than content freshness cutoff days.
	ContentFreshnessCutoffDays int64 `json:"contentFreshnessCutoffDays,omitempty"`
	// ContentWatchedPercentageThreshold: Specifies the content watched percentage
	// threshold for demotion. Threshold value must be between [0, 1.0] inclusive.
	ContentWatchedPercentageThreshold float64 `json:"contentWatchedPercentageThreshold,omitempty"`
	// ContentWatchedSecondsThreshold: Specifies the content watched minutes
	// threshold for demotion.
	ContentWatchedSecondsThreshold float64 `json:"contentWatchedSecondsThreshold,omitempty"`
	// DemoteContentWatchedPastDays: Optional. Specifies the number of days to look
	// back for demoting watched content. If set to zero or unset, defaults to the
	// maximum of 365 days.
	DemoteContentWatchedPastDays int64 `json:"demoteContentWatchedPastDays,omitempty"`
	// DemotionEventType: Specifies the event type used for demoting recommendation
	// result. Currently supported values: * `view-item`: Item viewed. *
	// `media-play`: Start/resume watching a video, playing a song, etc. *
	// `media-complete`: Finished or stopped midway through a video, song, etc. If
	// unset, watch history demotion will not be applied. Content freshness
	// demotion will still be applied.
	DemotionEventType string `json:"demotionEventType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentFreshnessCutoffDays")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentFreshnessCutoffDays") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaSession: External session proto definition.
type GoogleCloudDiscoveryengineV1alphaSession struct {
	// DisplayName: Optional. The display name of the session. This field is used
	// to identify the session in the UI. By default, the display name is the first
	// turn query text in the session.
	DisplayName string `json:"displayName,omitempty"`
	// EndTime: Output only. The time the session finished.
	EndTime string `json:"endTime,omitempty"`
	// IsPinned: Optional. Whether the session is pinned, pinned session will be
	// displayed on the top of the session list.
	IsPinned bool `json:"isPinned,omitempty"`
	// Labels: Optional. The labels for the session. Can be set as filter in
	// ListSessionsRequest.
	Labels []string `json:"labels,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/{project}/locations/global/collections/{collection}/engines/{engine
	// }/sessions/*`
	Name string `json:"name,omitempty"`
	// StartTime: Output only. The time the session started.
	StartTime string `json:"startTime,omitempty"`
	// State: The state of the session.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - State is unspecified.
	//   "IN_PROGRESS" - The session is currently open.
	State string `json:"state,omitempty"`
	// Turns: Turns.
	Turns []*GoogleCloudDiscoveryengineV1alphaSessionTurn `json:"turns,omitempty"`
	// UserPseudoId: A unique identifier for tracking users.
	UserPseudoId string `json:"userPseudoId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// 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 GoogleCloudDiscoveryengineV1alphaSession) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSession
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSessionTurn: Represents a turn, including a
// query from the user and a answer from service.
type GoogleCloudDiscoveryengineV1alphaSessionTurn struct {
	// Answer: Optional. The resource name of the answer to the user query. Only
	// set if the answer generation (/answer API call) happened in this turn.
	Answer string `json:"answer,omitempty"`
	// DetailedAnswer: Output only. In ConversationalSearchService.GetSession API,
	// if GetSessionRequest.include_answer_details is set to true, this field will
	// be populated when getting answer query session.
	DetailedAnswer *GoogleCloudDiscoveryengineV1alphaAnswer `json:"detailedAnswer,omitempty"`
	// DetailedAssistAnswer: Output only. In ConversationalSearchService.GetSession
	// API, if GetSessionRequest.include_answer_details is set to true, this field
	// will be populated when getting assistant session.
	DetailedAssistAnswer *GoogleCloudDiscoveryengineV1alphaAssistAnswer `json:"detailedAssistAnswer,omitempty"`
	// Query: Optional. The user query. May not be set if this turn is merely
	// regenerating an answer to a different turn
	Query *GoogleCloudDiscoveryengineV1alphaQuery `json:"query,omitempty"`
	// QueryConfig: Optional. Represents metadata related to the query config, for
	// example LLM model and version used, model parameters (temperature, grounding
	// parameters, etc.). The prefix "google." is reserved for Google-developed
	// functionality.
	QueryConfig map[string]string `json:"queryConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Answer") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Answer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateMetadata: Metadata
// related to the progress of the
// CrawlRateManagementService.SetDedicatedCrawlRate operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateRequest: Request
// message for CrawlRateManagementService.SetDedicatedCrawlRate method. The
// user can set the crawl rate for a crawl_rate_scope they own. They can set up
// an overall crawl rate, or set up a user-triggered crawl rate and a
// auto-refresh crawl rate separately. If an overall crawl rate is set, Vertex
// AI will automatically splits crawl_rate into user-triggered and
// auto-refresh.
type GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateRequest struct {
	// CrawlRate: Optional. The crawl QPS set by the user. It is not guaranteed
	// that Vertex crawl bot will crawl at this QPS. If the crawl rate is too high,
	// the real QPS may be lower than the value set by the user to avoid
	// overloading the user's website.
	CrawlRate int64 `json:"crawlRate,omitempty"`
	// CrawlRateScope: Required. The scope of the crawl rate that the user wants to
	// config. Currently, only domain and host name are supported. A domain name
	// example: `example.com`. A host name example: `www.example.com`. Please do
	// not include `/` in the domain or host name.
	CrawlRateScope string `json:"crawlRateScope,omitempty"`
	// CrawlType: Optional. Whether it's the crawl rate of user-triggered or
	// auto-refresh.
	//
	// Possible values:
	//   "CRAWL_TYPE_UNSPECIFIED" - The crawl type is unspecified.
	//   "USER_TRIGGERED" - The crawl type is user-triggered.
	//   "AUTO_REFRESH" - The crawl type is auto-refresh.
	CrawlType string `json:"crawlType,omitempty"`
	// Mode: Optional. Whether the rate is explicitly set by users, or set by
	// vertex AI.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - The mode is unspecified. If the user does not specify
	// the mode, default to AUTOMATIC.
	//   "AUTOMATIC" - Vertex AI automatically splits crawl_rate into
	// user-triggered and auto-refresh. Users don't need to specify
	// SetDedicatedCrawlRateRequest.CrawlType if the mode is AUTOMATIC.
	//   "EXPLICIT" - Users explicitly set user-triggered or auto-refresh crawl
	// rate.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CrawlRate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CrawlRate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateResponse: Response
// message for CrawlRateManagementService.SetDedicatedCrawlRate method. It
// simply returns the state of the response, and an error message if the state
// is FAILED.
type GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateResponse struct {
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,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 GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorMetadata: Metadata for
// DataConnectorService.SetUpDataConnector method.
type GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorMetadata struct {
}

// GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorRequest: Request for
// DataConnectorService.SetUpDataConnector method.
type GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorRequest struct {
	// CollectionDisplayName: Required. The display name of the Collection. Should
	// be human readable, used to display collections in the Console Dashboard.
	// UTF-8 encoded string with limit of 1024 characters.
	CollectionDisplayName string `json:"collectionDisplayName,omitempty"`
	// CollectionId: Required. The ID to use for the Collection, which will become
	// the final component of the Collection's resource name. A new Collection is
	// created as part of the DataConnector setup. DataConnector is a singleton
	// resource under Collection, managing all DataStores of the Collection. This
	// field must conform to RFC-1034 (https://tools.ietf.org/html/rfc1034)
	// standard with a length limit of 63 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	CollectionId string `json:"collectionId,omitempty"`
	// DataConnector: Required. The DataConnector to initialize in the newly
	// created Collection.
	DataConnector *GoogleCloudDiscoveryengineV1alphaDataConnector `json:"dataConnector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CollectionDisplayName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CollectionDisplayName") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.SetUriPatternDocumentData operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataRequest: Request
// message for SiteSearchEngineService.SetUriPatternDocumentData method.
type GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataRequest struct {
	// DocumentDataMap: Document data keyed by URI pattern. Each entry must be
	// consistent with the Schema. For example: Schema = { "type": "object",
	// "properties": { "Categories": { "type": "array", "items": { "retrievable":
	// true, "type": "string" } } } document_data_map = { "www.url1.com/*": {
	// "Categories": ["category1", "category2"] }, "www.url2.com/*": {
	// "Categories": ["category3"] } }
	DocumentDataMap map[string]googleapi.RawMessage `json:"documentDataMap,omitempty"`
	// EmptyDocumentDataMap: If true, clears the document data map. If true,
	// SetUriPatternDocumentDataRequest.document_data_map must be empty.
	EmptyDocumentDataMap bool `json:"emptyDocumentDataMap,omitempty"`
	// Schema: Optional. If not provided, the current Schema is used. If provided,
	// validates and updates the Schema. If validation fails, an error is returned.
	Schema googleapi.RawMessage `json:"schema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentDataMap") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentDataMap") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataResponse: Response
// message for SiteSearchEngineService.SetUriPatternDocumentData method.
type GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataResponse struct {
}

// GoogleCloudDiscoveryengineV1alphaSingleRegionKey: Metadata for
// single-regional CMEKs.
type GoogleCloudDiscoveryengineV1alphaSingleRegionKey struct {
	// KmsKey: Required. Single-regional kms key resource name which will be used
	// to encrypt resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KmsKey") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KmsKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSiteSearchEngine: SiteSearchEngine captures
// DataStore level site search persisting configurations. It is a singleton
// value per data store.
type GoogleCloudDiscoveryengineV1alphaSiteSearchEngine struct {
	// Name: The fully qualified resource name of the site search engine. Format:
	// `projects/*/locations/*/dataStores/*/siteSearchEngine`
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "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 GoogleCloudDiscoveryengineV1alphaSiteSearchEngine) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaSiteSearchEngine
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaSiteVerificationInfo: Verification
// information for target sites in advanced site search.
type GoogleCloudDiscoveryengineV1alphaSiteVerificationInfo struct {
	// SiteVerificationState: Site verification state indicating the ownership and
	// validity.
	//
	// Possible values:
	//   "SITE_VERIFICATION_STATE_UNSPECIFIED" - Defaults to VERIFIED.
	//   "VERIFIED" - Site ownership verified.
	//   "UNVERIFIED" - Site ownership pending verification or verification failed.
	//   "EXEMPTED" - Site exempt from verification, e.g., a public website that
	// opens to all.
	SiteVerificationState string `json:"siteVerificationState,omitempty"`
	// VerifyTime: Latest site verification time.
	VerifyTime string `json:"verifyTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SiteVerificationState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SiteVerificationState") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSitemap: A sitemap for the
// SiteSearchEngine.
type GoogleCloudDiscoveryengineV1alphaSitemap struct {
	// CreateTime: Output only. The sitemap's creation time.
	CreateTime string `json:"createTime,omitempty"`
	// Name: Output only. The fully qualified resource name of the sitemap.
	// `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine/sitemaps/
	// *` The `sitemap_id` suffix is system-generated.
	Name string `json:"name,omitempty"`
	// Uri: Public URI for the sitemap, e.g. `www.example.com/sitemap.xml`.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSpannerSource: The Spanner source for
// importing data
type GoogleCloudDiscoveryengineV1alphaSpannerSource struct {
	// DatabaseId: Required. The database ID of the source Spanner table.
	DatabaseId string `json:"databaseId,omitempty"`
	// EnableDataBoost: Whether to apply data boost on Spanner export. Enabling
	// this option will incur additional cost. More info can be found here
	// (https://cloud.google.com/spanner/docs/databoost/databoost-overview#billing_and_quotas).
	EnableDataBoost bool `json:"enableDataBoost,omitempty"`
	// InstanceId: Required. The instance ID of the source Spanner table.
	InstanceId string `json:"instanceId,omitempty"`
	// ProjectId: The project ID that contains the Spanner source. Has a length
	// limit of 128 characters. If not specified, inherits the project ID from the
	// parent request.
	ProjectId string `json:"projectId,omitempty"`
	// TableId: Required. The table name of the Spanner database that needs to be
	// imported.
	TableId string `json:"tableId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DatabaseId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DatabaseId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStartConnectorRunRequest: Request message
// for DataConnectorService.StartConnectorRun method.
type GoogleCloudDiscoveryengineV1alphaStartConnectorRunRequest struct {
	// Entities: Specifies which Third Party Connector entities should be synced.
	// If not specified, all entities will be synced.
	Entities []string `json:"entities,omitempty"`
	// ForceRefreshContent: Optional. Whether to force refresh the unstructured
	// content of the documents. If set to `true`, the content part of the
	// documents will be refreshed regardless of the update status of the
	// referencing content.
	ForceRefreshContent bool `json:"forceRefreshContent,omitempty"`
	// HealthcareFhirResourceTypes: The FHIR resource types to import. The resource
	// types should be a subset of all supported FHIR resource types
	// (https://cloud.google.com/generative-ai-app-builder/docs/fhir-schema-reference#resource-level-specification).
	// Default to all supported FHIR resource types if empty.
	HealthcareFhirResourceTypes []string `json:"healthcareFhirResourceTypes,omitempty"`
	// SyncIdentity: If true, trigger Identity sync.
	SyncIdentity bool `json:"syncIdentity,omitempty"`
	// SyncSinceTimestamp: Timestamp to indicate the point in time from which data
	// should be synced for Streaming/Batch Data Connectors. This field is only
	// utilized for Healthcare Connectors.
	SyncSinceTimestamp string `json:"syncSinceTimestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Entities") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Entities") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequest: Request for the
// AssistantService.StreamAssist method.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequest struct {
	// GenerationSpec: Optional. Specification of the generation configuration for
	// the request.
	GenerationSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestGenerationSpec `json:"generationSpec,omitempty"`
	// Query: Optional. Current user query. Empty query is only supported if
	// `file_ids` are provided. In this case, the answer will be generated based on
	// those context files.
	Query *GoogleCloudDiscoveryengineV1alphaQuery `json:"query,omitempty"`
	// Session: Optional. The session to use for the request. If specified, the
	// assistant has access to the session history, and the query and the answer
	// are stored there. If `-` is specified as the session ID, or it is left
	// empty, then a new session is created with an automatically generated ID.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/sessions/{session}`
	Session string `json:"session,omitempty"`
	// ToolsSpec: Optional. Specification of tools that are used to serve the
	// request.
	ToolsSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpec `json:"toolsSpec,omitempty"`
	// UserMetadata: Optional. Information about the user initiating the query.
	UserMetadata *GoogleCloudDiscoveryengineV1alphaAssistUserMetadata `json:"userMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GenerationSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GenerationSpec") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestGenerationSpec:
// Assistant generation specification for the request. This allows to override
// the default generation configuration at the engine level.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestGenerationSpec struct {
	// ModelId: Optional. The Vertex AI model_id used for the generative model. If
	// not set, the default Assistant model will be used.
	ModelId string `json:"modelId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpec: Specification
// of tools that are used to serve the request.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpec struct {
	// ImageGenerationSpec: Optional. Specification of the image generation tool.
	ImageGenerationSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecImageGenerationSpec `json:"imageGenerationSpec,omitempty"`
	// VertexAiSearchSpec: Optional. Specification of the Vertex AI Search tool.
	VertexAiSearchSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVertexAiSearchSpec `json:"vertexAiSearchSpec,omitempty"`
	// VideoGenerationSpec: Optional. Specification of the video generation tool.
	VideoGenerationSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVideoGenerationSpec `json:"videoGenerationSpec,omitempty"`
	// WebGroundingSpec: Optional. Specification of the web grounding tool. If
	// field is present, enables grounding with web search. Works only if
	// Assistant.web_grounding_type is WEB_GROUNDING_TYPE_GOOGLE_SEARCH or
	// WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH.
	WebGroundingSpec *GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecWebGroundingSpec `json:"webGroundingSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageGenerationSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageGenerationSpec") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecImageGenerationS
// pec: Specification of the image generation tool.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecImageGenerationSpec struct {
}

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVertexAiSearchSp
// ec: Specification of the Vertex AI Search tool.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVertexAiSearchSpec struct {
	// DataStoreSpecs: Optional. Specs defining DataStores to filter on in a search
	// call and configurations for those data stores. This is only considered for
	// Engines with multiple data stores.
	DataStoreSpecs []*GoogleCloudDiscoveryengineV1alphaSearchRequestDataStoreSpec `json:"dataStoreSpecs,omitempty"`
	// Filter: Optional. The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. Filter expression is case-sensitive. If this field is
	// unrecognizable, an `INVALID_ARGUMENT` is returned. Filtering in Vertex AI
	// Search is done by mapping the LHS filter key to a key property defined in
	// the Vertex AI Search backend -- this mapping is defined by the customer in
	// their schema. For example a media customer might have a field 'name' in
	// their schema. In this case the filter would look like this: filter -->
	// name:'ANY("king kong")' For more information about filtering including
	// syntax and filter operators, see Filter
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStoreSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStoreSpecs") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVideoGenerationS
// pec: Specification of the video generation tool.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecVideoGenerationSpec struct {
}

// GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecWebGroundingSpec
// : Specification of the web grounding tool.
type GoogleCloudDiscoveryengineV1alphaStreamAssistRequestToolsSpecWebGroundingSpec struct {
}

// GoogleCloudDiscoveryengineV1alphaStreamAssistResponse: Response for the
// AssistantService.StreamAssist method.
type GoogleCloudDiscoveryengineV1alphaStreamAssistResponse struct {
	// Answer: Assist answer resource object containing parts of the assistant's
	// final answer for the user's query. Not present if the current response
	// doesn't add anything to previously sent AssistAnswer.replies. Observe
	// AssistAnswer.state to see if more parts are to be expected. While the state
	// is `IN_PROGRESS`, the AssistAnswer.replies field in each response will
	// contain replies (reply fragments) to be appended to the ones received in
	// previous responses. AssistAnswer.name won't be filled. If the state is
	// `SUCCEEDED`, `FAILED` or `SKIPPED`, the response is the last response and
	// AssistAnswer.name will have a value.
	Answer *GoogleCloudDiscoveryengineV1alphaAssistAnswer `json:"answer,omitempty"`
	// AssistToken: A global unique ID that identifies the current pair of request
	// and stream of responses. Used for feedback and support.
	AssistToken string `json:"assistToken,omitempty"`
	// SessionInfo: Session information. Only included in the final
	// StreamAssistResponse of the response stream.
	SessionInfo *GoogleCloudDiscoveryengineV1alphaStreamAssistResponseSessionInfo `json:"sessionInfo,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Answer") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Answer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaStreamAssistResponseSessionInfo:
// Information about the session.
type GoogleCloudDiscoveryengineV1alphaStreamAssistResponseSessionInfo struct {
	// Session: Name of the newly generated or continued session. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/sessions/{session}`.
	Session string `json:"session,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Session") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Session") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaSuggestionDenyListEntry: Suggestion deny
// list entry identifying the phrase to block from suggestions and the applied
// operation for the phrase.
type GoogleCloudDiscoveryengineV1alphaSuggestionDenyListEntry struct {
	// BlockPhrase: Required. Phrase to block from suggestions served. Can be
	// maximum 125 characters.
	BlockPhrase string `json:"blockPhrase,omitempty"`
	// MatchOperator: Required. The match operator to apply for this phrase.
	// Whether to block the exact phrase, or block any suggestions containing this
	// phrase.
	//
	// Possible values:
	//   "MATCH_OPERATOR_UNSPECIFIED" - Default value. Should not be used
	//   "EXACT_MATCH" - If the suggestion is an exact match to the block_phrase,
	// then block it.
	//   "CONTAINS" - If the suggestion contains the block_phrase, then block it.
	MatchOperator string `json:"matchOperator,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BlockPhrase") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BlockPhrase") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTargetSite: A target site for the
// SiteSearchEngine.
type GoogleCloudDiscoveryengineV1alphaTargetSite struct {
	// ExactMatch: Immutable. If set to false, a uri_pattern is generated to
	// include all pages whose address contains the provided_uri_pattern. If set to
	// true, an uri_pattern is generated to try to be an exact match of the
	// provided_uri_pattern or just the specific page if the provided_uri_pattern
	// is a specific one. provided_uri_pattern is always normalized to generate the
	// URI pattern to be used by the search engine.
	ExactMatch bool `json:"exactMatch,omitempty"`
	// FailureReason: Output only. Failure reason.
	FailureReason *GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReason `json:"failureReason,omitempty"`
	// GeneratedUriPattern: Output only. This is system-generated based on the
	// provided_uri_pattern.
	GeneratedUriPattern string `json:"generatedUriPattern,omitempty"`
	// IndexingStatus: Output only. Indexing status.
	//
	// Possible values:
	//   "INDEXING_STATUS_UNSPECIFIED" - Defaults to SUCCEEDED.
	//   "PENDING" - The target site is in the update queue and will be picked up
	// by indexing pipeline.
	//   "FAILED" - The target site fails to be indexed.
	//   "SUCCEEDED" - The target site has been indexed.
	//   "DELETING" - The previously indexed target site has been marked to be
	// deleted. This is a transitioning state which will resulted in either: 1.
	// target site deleted if unindexing is successful; 2. state reverts to
	// SUCCEEDED if the unindexing fails.
	//   "CANCELLABLE" - The target site change is pending but cancellable.
	//   "CANCELLED" - The target site change is cancelled.
	IndexingStatus string `json:"indexingStatus,omitempty"`
	// Name: Output only. The fully qualified resource name of the target site.
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/siteSearchEngine/targetSites/{target_site}` The
	// `target_site_id` is system-generated.
	Name string `json:"name,omitempty"`
	// ProvidedUriPattern: Required. Input only. The user provided URI pattern from
	// which the `generated_uri_pattern` is generated.
	ProvidedUriPattern string `json:"providedUriPattern,omitempty"`
	// RootDomainUri: Output only. Root domain of the provided_uri_pattern.
	RootDomainUri string `json:"rootDomainUri,omitempty"`
	// SiteVerificationInfo: Output only. Site ownership and validity verification
	// status.
	SiteVerificationInfo *GoogleCloudDiscoveryengineV1alphaSiteVerificationInfo `json:"siteVerificationInfo,omitempty"`
	// Type: The type of the target site, e.g., whether the site is to be included
	// or excluded.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - This value is unused. In this case, server behavior
	// defaults to Type.INCLUDE.
	//   "INCLUDE" - Include the target site.
	//   "EXCLUDE" - Exclude the target site.
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The target site's last updated time.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReason: Site search
// indexing failure reasons.
type GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReason struct {
	// QuotaFailure: Failed due to insufficient quota.
	QuotaFailure *GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReasonQuotaFailure `json:"quotaFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuotaFailure") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuotaFailure") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReasonQuotaFailure: Failed
// due to insufficient quota.
type GoogleCloudDiscoveryengineV1alphaTargetSiteFailureReasonQuotaFailure struct {
	// TotalRequiredQuota: This number is an estimation on how much total quota
	// this project needs to successfully complete indexing.
	TotalRequiredQuota int64 `json:"totalRequiredQuota,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TotalRequiredQuota") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TotalRequiredQuota") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTenant: Tenant information for a connector
// source. This includes some of the same information stored in the Credential
// message, but is limited to only what is needed to provide a list of
// accessible tenants to the user.
type GoogleCloudDiscoveryengineV1alphaTenant struct {
	// DisplayName: Optional display name for the tenant, e.g. "My Slack Team".
	DisplayName string `json:"displayName,omitempty"`
	// Id: The tenant's instance ID. Examples: Jira
	// ("8594f221-9797-5f78-1fa4-485e198d7cd0"), Slack ("T123456").
	Id string `json:"id,omitempty"`
	// Uri: The URI of the tenant, if applicable. For example, the URI of a Jira
	// instance is https://my-jira-instance.atlassian.net, and a Slack tenant does
	// not have a URI.
	Uri string `json:"uri,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 GoogleCloudDiscoveryengineV1alphaTenant) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaTenant
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// GoogleCloudDiscoveryengineV1alphaTrainCustomModelMetadata: Metadata related
// to the progress of the TrainCustomModel operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaTrainCustomModelMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequest: Request message
// for SearchTuningService.TrainCustomModel method.
type GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequest struct {
	// ErrorConfig: The desired location of errors incurred during the data
	// ingestion and training.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// GcsTrainingInput: Cloud Storage training input.
	GcsTrainingInput *GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequestGcsTrainingInput `json:"gcsTrainingInput,omitempty"`
	// ModelId: If not provided, a UUID will be generated.
	ModelId string `json:"modelId,omitempty"`
	// ModelType: Model to be trained. Supported values are: * **search-tuning**:
	// Fine tuning the search system based on data provided.
	ModelType string `json:"modelType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequestGcsTrainingInput:
// Cloud Storage training data input.
type GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequestGcsTrainingInput struct {
	// CorpusDataPath: The Cloud Storage corpus data which could be associated in
	// train data. The data path format is `gs:///`. A newline delimited
	// jsonl/ndjson file. For search-tuning model, each line should have the _id,
	// title and text. Example: `{"_id": "doc1", title: "relevant doc", "text":
	// "relevant text"}`
	CorpusDataPath string `json:"corpusDataPath,omitempty"`
	// QueryDataPath: The gcs query data which could be associated in train data.
	// The data path format is `gs:///`. A newline delimited jsonl/ndjson file. For
	// search-tuning model, each line should have the _id and text. Example:
	// {"_id": "query1", "text": "example query"}
	QueryDataPath string `json:"queryDataPath,omitempty"`
	// TestDataPath: Cloud Storage test data. Same format as train_data_path. If
	// not provided, a random 80/20 train/test split will be performed on
	// train_data_path.
	TestDataPath string `json:"testDataPath,omitempty"`
	// TrainDataPath: Cloud Storage training data path whose format should be
	// `gs:///`. The file should be in tsv format. Each line should have the doc_id
	// and query_id and score (number). For search-tuning model, it should have the
	// query-id corpus-id score as tsv file header. The score should be a number in
	// `[0, inf+)`. The larger the number is, the more relevant the pair is.
	// Example: * `query-id\tcorpus-id\tscore` * `query1\tdoc1\t1`
	TrainDataPath string `json:"trainDataPath,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CorpusDataPath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CorpusDataPath") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTrainCustomModelResponse: Response of the
// TrainCustomModelRequest. This message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1alphaTrainCustomModelResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1alphaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the data.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// Metrics: The metrics of the trained model.
	Metrics map[string]float64 `json:"metrics,omitempty"`
	// ModelName: Fully qualified name of the CustomTuningModel.
	ModelName string `json:"modelName,omitempty"`
	// ModelStatus: The trained model status. Possible values are: * **bad-data**:
	// The training data quality is bad. * **no-improvement**: Tuning didn't
	// improve performance. Won't deploy. * **in-progress**: Model training job
	// creation is in progress. * **training**: Model is actively training. *
	// **evaluating**: The model is evaluating trained metrics. * **indexing**: The
	// model trained metrics are indexing. * **ready**: The model is ready for
	// serving.
	ModelStatus string `json:"modelStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTransactionInfo: A transaction represents
// the entire purchase transaction.
type GoogleCloudDiscoveryengineV1alphaTransactionInfo struct {
	// Cost: All the costs associated with the products. These can be manufacturing
	// costs, shipping expenses not borne by the end user, or any other costs, such
	// that: * Profit = value - tax - cost
	Cost float64 `json:"cost,omitempty"`
	// Currency: Required. Currency code. Use three-character ISO-4217 code.
	Currency string `json:"currency,omitempty"`
	// DiscountValue: The total discount(s) value applied to this transaction. This
	// figure should be excluded from TransactionInfo.value For example, if a user
	// paid TransactionInfo.value amount, then nominal (pre-discount) value of the
	// transaction is the sum of TransactionInfo.value and
	// TransactionInfo.discount_value This means that profit is calculated the same
	// way, regardless of the discount value, and that
	// TransactionInfo.discount_value can be larger than TransactionInfo.value: *
	// Profit = value - tax - cost
	DiscountValue float64 `json:"discountValue,omitempty"`
	// Tax: All the taxes associated with the transaction.
	Tax float64 `json:"tax,omitempty"`
	// TransactionId: The transaction ID with a length limit of 128 characters.
	TransactionId string `json:"transactionId,omitempty"`
	// Value: Required. Total non-zero value associated with the transaction. This
	// value may include shipping, tax, or other adjustments to the total value
	// that you want to include.
	Value float64 `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cost") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaTuneEngineMetadata: Metadata associated
// with a tune operation.
type GoogleCloudDiscoveryengineV1alphaTuneEngineMetadata struct {
	// Engine: Required. The resource name of the engine that this tune applies to.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/engines/
	// {engine_id}`
	Engine string `json:"engine,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Engine") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Engine") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaTuneEngineRequest: Request to manually
// start a tuning process now (instead of waiting for the periodically
// scheduled tuning to happen).
type GoogleCloudDiscoveryengineV1alphaTuneEngineRequest struct {
}

// GoogleCloudDiscoveryengineV1alphaTuneEngineResponse: Response associated
// with a tune operation.
type GoogleCloudDiscoveryengineV1alphaTuneEngineResponse struct {
}

// GoogleCloudDiscoveryengineV1alphaUpdateCmekConfigMetadata: Metadata related
// to the progress of the CmekConfigService.UpdateCmekConfig operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaUpdateCmekConfigMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUpdateCollectionMetadata: Metadata related
// to the progress of the CollectionService.UpdateCollection operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaUpdateCollectionMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUpdateSchemaMetadata: Metadata for
// UpdateSchema LRO.
type GoogleCloudDiscoveryengineV1alphaUpdateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUpdateSessionRequest: Request for
// UpdateSession method.
type GoogleCloudDiscoveryengineV1alphaUpdateSessionRequest struct {
	// Session: Required. The Session to update.
	Session *GoogleCloudDiscoveryengineV1alphaSession `json:"session,omitempty"`
	// UpdateMask: Indicates which fields in the provided Session to update. The
	// following are NOT supported: * Session.name If not set or empty, all
	// supported fields are updated.
	UpdateMask string `json:"updateMask,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Session") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Session") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUpdateTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.UpdateTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1alphaUpdateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUploadSessionFileRequest: Request for the
// AssistantService.UploadSessionFile method.
type GoogleCloudDiscoveryengineV1alphaUploadSessionFileRequest struct {
	// Blob: Information about the file being uploaded.
	Blob *GdataMedia `json:"blob,omitempty"`
	// MediaRequestInfo: Media upload request metadata.
	MediaRequestInfo *ApiservingMediaRequestInfo `json:"mediaRequestInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Blob") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Blob") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUploadSessionFileResponse: Response for the
// AssistantService.UploadSessionFile method.
type GoogleCloudDiscoveryengineV1alphaUploadSessionFileResponse struct {
	// FileId: The ID of the uploaded file.
	FileId string `json:"fileId,omitempty"`
	// MediaResponseInfo: Media upload response metadata.
	MediaResponseInfo *ApiservingMediaResponseInfo `json:"mediaResponseInfo,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FileId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FileId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUserEvent: UserEvent captures all metadata
// information Discovery Engine API needs to know about how end users interact
// with your website.
type GoogleCloudDiscoveryengineV1alphaUserEvent struct {
	// Attributes: Extra user event features to include in the recommendation
	// model. These attributes must NOT contain data that needs to be parsed or
	// processed further, e.g. JSON or other encodings. If you provide custom
	// attributes for ingested user events, also include them in the user events
	// that you associate with prediction requests. Custom attribute formatting
	// must be consistent between imported events and events provided with
	// prediction requests. This lets the Discovery Engine API use those custom
	// attributes when training models and serving predictions, which helps improve
	// recommendation quality. This field needs to pass all below criteria,
	// otherwise an `INVALID_ARGUMENT` error is returned: * The key must be a UTF-8
	// encoded string with a length limit of 5,000 characters. * For text
	// attributes, at most 400 values are allowed. Empty values are not allowed.
	// Each value must be a UTF-8 encoded string with a length limit of 256
	// characters. * For number attributes, at most 400 values are allowed. For
	// product recommendations, an example of extra user information is
	// `traffic_channel`, which is how a user arrives at the site. Users can arrive
	// at the site by coming to the site directly, coming through Google search, or
	// in other ways.
	Attributes map[string]GoogleCloudDiscoveryengineV1alphaCustomAttribute `json:"attributes,omitempty"`
	// AttributionToken: Token to attribute an API response to user action(s) to
	// trigger the event. Highly recommended for user events that are the result of
	// RecommendationService.Recommend. This field enables accurate attribution of
	// recommendation model performance. The value must be one of: *
	// RecommendResponse.attribution_token for events that are the result of
	// RecommendationService.Recommend. * SearchResponse.attribution_token for
	// events that are the result of SearchService.Search. This token enables us to
	// accurately attribute page view or conversion completion back to the event
	// and the particular predict response containing this clicked/purchased
	// product. If user clicks on product K in the recommendation results, pass
	// RecommendResponse.attribution_token as a URL parameter to product K's page.
	// When recording events on product K's page, log the
	// RecommendResponse.attribution_token to this field.
	AttributionToken string `json:"attributionToken,omitempty"`
	// CompletionInfo: CompletionService.CompleteQuery details related to the
	// event. This field should be set for `search` event when autocomplete
	// function is enabled and the user clicks a suggestion for search.
	CompletionInfo *GoogleCloudDiscoveryengineV1alphaCompletionInfo `json:"completionInfo,omitempty"`
	// ConversionType: Optional. Conversion type. Required if UserEvent.event_type
	// is `conversion`. This is a customer-defined conversion name in lowercase
	// letters or numbers separated by "-", such as "watch", "good-visit" etc. Do
	// not set the field if UserEvent.event_type is not `conversion`. This mixes
	// the custom conversion event with predefined events like `search`,
	// `view-item` etc.
	ConversionType string `json:"conversionType,omitempty"`
	// DataStore: The DataStore resource full name, of the form
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. Optional. Only required for user events whose data
	// store can't by determined by UserEvent.engine or UserEvent.documents. If
	// data store is set in the parent of write/import/collect user event requests,
	// this field can be omitted.
	DataStore string `json:"dataStore,omitempty"`
	// DirectUserRequest: Should set to true if the request is made directly from
	// the end user, in which case the UserEvent.user_info.user_agent can be
	// populated from the HTTP request. This flag should be set only if the API
	// request is made directly from the end user such as a mobile app (and not if
	// a gateway or a server is processing and pushing the user events). This
	// should not be set when using the JavaScript tag in
	// UserEventService.CollectUserEvent.
	DirectUserRequest bool `json:"directUserRequest,omitempty"`
	// Documents: List of Documents associated with this user event. This field is
	// optional except for the following event types: * `view-item` * `add-to-cart`
	// * `purchase` * `media-play` * `media-complete` In a `search` event, this
	// field represents the documents returned to the end user on the current page
	// (the end user may have not finished browsing the whole page yet). When a new
	// page is returned to the end user, after pagination/filtering/ordering even
	// for the same query, a new `search` event with different UserEvent.documents
	// is desired.
	Documents []*GoogleCloudDiscoveryengineV1alphaDocumentInfo `json:"documents,omitempty"`
	// Engine: The Engine resource name, in the form of
	// `projects/{project}/locations/{location}/collections/{collection_id}/engines/
	// {engine_id}`. Optional. Only required for Engine produced user events. For
	// example, user events from blended search.
	Engine string `json:"engine,omitempty"`
	// EventTime: Only required for UserEventService.ImportUserEvents method.
	// Timestamp of when the user event happened.
	EventTime string `json:"eventTime,omitempty"`
	// EventType: Required. User event type. Allowed values are: Generic values: *
	// `search`: Search for Documents. * `view-item`: Detailed page view of a
	// Document. * `view-item-list`: View of a panel or ordered list of Documents.
	// * `view-home-page`: View of the home page. * `view-category-page`: View of a
	// category page, e.g. Home > Men > Jeans Retail-related values: *
	// `add-to-cart`: Add an item(s) to cart, e.g. in Retail online shopping *
	// `purchase`: Purchase an item(s) Media-related values: * `media-play`:
	// Start/resume watching a video, playing a song, etc. * `media-complete`:
	// Finished or stopped midway through a video, song, etc. Custom conversion
	// value: * `conversion`: Customer defined conversion event.
	EventType string `json:"eventType,omitempty"`
	// Filter: The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. One example is for `search` events, the associated SearchRequest
	// may contain a filter expression in SearchRequest.filter conforming to
	// https://google.aip.dev/160#filtering. Similarly, for `view-item-list` events
	// that are generated from a RecommendRequest, this field may be populated
	// directly from RecommendRequest.filter conforming to
	// https://google.aip.dev/160#filtering. The value must be a UTF-8 encoded
	// string with a length limit of 1,000 characters. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	Filter string `json:"filter,omitempty"`
	// MediaInfo: Media-specific info.
	MediaInfo *GoogleCloudDiscoveryengineV1alphaMediaInfo `json:"mediaInfo,omitempty"`
	// PageInfo: Page metadata such as categories and other critical information
	// for certain event types such as `view-category-page`.
	PageInfo *GoogleCloudDiscoveryengineV1alphaPageInfo `json:"pageInfo,omitempty"`
	// Panel: Panel metadata associated with this user event.
	Panel *GoogleCloudDiscoveryengineV1alphaPanelInfo `json:"panel,omitempty"`
	// Panels: Optional. List of panels associated with this event. Used for
	// page-level impression data.
	Panels []*GoogleCloudDiscoveryengineV1alphaPanelInfo `json:"panels,omitempty"`
	// PromotionIds: The promotion IDs if this is an event associated with
	// promotions. Currently, this field is restricted to at most one ID.
	PromotionIds []string `json:"promotionIds,omitempty"`
	// SearchInfo: SearchService.Search details related to the event. This field
	// should be set for `search` event.
	SearchInfo *GoogleCloudDiscoveryengineV1alphaSearchInfo `json:"searchInfo,omitempty"`
	// SessionId: A unique identifier for tracking a visitor session with a length
	// limit of 128 bytes. A session is an aggregation of an end user behavior in a
	// time span. A general guideline to populate the session_id: 1. If user has no
	// activity for 30 min, a new session_id should be assigned. 2. The session_id
	// should be unique across users, suggest use uuid or add
	// UserEvent.user_pseudo_id as prefix.
	SessionId string `json:"sessionId,omitempty"`
	// TagIds: A list of identifiers for the independent experiment groups this
	// user event belongs to. This is used to distinguish between user events
	// associated with different experiment setups.
	TagIds []string `json:"tagIds,omitempty"`
	// TransactionInfo: The transaction metadata (if any) associated with this user
	// event.
	TransactionInfo *GoogleCloudDiscoveryengineV1alphaTransactionInfo `json:"transactionInfo,omitempty"`
	// UserInfo: Information about the end user.
	UserInfo *GoogleCloudDiscoveryengineV1alphaUserInfo `json:"userInfo,omitempty"`
	// UserPseudoId: Required. A unique identifier for tracking visitors. For
	// example, this could be implemented with an HTTP cookie, which should be able
	// to uniquely identify a visitor on a single device. This unique identifier
	// should not change if the visitor log in/out of the website. Do not set the
	// field to the same fixed ID for different users. This mixes the event history
	// of those users together, which results in degraded model quality. The field
	// must be a UTF-8 encoded string with a length limit of 128 characters.
	// Otherwise, an `INVALID_ARGUMENT` error is returned. The field should not
	// contain PII or user-data. We recommend to use Google Analytics Client ID
	// (https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId)
	// for this field.
	UserPseudoId string `json:"userPseudoId,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 GoogleCloudDiscoveryengineV1alphaUserEvent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaUserEvent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaUserInfo: Information of an end user.
type GoogleCloudDiscoveryengineV1alphaUserInfo struct {
	// TimeZone: Optional. IANA time zone, e.g. Europe/Budapest.
	TimeZone string `json:"timeZone,omitempty"`
	// UserAgent: User agent as included in the HTTP header. The field must be a
	// UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an
	// `INVALID_ARGUMENT` error is returned. This should not be set when using the
	// client side event reporting with GTM or JavaScript tag in
	// UserEventService.CollectUserEvent or if UserEvent.direct_user_request is
	// set.
	UserAgent string `json:"userAgent,omitempty"`
	// UserId: Highly recommended for logged-in users. Unique identifier for
	// logged-in user, such as a user name. Don't set for anonymous users. Always
	// use a hashed value for this ID. Don't set the field to the same fixed ID for
	// different users. This mixes the event history of those users together, which
	// results in degraded model quality. The field must be a UTF-8 encoded string
	// with a length limit of 128 characters. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	UserId string `json:"userId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TimeZone") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeZone") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUserLicense: User License information
// assigned by the admin.
type GoogleCloudDiscoveryengineV1alphaUserLicense struct {
	// CreateTime: Output only. User created timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// LastLoginTime: Output only. User last logged in time. If the user has not
	// logged in yet, this field will be empty.
	LastLoginTime string `json:"lastLoginTime,omitempty"`
	// LicenseAssignmentState: Output only. License assignment state of the user.
	// If the user is assigned with a license config, the user login will be
	// assigned with the license; If the user's license assignment state is
	// unassigned or unspecified, no license config will be associated to the user;
	//
	// Possible values:
	//   "LICENSE_ASSIGNMENT_STATE_UNSPECIFIED" - Default value.
	//   "ASSIGNED" - License assigned to the user.
	//   "UNASSIGNED" - No license assigned to the user. Deprecated, translated to
	// NO_LICENSE.
	//   "NO_LICENSE" - No license assigned to the user.
	//   "NO_LICENSE_ATTEMPTED_LOGIN" - User attempted to login but no license
	// assigned to the user. This state is only used for no user first time login
	// attempt but cannot get license assigned. Users already logged in but cannot
	// get license assigned will be assigned NO_LICENSE state(License could be
	// unassigned by admin).
	//   "BLOCKED" - User is blocked from assigning a license.
	LicenseAssignmentState string `json:"licenseAssignmentState,omitempty"`
	// LicenseConfig: Optional. The full resource name of the
	// Subscription(LicenseConfig) assigned to the user.
	LicenseConfig string `json:"licenseConfig,omitempty"`
	// UpdateTime: Output only. User update timestamp.
	UpdateTime string `json:"updateTime,omitempty"`
	// UserPrincipal: Required. Immutable. The user principal of the User, could be
	// email address or other prinical identifier. This field is immutable. Admin
	// assign licenses based on the user principal.
	UserPrincipal string `json:"userPrincipal,omitempty"`
	// UserProfile: Optional. The user profile. We user user full name(First name +
	// Last name) as user profile.
	UserProfile string `json:"userProfile,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaUserStore: Configures metadata that is used
// for End User entities.
type GoogleCloudDiscoveryengineV1alphaUserStore struct {
	// DefaultLicenseConfig: Optional. The default subscription LicenseConfig for
	// the UserStore, if UserStore.enable_license_auto_register is true, new users
	// will automatically register under the default subscription. If default
	// LicenseConfig doesn't have remaining license seats left, new users will not
	// be assigned with license and will be blocked for Vertex AI Search features.
	// This is used if `license_assignment_tier_rules` is not configured.
	DefaultLicenseConfig string `json:"defaultLicenseConfig,omitempty"`
	// DisplayName: The display name of the User Store.
	DisplayName string `json:"displayName,omitempty"`
	// EnableExpiredLicenseAutoUpdate: Optional. Whether to enable license auto
	// update for users in this User Store. If true, users with expired licenses
	// will automatically be updated to use the default license config as long as
	// the default license config has seats left.
	EnableExpiredLicenseAutoUpdate bool `json:"enableExpiredLicenseAutoUpdate,omitempty"`
	// EnableLicenseAutoRegister: Optional. Whether to enable license auto register
	// for users in this User Store. If true, new users will automatically register
	// under the default license config as long as the default license config has
	// seats left.
	EnableLicenseAutoRegister bool `json:"enableLicenseAutoRegister,omitempty"`
	// Name: Immutable. The full resource name of the User Store, in the format of
	// `projects/{project}/locations/{location}/userStores/{user_store}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "DefaultLicenseConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLicenseConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaVideoCharacteristics: Standard
// characteristics of a video media view.
type GoogleCloudDiscoveryengineV1alphaVideoCharacteristics struct {
	// AudioBitrateKbps: Output only. Bitrate of the audio in kbps.
	AudioBitrateKbps int64 `json:"audioBitrateKbps,omitempty"`
	// AudioCodecs: Output only. Audio codecs used in the video.
	AudioCodecs []string `json:"audioCodecs,omitempty"`
	// Duration: Output only. Video duration.
	Duration string `json:"duration,omitempty"`
	// FrameRate: Output only. Frame rate (frames per second).
	FrameRate float64 `json:"frameRate,omitempty"`
	// Height: Output only. Video height in pixels.
	Height int64 `json:"height,omitempty"`
	// VideoBitrateKbps: Output only. Bitrate of the video in kbps.
	VideoBitrateKbps int64 `json:"videoBitrateKbps,omitempty"`
	// VideoCodecs: Output only. Video codecs used in the video.
	VideoCodecs []string `json:"videoCodecs,omitempty"`
	// Width: Output only. Video width in pixels.
	Width int64 `json:"width,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioBitrateKbps") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioBitrateKbps") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfig: WidgetConfig captures configs
// at the Widget level.
type GoogleCloudDiscoveryengineV1alphaWidgetConfig struct {
	// AccessSettings: Will be used for all widget access settings seen in cloud
	// console integration page. Replaces top deprecated top level properties.
	AccessSettings *GoogleCloudDiscoveryengineV1alphaWidgetConfigAccessSettings `json:"accessSettings,omitempty"`
	// AllowPublicAccess: Whether allow no-auth integration with widget. If set
	// true, public access to search or other solutions from widget is allowed
	// without authenication token provided by customer hosted backend server.
	AllowPublicAccess bool `json:"allowPublicAccess,omitempty"`
	// AllowlistedDomains: Allowlisted domains that can load this widget.
	AllowlistedDomains []string `json:"allowlistedDomains,omitempty"`
	// AssistantSettings: Optional. Output only. Describes the assistant settings
	// of the widget.
	AssistantSettings *GoogleCloudDiscoveryengineV1alphaWidgetConfigAssistantSettings `json:"assistantSettings,omitempty"`
	// CollectionComponents: Output only. Collection components that lists all
	// collections and child data stores associated with the widget config, those
	// data sources can be used for filtering in widget service APIs, users can
	// return results that from selected data sources.
	CollectionComponents []*GoogleCloudDiscoveryengineV1alphaWidgetConfigCollectionComponent `json:"collectionComponents,omitempty"`
	// ConfigId: Output only. Unique obfuscated identifier of a WidgetConfig.
	ConfigId string `json:"configId,omitempty"`
	// ContentSearchSpec: The content search spec that configs the desired behavior
	// of content search.
	ContentSearchSpec *GoogleCloudDiscoveryengineV1alphaSearchRequestContentSearchSpec `json:"contentSearchSpec,omitempty"`
	// CreateTime: Output only. Timestamp the WidgetConfig was created.
	CreateTime string `json:"createTime,omitempty"`
	// CustomerProvidedConfig: Optional. Output only. Describes the customer
	// related configurations, currently only used for government customers. This
	// field cannot be modified after project onboarding.
	CustomerProvidedConfig *GoogleCloudDiscoveryengineV1alphaWidgetConfigCustomerProvidedConfig `json:"customerProvidedConfig,omitempty"`
	// DataStoreType: Output only. The type of the parent data store.
	//
	// Possible values:
	//   "DATA_STORE_TYPE_UNSPECIFIED" - Unspecified data store type.
	//   "SITE_SEARCH" - The parent data store contains a site search engine.
	//   "STRUCTURED" - The parent data store contains a search engine for
	// structured data.
	//   "UNSTRUCTURED" - The parent data store contains a search engine for
	// unstructured data.
	//   "BLENDED" - The parent data store is served for blended search with
	// multiple data stores.
	DataStoreType string `json:"dataStoreType,omitempty"`
	// DataStoreUiConfigs: Configurable UI configurations per data store.
	DataStoreUiConfigs []*GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreUiConfig `json:"dataStoreUiConfigs,omitempty"`
	// DefaultSearchRequestOrderBy: The default ordering for search results if
	// specified. Used to set SearchRequest#order_by on applicable requests.
	// https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/projects.locations.dataStores.servingConfigs/search#request-body
	DefaultSearchRequestOrderBy string `json:"defaultSearchRequestOrderBy,omitempty"`
	// DisplayName: Required. The human readable widget config display name. Used
	// in Discovery UI. This field must be a UTF-8 encoded string with a length
	// limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// EnableAutocomplete: Whether or not to enable autocomplete.
	EnableAutocomplete bool `json:"enableAutocomplete,omitempty"`
	// EnableConversationalSearch: Whether to allow conversational search (LLM,
	// multi-turn) or not (non-LLM, single-turn).
	EnableConversationalSearch bool `json:"enableConversationalSearch,omitempty"`
	// EnablePrivateKnowledgeGraph: Optional. Output only. Whether to enable
	// private knowledge graph.
	EnablePrivateKnowledgeGraph bool `json:"enablePrivateKnowledgeGraph,omitempty"`
	// EnableQualityFeedback: Turn on or off collecting the search result quality
	// feedback from end users.
	EnableQualityFeedback bool `json:"enableQualityFeedback,omitempty"`
	// EnableResultScore: Whether to show the result score.
	EnableResultScore bool `json:"enableResultScore,omitempty"`
	// EnableSafeSearch: Whether to enable safe search.
	EnableSafeSearch bool `json:"enableSafeSearch,omitempty"`
	// EnableSearchAsYouType: Whether to enable search-as-you-type behavior for the
	// search widget
	EnableSearchAsYouType bool `json:"enableSearchAsYouType,omitempty"`
	// EnableSnippetResultSummary: Turn on or off summary for each snippets result.
	EnableSnippetResultSummary bool `json:"enableSnippetResultSummary,omitempty"`
	// EnableSummarization: Turn on or off summarization for the search response.
	EnableSummarization bool `json:"enableSummarization,omitempty"`
	// EnableWebApp: Whether to enable standalone web app.
	EnableWebApp bool `json:"enableWebApp,omitempty"`
	// ExperimentalFeatures: Allows to toggle unstable/experimental features in the
	// widget (or web app)
	ExperimentalFeatures map[string]string `json:"experimentalFeatures,omitempty"`
	// FacetField: The configuration and appearance of facets in the end user view.
	FacetField []*GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField `json:"facetField,omitempty"`
	// FieldsUiComponentsMap: The key is the UI component. Mock. Currently
	// supported `title`, `thumbnail`, `url`, `custom1`, `custom2`, `custom3`. The
	// value is the name of the field along with its device visibility. The 3
	// custom fields are optional and can be added or removed. `title`,
	// `thumbnail`, `url` are required UI components that cannot be removed.
	FieldsUiComponentsMap map[string]GoogleCloudDiscoveryengineV1alphaWidgetConfigUIComponentField `json:"fieldsUiComponentsMap,omitempty"`
	// HomepageSetting: Optional. Describes the homepage settings of the widget.
	HomepageSetting *GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSetting `json:"homepageSetting,omitempty"`
	// IndustryVertical: Output only. The industry vertical that the WidgetConfig
	// registers. The WidgetConfig industry vertical is based on the associated
	// Engine.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// LlmEnabled: Output only. Whether LLM is enabled in the corresponding data
	// store.
	LlmEnabled bool `json:"llmEnabled,omitempty"`
	// MinimumDataTermAccepted: Output only. Whether the customer accepted data use
	// terms.
	MinimumDataTermAccepted bool `json:"minimumDataTermAccepted,omitempty"`
	// Name: Immutable. The full resource name of the widget config. Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}/widgetConfigs/{widget_config_id}`. This field must be a
	// UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ResultDisplayType: The type of snippet to display in UCS widget. -
	// RESULT_DISPLAY_TYPE_UNSPECIFIED for existing users. - SNIPPET for new
	// non-enterprise search users. - EXTRACTIVE_ANSWER for new enterprise search
	// users.
	//
	// Possible values:
	//   "RESULT_DISPLAY_TYPE_UNSPECIFIED" - Unspecified display type (default to
	// showing snippet).
	//   "SNIPPET" - Display results from the snippet field.
	//   "EXTRACTIVE_ANSWER" - Display results from extractive answers field.
	ResultDisplayType string `json:"resultDisplayType,omitempty"`
	// SolutionType: Required. Immutable. Specifies the solution type that this
	// WidgetConfig can be used for.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// UiBranding: Describes search widget UI branding settings, such as the widget
	// title, logo, favicons, and colors.
	UiBranding *GoogleCloudDiscoveryengineV1alphaWidgetConfigUiBrandingSettings `json:"uiBranding,omitempty"`
	// UiSettings: Describes general widget search settings as seen in cloud
	// console widget configuration page. Replaces top deprecated top level
	// properties.
	UiSettings *GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettings `json:"uiSettings,omitempty"`
	// UpdateTime: Output only. Timestamp the WidgetConfig was updated.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AccessSettings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccessSettings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigAccessSettings: Describes
// widget access settings.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigAccessSettings struct {
	// AllowPublicAccess: Whether public unauthenticated access is allowed.
	AllowPublicAccess bool `json:"allowPublicAccess,omitempty"`
	// AllowlistedDomains: List of domains that are allowed to integrate the search
	// widget.
	AllowlistedDomains []string `json:"allowlistedDomains,omitempty"`
	// EnableWebApp: Whether web app access is enabled.
	EnableWebApp bool `json:"enableWebApp,omitempty"`
	// LanguageCode: Optional. Language code for user interface. Use language tags
	// defined by BCP47 (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). If unset,
	// the default language code is "en-US".
	LanguageCode string `json:"languageCode,omitempty"`
	// WorkforceIdentityPoolProvider: Optional. The workforce identity pool
	// provider used to access the widget.
	WorkforceIdentityPoolProvider string `json:"workforceIdentityPoolProvider,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowPublicAccess") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowPublicAccess") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigAssistantSettings: Describes
// the assistant settings of the widget.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigAssistantSettings struct {
	// DefaultWebGroundingToggleOff: Output only. This field controls the default
	// web grounding toggle for end users if `web_grounding_type` is set to
	// `WEB_GROUNDING_TYPE_GOOGLE_SEARCH` or
	// `WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH`. By default, this field is set to
	// false. If `web_grounding_type` is `WEB_GROUNDING_TYPE_GOOGLE_SEARCH` or
	// `WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH`, end users will have web
	// grounding enabled by default on UI. If true, grounding toggle will be
	// disabled by default on UI. End users can still enable web grounding in the
	// UI if web grounding is enabled.
	DefaultWebGroundingToggleOff bool `json:"defaultWebGroundingToggleOff,omitempty"`
	// DisableLocationContext: Optional. Output only. Whether to disable user
	// location context.
	DisableLocationContext bool `json:"disableLocationContext,omitempty"`
	// GoogleSearchGroundingEnabled: Whether or not the Google search grounding
	// toggle is shown. Deprecated. Use web_grounding_type instead.
	GoogleSearchGroundingEnabled bool `json:"googleSearchGroundingEnabled,omitempty"`
	// WebGroundingType: Optional. The type of web grounding to use.
	//
	// Possible values:
	//   "WEB_GROUNDING_TYPE_UNSPECIFIED" - Default, unspecified setting. This is
	// the same as disabled.
	//   "WEB_GROUNDING_TYPE_DISABLED" - Web grounding is disabled.
	//   "WEB_GROUNDING_TYPE_GOOGLE_SEARCH" - Grounding with Google Search is
	// enabled.
	//   "WEB_GROUNDING_TYPE_ENTERPRISE_WEB_SEARCH" - Grounding with Enterprise Web
	// Search is enabled.
	WebGroundingType string `json:"webGroundingType,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DefaultWebGroundingToggleOff") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultWebGroundingToggleOff") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigCollectionComponent: Read-only
// collection component that contains data store collections fields that may be
// used for filtering
type GoogleCloudDiscoveryengineV1alphaWidgetConfigCollectionComponent struct {
	// ConnectorIconLink: Output only. The icon link of the connector source.
	ConnectorIconLink string `json:"connectorIconLink,omitempty"`
	// DataSource: The name of the data source, retrieved from
	// `Collection.data_connector.data_source`.
	DataSource string `json:"dataSource,omitempty"`
	// DataSourceDisplayName: Output only. The display name of the data source.
	DataSourceDisplayName string `json:"dataSourceDisplayName,omitempty"`
	// DataStoreComponents: For the data store collection, list of the children
	// data stores.
	DataStoreComponents []*GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreComponent `json:"dataStoreComponents,omitempty"`
	// DisplayName: The display name of the collection.
	DisplayName string `json:"displayName,omitempty"`
	// Id: Output only. the identifier of the collection, used for widget service.
	// For now it refers to collection_id, in the future we will migrate the field
	// to encrypted collection name UUID.
	Id string `json:"id,omitempty"`
	// Name: The name of the collection. It should be collection resource name.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}`. For
	// APIs under WidgetService, such as WidgetService.LookUpWidgetConfig, the
	// project number and location part is erased in this field.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectorIconLink") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorIconLink") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigCustomerProvidedConfig:
// Customer provided configurations.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigCustomerProvidedConfig struct {
	// CustomerType: Customer type.
	//
	// Possible values:
	//   "DEFAULT_CUSTOMER" - Default customer type.
	//   "GOVERNMENT_CUSTOMER" - Government customer type. Some features are
	// disabled for government customers due to legal requirements.
	CustomerType string `json:"customerType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomerType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomerType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreComponent: Read-only
// data store component that contains data stores fields that may be used for
// filtering, it's the child of `CollectionComponent`.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreComponent struct {
	// ContentConfig: Output only. The content config of the data store.
	//
	// Possible values:
	//   "CONTENT_CONFIG_UNSPECIFIED" - Default value.
	//   "NO_CONTENT" - Only contains documents without any Document.content.
	//   "CONTENT_REQUIRED" - Only contains documents with Document.content.
	//   "PUBLIC_WEBSITE" - The data store is used for public website search.
	//   "GOOGLE_WORKSPACE" - The data store is used for workspace search. Details
	// of workspace data store are specified in the WorkspaceConfig.
	ContentConfig string `json:"contentConfig,omitempty"`
	// DataStoreConfigType: Output only. The type of the data store config.
	//
	// Possible values:
	//   "DATA_STORE_CONFIG_TYPE_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "ALLOW_DB_CONFIG" - The data store is connected to AlloyDB
	//   "THIRD_PARTY_OAUTH_CONFIG" - The data store is a connected to a third
	// party data source.
	//   "NOTEBOOKLM_CONFIG" - The data store is a connected to NotebookLM
	// Enterprise.
	DataStoreConfigType string `json:"dataStoreConfigType,omitempty"`
	// DisplayName: The display name of the data store.
	DisplayName string `json:"displayName,omitempty"`
	// EntityName: The name of the entity, retrieved from
	// `Collection.data_connector.entities.entityName`.
	EntityName string `json:"entityName,omitempty"`
	// Id: Output only. the identifier of the data store, used for widget service.
	// For now it refers to data_store_id, in the future we will migrate the field
	// to encrypted data store name UUID.
	Id string `json:"id,omitempty"`
	// Name: The name of the data store. It should be data store resource name
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. For APIs under WidgetService, such as
	// WidgetService.LookUpWidgetConfig, the project number and location part is
	// erased in this field.
	Name string `json:"name,omitempty"`
	// WorkspaceType: Output only. Workspace Source Types for workspace data,
	// retrieved from `DataStore.workspace_config.type`.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Defaults to an unspecified Workspace type.
	//   "GOOGLE_DRIVE" - Workspace Data Store contains Drive data
	//   "GOOGLE_MAIL" - Workspace Data Store contains Mail data
	//   "GOOGLE_SITES" - Workspace Data Store contains Sites data
	//   "GOOGLE_CALENDAR" - Workspace Data Store contains Calendar data
	//   "GOOGLE_CHAT" - Workspace Data Store contains Chat data
	//   "GOOGLE_GROUPS" - Workspace Data Store contains Groups data
	//   "GOOGLE_KEEP" - Workspace Data Store contains Keep data
	//   "GOOGLE_PEOPLE" - Workspace Data Store contains People data
	WorkspaceType string `json:"workspaceType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContentConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContentConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreUiConfig: UI component
// configuration for data store.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreUiConfig struct {
	// FacetField: Facet fields that store the mapping of fields to end user widget
	// appearance.
	FacetField []*GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField `json:"facetField,omitempty"`
	// FieldsUiComponentsMap: The key is the UI component. Mock. Currently
	// supported `title`, `thumbnail`, `url`, `custom1`, `custom2`, `custom3`. The
	// value is the name of the field along with its device visibility. The 3
	// custom fields are optional and can be added or removed. `title`,
	// `thumbnail`, `url` are required UI components that cannot be removed.
	FieldsUiComponentsMap map[string]GoogleCloudDiscoveryengineV1alphaWidgetConfigUIComponentField `json:"fieldsUiComponentsMap,omitempty"`
	// Id: Output only. the identifier of the data store, used for widget service.
	// For now it refers to data_store_id, in the future we will migrate the field
	// to encrypted data store name UUID.
	Id string `json:"id,omitempty"`
	// Name: The name of the data store. It should be data store resource name
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. For APIs under WidgetService, such as
	// WidgetService.LookUpWidgetConfig, the project number and location part is
	// erased in this field.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FacetField") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FacetField") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField: Facet fields that
// store the mapping of fields to end user widget appearance.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField struct {
	// DisplayName: Optional. The field name that end users will see.
	DisplayName string `json:"displayName,omitempty"`
	// Field: Required. Registered field name. The format is `field.abc`.
	Field string `json:"field,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 GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaWidgetConfigFacetField
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSetting: Describes the
// homepage setting of the widget. It includes all homepage related settings
// and configurations, such as shortcuts.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSetting struct {
	// Shortcuts: Optional. The shortcuts to display on the homepage.
	// LINT.IfChange(max_shortcuts_number)
	// LINT.ThenChange(//depot/google3/cloud/console/web/ai/unified_cloud_search/com
	// ponents/widget_preview/widget_homepage_shortcut_config_form.ts:max_shortcuts_
	// number)
	Shortcuts []*GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSettingShortcut `json:"shortcuts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Shortcuts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Shortcuts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSettingShortcut:
// Describes an entity of shortcut (aka pinned content) on the homepage. The
// home page will render these shortcuts in the same order as what the API
// returns. If a customer wants to reorder or remove a shortcut, the UI should
// always provide the new full list of shortcuts.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigHomepageSettingShortcut struct {
	// DestinationUri: Optional. Destination URL of shortcut.
	DestinationUri string `json:"destinationUri,omitempty"`
	// Icon: Optional. Icon URL of shortcut.
	Icon *GoogleCloudDiscoveryengineV1alphaWidgetConfigImage `json:"icon,omitempty"`
	// Title: Optional. Title of the shortcut.
	Title string `json:"title,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DestinationUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DestinationUri") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigImage: Options to store an
// image.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigImage struct {
	// Url: Image URL.
	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 GoogleCloudDiscoveryengineV1alphaWidgetConfigImage) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1alphaWidgetConfigImage
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1alphaWidgetConfigUIComponentField: Facet field
// that maps to a UI Component.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigUIComponentField struct {
	// DeviceVisibility: The field visibility on different types of devices.
	//
	// Possible values:
	//   "DEVICE_VISIBILITY_UNSPECIFIED" - Default value when not specified. Server
	// returns INVALID_ARGUMENT if used in requests.
	//   "MOBILE" - The UI component is visible on Mobile devices.
	//   "DESKTOP" - The UI component is visible on Browser-based client.
	DeviceVisibility []string `json:"deviceVisibility,omitempty"`
	// DisplayTemplate: The template to customize how the field is displayed. An
	// example value would be a string that looks like: "Price: {value}".
	DisplayTemplate string `json:"displayTemplate,omitempty"`
	// Field: Required. Registered field name. The format is `field.abc`.
	Field string `json:"field,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeviceVisibility") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeviceVisibility") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettings: Describes general
// widget (or web app) UI settings as seen in the cloud console UI
// configuration page.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettings struct {
	// DataStoreUiConfigs: Per data store configuration.
	DataStoreUiConfigs []*GoogleCloudDiscoveryengineV1alphaWidgetConfigDataStoreUiConfig `json:"dataStoreUiConfigs,omitempty"`
	// DefaultSearchRequestOrderBy: The default ordering for search results if
	// specified. Used to set SearchRequest#order_by on applicable requests.
	// https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/projects.locations.dataStores.servingConfigs/search#request-body
	DefaultSearchRequestOrderBy string `json:"defaultSearchRequestOrderBy,omitempty"`
	// DisableUserEventsCollection: If set to true, the widget will not collect
	// user events.
	DisableUserEventsCollection bool `json:"disableUserEventsCollection,omitempty"`
	// EnableAutocomplete: Whether or not to enable autocomplete.
	EnableAutocomplete bool `json:"enableAutocomplete,omitempty"`
	// EnableCreateAgentButton: Optional. If set to true, the widget will enable
	// the create agent button.
	EnableCreateAgentButton bool `json:"enableCreateAgentButton,omitempty"`
	// EnablePeopleSearch: Optional. If set to true, the widget will enable people
	// search.
	EnablePeopleSearch bool `json:"enablePeopleSearch,omitempty"`
	// EnableQualityFeedback: Turn on or off collecting the search result quality
	// feedback from end users.
	EnableQualityFeedback bool `json:"enableQualityFeedback,omitempty"`
	// EnableSafeSearch: Whether to enable safe search.
	EnableSafeSearch bool `json:"enableSafeSearch,omitempty"`
	// EnableSearchAsYouType: Whether to enable search-as-you-type behavior for the
	// search widget.
	EnableSearchAsYouType bool `json:"enableSearchAsYouType,omitempty"`
	// EnableVisualContentSummary: If set to true, the widget will enable visual
	// content summary on applicable search requests. Only used by healthcare
	// search.
	EnableVisualContentSummary bool `json:"enableVisualContentSummary,omitempty"`
	// Features: Output only. Feature config for the engine to opt in or opt out of
	// features. Supported keys: * `agent-gallery` * `no-code-agent-builder` *
	// `prompt-gallery` * `model-selector` * `notebook-lm` * `people-search` *
	// `people-search-org-chart` * `bi-directional-audio` * `feedback` *
	// `session-sharing` * `personalization-memory` * `disable-agent-sharing` *
	// `disable-image-generation` * `disable-video-generation` *
	// `disable-onedrive-upload` * `disable-talk-to-content` *
	// `disable-google-drive-upload`
	Features map[string]string `json:"features,omitempty"`
	// GenerativeAnswerConfig: Describes generative answer configuration.
	GenerativeAnswerConfig *GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettingsGenerativeAnswerConfig `json:"generativeAnswerConfig,omitempty"`
	// InteractionType: Describes widget (or web app) interaction type
	//
	// Possible values:
	//   "INTERACTION_TYPE_UNSPECIFIED" - Not specified. Defaults to SEARCH_ONLY.
	//   "SEARCH_ONLY" - Search without a generative answer.
	//   "SEARCH_WITH_ANSWER" - Search with the generative answer.
	//   "SEARCH_WITH_FOLLOW_UPS" - Search with the generative answer that supports
	// follow up questions. Also known as multi-turn search.
	InteractionType string `json:"interactionType,omitempty"`
	// ResultDescriptionType: Controls whether result extract is display and how
	// (snippet or extractive answer). Default to no result if unspecified.
	//
	// Possible values:
	//   "RESULT_DISPLAY_TYPE_UNSPECIFIED" - Unspecified display type (default to
	// showing snippet).
	//   "SNIPPET" - Display results from the snippet field.
	//   "EXTRACTIVE_ANSWER" - Display results from extractive answers field.
	ResultDescriptionType string `json:"resultDescriptionType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStoreUiConfigs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStoreUiConfigs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettingsGenerativeAnswerConfig
// : Describes configuration for generative answer.
type GoogleCloudDiscoveryengineV1alphaWidgetConfigUiSettingsGenerativeAnswerConfig struct {
	// DisableRelatedQuestions: Whether generated answer contains suggested related
	// questions.
	DisableRelatedQuestions bool `json:"disableRelatedQuestions,omitempty"`
	// IgnoreAdversarialQuery: Optional. Specifies whether to filter out queries
	// that are adversarial.
	IgnoreAdversarialQuery bool `json:"ignoreAdversarialQuery,omitempty"`
	// IgnoreLowRelevantContent: Optional. Specifies whether to filter out queries
	// that are not relevant to the content.
	IgnoreLowRelevantContent bool `json:"ignoreLowRelevantContent,omitempty"`
	// IgnoreNonAnswerSeekingQuery: Optional. Specifies whether to filter out
	// queries that are not answer-seeking. The default value is `false`. No answer
	// is returned if the search query is classified as a non-answer seeking query.
	// If this field is set to `true`, we skip generating answers for non-answer
	// seeking queries and return fallback messages instead.
	IgnoreNonAnswerSeekingQuery bool `json:"ignoreNonAnswerSeekingQuery,omitempty"`
	// ImageSource: Optional. Source of image returned in the answer.
	//
	// Possible values:
	//   "IMAGE_SOURCE_UNSPECIFIED" - Unspecified image source (multimodal feature
	// is disabled by default)
	//   "ALL_AVAILABLE_SOURCES" - Behavior when service determines the pick from
	// all available sources.
	//   "CORPUS_IMAGE_ONLY" - Include image from corpus in the answer.
	//   "FIGURE_GENERATION_ONLY" - Triggers figure generation in the answer.
	ImageSource string `json:"imageSource,omitempty"`
	// LanguageCode: Language code for Summary. Use language tags defined by BCP47
	// (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This is an
	// experimental feature.
	LanguageCode string `json:"languageCode,omitempty"`
	// MaxRephraseSteps: Max rephrase steps. The max number is 5 steps. If not set
	// or set to < 1, it will be set to 1 by default.
	MaxRephraseSteps int64 `json:"maxRephraseSteps,omitempty"`
	// ModelPromptPreamble: Text at the beginning of the prompt that instructs the
	// model that generates the answer.
	ModelPromptPreamble string `json:"modelPromptPreamble,omitempty"`
	// ModelVersion: The model version used to generate the answer.
	ModelVersion string `json:"modelVersion,omitempty"`
	// ResultCount: The number of top results to generate the answer from. Up to
	// 10.
	ResultCount int64 `json:"resultCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableRelatedQuestions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableRelatedQuestions") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWorkspaceConfig: Config to store data store
// type configuration for workspace data
type GoogleCloudDiscoveryengineV1alphaWorkspaceConfig struct {
	// DasherCustomerId: Obfuscated Dasher customer ID.
	DasherCustomerId string `json:"dasherCustomerId,omitempty"`
	// SuperAdminEmailAddress: Optional. The super admin email address for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminEmailAddress string `json:"superAdminEmailAddress,omitempty"`
	// SuperAdminServiceAccount: Optional. The super admin service account for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminServiceAccount string `json:"superAdminServiceAccount,omitempty"`
	// Type: The Google Workspace data source.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Defaults to an unspecified Workspace type.
	//   "GOOGLE_DRIVE" - Workspace Data Store contains Drive data
	//   "GOOGLE_MAIL" - Workspace Data Store contains Mail data
	//   "GOOGLE_SITES" - Workspace Data Store contains Sites data
	//   "GOOGLE_CALENDAR" - Workspace Data Store contains Calendar data
	//   "GOOGLE_CHAT" - Workspace Data Store contains Chat data
	//   "GOOGLE_GROUPS" - Workspace Data Store contains Groups data
	//   "GOOGLE_KEEP" - Workspace Data Store contains Keep data
	//   "GOOGLE_PEOPLE" - Workspace Data Store contains People data
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DasherCustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DasherCustomerId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1alphaWorkspaceSettings: Workspace settings for
// the end user.
type GoogleCloudDiscoveryengineV1alphaWorkspaceSettings struct {
	// WorkspaceAccessEnabled: Whether an end user has workspace access enabled.
	WorkspaceAccessEnabled bool `json:"workspaceAccessEnabled,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "WorkspaceAccessEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WorkspaceAccessEnabled") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaAclConfig: Access Control Configuration.
type GoogleCloudDiscoveryengineV1betaAclConfig struct {
	// IdpConfig: Identity provider config.
	IdpConfig *GoogleCloudDiscoveryengineV1betaIdpConfig `json:"idpConfig,omitempty"`
	// Name: Immutable. The full resource name of the acl configuration. Format:
	// `projects/{project}/locations/{location}/aclConfig`. This field must be a
	// UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IdpConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaAdvancedSiteSearchConfig: Configuration data
// for advance site search.
type GoogleCloudDiscoveryengineV1betaAdvancedSiteSearchConfig struct {
	// DisableAutomaticRefresh: If set true, automatic refresh is disabled for the
	// DataStore.
	DisableAutomaticRefresh bool `json:"disableAutomaticRefresh,omitempty"`
	// DisableInitialIndex: If set true, initial indexing is disabled for the
	// DataStore.
	DisableInitialIndex bool `json:"disableInitialIndex,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableAutomaticRefresh") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaBatchCreateTargetSiteMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.BatchCreateTargetSites operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaBatchCreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaBatchCreateTargetSitesResponse: Response
// message for SiteSearchEngineService.BatchCreateTargetSites method.
type GoogleCloudDiscoveryengineV1betaBatchCreateTargetSitesResponse struct {
	// TargetSites: TargetSites created.
	TargetSites []*GoogleCloudDiscoveryengineV1betaTargetSite `json:"targetSites,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetSites") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetSites") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaBatchUpdateUserLicensesMetadata: Metadata
// related to the progress of the UserLicenseService.BatchUpdateUserLicenses
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaBatchUpdateUserLicensesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of user licenses that failed to be updated.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of user licenses successfully updated.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaBatchUpdateUserLicensesResponse: Response
// message for UserLicenseService.BatchUpdateUserLicenses method.
type GoogleCloudDiscoveryengineV1betaBatchUpdateUserLicensesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// UserLicenses: UserLicenses successfully updated.
	UserLicenses []*GoogleCloudDiscoveryengineV1betaUserLicense `json:"userLicenses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCmekConfig: Configurations used to enable
// CMEK data encryption with Cloud KMS keys.
type GoogleCloudDiscoveryengineV1betaCmekConfig struct {
	// IsDefault: Output only. The default CmekConfig for the Customer.
	IsDefault bool `json:"isDefault,omitempty"`
	// KmsKey: Required. KMS key resource name which will be used to encrypt
	// resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// KmsKeyVersion: Output only. KMS key version resource name which will be used
	// to encrypt resources `/cryptoKeyVersions/{keyVersion}`.
	KmsKeyVersion string `json:"kmsKeyVersion,omitempty"`
	// LastRotationTimestampMicros: Output only. The timestamp of the last key
	// rotation.
	LastRotationTimestampMicros int64 `json:"lastRotationTimestampMicros,omitempty,string"`
	// Name: Required. The name of the CmekConfig of the form
	// `projects/{project}/locations/{location}/cmekConfig` or
	// `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
	Name string `json:"name,omitempty"`
	// NotebooklmState: Output only. Whether the NotebookLM Corpus is ready to be
	// used.
	//
	// Possible values:
	//   "NOTEBOOK_LM_STATE_UNSPECIFIED" - The NotebookLM state is unknown.
	//   "NOTEBOOK_LM_NOT_READY" - The NotebookLM is not ready.
	//   "NOTEBOOK_LM_READY" - The NotebookLM is ready to be used.
	//   "NOTEBOOK_LM_NOT_ENABLED" - The NotebookLM is not enabled.
	NotebooklmState string `json:"notebooklmState,omitempty"`
	// SingleRegionKeys: Optional. Single-regional CMEKs that are required for some
	// VAIS features.
	SingleRegionKeys []*GoogleCloudDiscoveryengineV1betaSingleRegionKey `json:"singleRegionKeys,omitempty"`
	// State: Output only. The states of the CmekConfig.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The CmekConfig state is unknown.
	//   "CREATING" - The CmekConfig is creating.
	//   "ACTIVE" - The CmekConfig can be used with DataStores.
	//   "KEY_ISSUE" - The CmekConfig is unavailable, most likely due to the KMS
	// Key being revoked.
	//   "DELETING" - The CmekConfig is deleting.
	//   "DELETE_FAILED" - The CmekConfig deletion process failed.
	//   "UNUSABLE" - The CmekConfig is not usable, most likely due to some
	// internal issue.
	//   "ACTIVE_ROTATING" - The KMS key version is being rotated.
	//   "DELETED" - The KMS key is soft deleted. Some cleanup policy will
	// eventually be applied.
	//   "EXPIRED" - The KMS key is expired, meaning the key has been disabled for
	// 30+ days. The customer can call DeleteCmekConfig to change the state to
	// DELETED.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IsDefault") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IsDefault") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCondition: Defines circumstances to be
// checked before allowing a behavior
type GoogleCloudDiscoveryengineV1betaCondition struct {
	// ActiveTimeRange: Range of time(s) specifying when condition is active.
	// Maximum of 10 time ranges.
	ActiveTimeRange []*GoogleCloudDiscoveryengineV1betaConditionTimeRange `json:"activeTimeRange,omitempty"`
	// QueryRegex: Optional. Query regex to match the whole search query. Cannot be
	// set when Condition.query_terms is set. Only supported for Basic Site Search
	// promotion serving controls.
	QueryRegex string `json:"queryRegex,omitempty"`
	// QueryTerms: Search only A list of terms to match the query on. Cannot be set
	// when Condition.query_regex is set. Maximum of 10 query terms.
	QueryTerms []*GoogleCloudDiscoveryengineV1betaConditionQueryTerm `json:"queryTerms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ActiveTimeRange") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ActiveTimeRange") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaConditionQueryTerm: Matcher for search
// request query
type GoogleCloudDiscoveryengineV1betaConditionQueryTerm struct {
	// FullMatch: Whether the search query needs to exactly match the query term.
	FullMatch bool `json:"fullMatch,omitempty"`
	// Value: The specific query value to match against Must be lowercase, must be
	// UTF-8. Can have at most 3 space separated terms if full_match is true.
	// Cannot be an empty string. Maximum length of 5000 characters.
	Value string `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FullMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FullMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaConditionTimeRange: Used for time-dependent
// conditions.
type GoogleCloudDiscoveryengineV1betaConditionTimeRange struct {
	// EndTime: End of time range. Range is inclusive. Must be in the future.
	EndTime string `json:"endTime,omitempty"`
	// StartTime: Start of time range. Range is inclusive.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControl: Defines a conditioned behavior to
// employ during serving. Must be attached to a ServingConfig to be considered
// at serving time. Permitted actions dependent on `SolutionType`.
type GoogleCloudDiscoveryengineV1betaControl struct {
	// AssociatedServingConfigIds: Output only. List of all ServingConfig IDs this
	// control is attached to. May take up to 10 minutes to update after changes.
	AssociatedServingConfigIds []string `json:"associatedServingConfigIds,omitempty"`
	// BoostAction: Defines a boost-type control
	BoostAction *GoogleCloudDiscoveryengineV1betaControlBoostAction `json:"boostAction,omitempty"`
	// Conditions: Determines when the associated action will trigger. Omit to
	// always apply the action. Currently only a single condition may be specified.
	// Otherwise an INVALID ARGUMENT error is thrown.
	Conditions []*GoogleCloudDiscoveryengineV1betaCondition `json:"conditions,omitempty"`
	// DisplayName: Required. Human readable name. The identifier used in UI views.
	// Must be UTF-8 encoded string. Length limit is 128 characters. Otherwise an
	// INVALID ARGUMENT error is thrown.
	DisplayName string `json:"displayName,omitempty"`
	// FilterAction: Defines a filter-type control Currently not supported by
	// Recommendation
	FilterAction *GoogleCloudDiscoveryengineV1betaControlFilterAction `json:"filterAction,omitempty"`
	// Name: Immutable. Fully qualified name
	// `projects/*/locations/global/dataStore/*/controls/*`
	Name string `json:"name,omitempty"`
	// PromoteAction: Promote certain links based on predefined trigger queries.
	PromoteAction *GoogleCloudDiscoveryengineV1betaControlPromoteAction `json:"promoteAction,omitempty"`
	// RedirectAction: Defines a redirect-type control.
	RedirectAction *GoogleCloudDiscoveryengineV1betaControlRedirectAction `json:"redirectAction,omitempty"`
	// SolutionType: Required. Immutable. What solution the control belongs to.
	// Must be compatible with vertical of resource. Otherwise an INVALID ARGUMENT
	// error is thrown.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// SynonymsAction: Treats a group of terms as synonyms of one another.
	SynonymsAction *GoogleCloudDiscoveryengineV1betaControlSynonymsAction `json:"synonymsAction,omitempty"`
	// UseCases: Specifies the use case for the control. Affects what condition
	// fields can be set. Only applies to SOLUTION_TYPE_SEARCH. Currently only
	// allow one use case per control. Must be set when solution_type is
	// SolutionType.SOLUTION_TYPE_SEARCH.
	//
	// Possible values:
	//   "SEARCH_USE_CASE_UNSPECIFIED" - Value used when unset. Will not occur in
	// CSS.
	//   "SEARCH_USE_CASE_SEARCH" - Search use case. Expects the traffic has a
	// non-empty query.
	//   "SEARCH_USE_CASE_BROWSE" - Browse use case. Expects the traffic has an
	// empty query.
	UseCases []string `json:"useCases,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssociatedServingConfigIds")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssociatedServingConfigIds") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControlBoostAction: Adjusts order of
// products in returned list.
type GoogleCloudDiscoveryengineV1betaControlBoostAction struct {
	// Boost: Strength of the boost, which should be in [-1, 1]. Negative boost
	// means demotion. Default is 0.0 (No-op).
	Boost float64 `json:"boost,omitempty"`
	// DataStore: Required. Specifies which data store's documents can be boosted
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. Specifies which products to apply the boost to. If no
	// filter is provided all products will be boosted (No-op). Syntax
	// documentation: https://cloud.google.com/retail/docs/filter-and-order Maximum
	// length is 5000 characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// FixedBoost: Optional. Strength of the boost, which should be in [-1, 1].
	// Negative boost means demotion. Default is 0.0 (No-op).
	FixedBoost float64 `json:"fixedBoost,omitempty"`
	// InterpolationBoostSpec: Optional. Complex specification for custom ranking
	// based on customer defined attribute value.
	InterpolationBoostSpec *GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpec `json:"interpolationBoostSpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpec:
// Specification for custom ranking based on customer specified attribute
// value. It provides more controls for customized ranking than the simple
// (condition, boost) combination above.
type GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpec struct {
	// AttributeType: Optional. The attribute type to be used to determine the
	// boost amount. The attribute value can be derived from the field value of the
	// specified field_name. In the case of numerical it is straightforward i.e.
	// attribute_value = numerical_field_value. In the case of freshness however,
	// attribute_value = (time.now() - datetime_field_value).
	//
	// Possible values:
	//   "ATTRIBUTE_TYPE_UNSPECIFIED" - Unspecified AttributeType.
	//   "NUMERICAL" - The value of the numerical field will be used to dynamically
	// update the boost amount. In this case, the attribute_value (the x value) of
	// the control point will be the actual value of the numerical field for which
	// the boost_amount is specified.
	//   "FRESHNESS" - For the freshness use case the attribute value will be the
	// duration between the current time and the date in the datetime field
	// specified. The value must be formatted as an XSD `dayTimeDuration` value (a
	// restricted subset of an ISO 8601 duration value). The pattern for this is:
	// `nDnM]`. For example, `5D`, `3DT12H30M`, `T24H`.
	AttributeType string `json:"attributeType,omitempty"`
	// ControlPoints: Optional. The control points used to define the curve. The
	// monotonic function (defined through the interpolation_type above) passes
	// through the control points listed here.
	ControlPoints []*GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpecControlPoint `json:"controlPoints,omitempty"`
	// FieldName: Optional. The name of the field whose value will be used to
	// determine the boost amount.
	FieldName string `json:"fieldName,omitempty"`
	// InterpolationType: Optional. The interpolation type to be applied to connect
	// the control points listed below.
	//
	// Possible values:
	//   "INTERPOLATION_TYPE_UNSPECIFIED" - Interpolation type is unspecified. In
	// this case, it defaults to Linear.
	//   "LINEAR" - Piecewise linear interpolation will be applied.
	InterpolationType string `json:"interpolationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpecContr
// olPoint: The control points used to define the curve. The curve defined
// through these control points can only be monotonically increasing or
// decreasing(constant values are acceptable).
type GoogleCloudDiscoveryengineV1betaControlBoostActionInterpolationBoostSpecControlPoint struct {
	// AttributeValue: Optional. Can be one of: 1. The numerical field value. 2.
	// The duration spec for freshness: The value must be formatted as an XSD
	// `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value).
	// The pattern for this is: `nDnM]`.
	AttributeValue string `json:"attributeValue,omitempty"`
	// BoostAmount: Optional. The value between -1 to 1 by which to boost the score
	// if the attribute_value evaluates to the value specified above.
	BoostAmount float64 `json:"boostAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1betaControlFilterAction: Specified which
// products may be included in results. Uses same filter as boost.
type GoogleCloudDiscoveryengineV1betaControlFilterAction struct {
	// DataStore: Required. Specifies which data store's documents can be filtered
	// by this control. Full data store name e.g.
	// projects/123/locations/global/collections/default_collection/dataStores/defau
	// lt_data_store
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Required. A filter to apply on the matching condition results.
	// Required Syntax documentation:
	// https://cloud.google.com/retail/docs/filter-and-order Maximum length is 5000
	// characters. Otherwise an INVALID ARGUMENT error is thrown.
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControlPromoteAction: Promote certain links
// based on some trigger queries. Example: Promote shoe store link when
// searching for `shoe` keyword. The link can be outside of associated data
// store.
type GoogleCloudDiscoveryengineV1betaControlPromoteAction struct {
	// DataStore: Required. Data store with which this promotion is attached to.
	DataStore string `json:"dataStore,omitempty"`
	// SearchLinkPromotion: Required. Promotion attached to this action.
	SearchLinkPromotion *GoogleCloudDiscoveryengineV1betaSearchLinkPromotion `json:"searchLinkPromotion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataStore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStore") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControlRedirectAction: Redirects a shopper
// to the provided URI.
type GoogleCloudDiscoveryengineV1betaControlRedirectAction struct {
	// RedirectUri: Required. The URI to which the shopper will be redirected.
	// Required. URI must have length equal or less than 2000 characters. Otherwise
	// an INVALID ARGUMENT error is thrown.
	RedirectUri string `json:"redirectUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "RedirectUri") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "RedirectUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaControlSynonymsAction: Creates a set of
// terms that will act as synonyms of one another. Example: "happy" will also
// be considered as "glad", "glad" will also be considered as "happy".
type GoogleCloudDiscoveryengineV1betaControlSynonymsAction struct {
	// Synonyms: Defines a set of synonyms. Can specify up to 100 synonyms. Must
	// specify at least 2 synonyms. Otherwise an INVALID ARGUMENT error is thrown.
	Synonyms []string `json:"synonyms,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Synonyms") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Synonyms") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries: The historical crawl
// rate timeseries data, used for monitoring.
type GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries struct {
	// QpsTimeSeries: The QPS of the crawl rate.
	QpsTimeSeries *GoogleMonitoringV3TimeSeries `json:"qpsTimeSeries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QpsTimeSeries") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QpsTimeSeries") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCreateDataStoreMetadata: Metadata related to
// the progress of the DataStoreService.CreateDataStore operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaCreateDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCreateEngineMetadata: Metadata related to
// the progress of the EngineService.CreateEngine operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaCreateEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCreateEvaluationMetadata: Metadata for
// EvaluationService.CreateEvaluation method.
type GoogleCloudDiscoveryengineV1betaCreateEvaluationMetadata struct {
}

// GoogleCloudDiscoveryengineV1betaCreateSchemaMetadata: Metadata for Create
// Schema LRO.
type GoogleCloudDiscoveryengineV1betaCreateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCreateSitemapMetadata: Metadata related to
// the progress of the SiteSearchEngineService.CreateSitemap operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaCreateSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaCreateTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.CreateTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaCreateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDataStore: DataStore captures global
// settings and configs at the DataStore level.
type GoogleCloudDiscoveryengineV1betaDataStore struct {
	// AclEnabled: Immutable. Whether data in the DataStore has ACL information. If
	// set to `true`, the source data must have ACL. ACL will be ingested when data
	// is ingested by DocumentService.ImportDocuments methods. When ACL is enabled
	// for the DataStore, Document can't be accessed by calling
	// DocumentService.GetDocument or DocumentService.ListDocuments. Currently ACL
	// is only supported in `GENERIC` industry vertical with non-`PUBLIC_WEBSITE`
	// content config.
	AclEnabled bool `json:"aclEnabled,omitempty"`
	// AdvancedSiteSearchConfig: Optional. Configuration for advanced site search.
	AdvancedSiteSearchConfig *GoogleCloudDiscoveryengineV1betaAdvancedSiteSearchConfig `json:"advancedSiteSearchConfig,omitempty"`
	// BillingEstimation: Output only. Data size estimation for billing.
	BillingEstimation *GoogleCloudDiscoveryengineV1betaDataStoreBillingEstimation `json:"billingEstimation,omitempty"`
	// CmekConfig: Output only. CMEK-related information for the DataStore.
	CmekConfig *GoogleCloudDiscoveryengineV1betaCmekConfig `json:"cmekConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach. See
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach.
	//   "CONFIGURABLE_SUBSCRIPTION_INDEXING_CORE" - Use the subscription base +
	// overage billing for indexing core for non embedding storage.
	//   "CONFIGURABLE_CONSUMPTION_EMBEDDING" - Use the consumption pay-as-you-go
	// billing for embedding storage add-on.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// ContentConfig: Immutable. The content config of the data store. If this
	// field is unset, the server behavior defaults to ContentConfig.NO_CONTENT.
	//
	// Possible values:
	//   "CONTENT_CONFIG_UNSPECIFIED" - Default value.
	//   "NO_CONTENT" - Only contains documents without any Document.content.
	//   "CONTENT_REQUIRED" - Only contains documents with Document.content.
	//   "PUBLIC_WEBSITE" - The data store is used for public website search.
	//   "GOOGLE_WORKSPACE" - The data store is used for workspace search. Details
	// of workspace data store are specified in the WorkspaceConfig.
	ContentConfig string `json:"contentConfig,omitempty"`
	// CreateTime: Output only. Timestamp the DataStore was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DefaultSchemaId: Output only. The id of the default Schema associated to
	// this data store.
	DefaultSchemaId string `json:"defaultSchemaId,omitempty"`
	// DisplayName: Required. The data store display name. This field must be a
	// UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
	// INVALID_ARGUMENT error is returned.
	DisplayName string `json:"displayName,omitempty"`
	// DocumentProcessingConfig: Configuration for Document understanding and
	// enrichment.
	DocumentProcessingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfig `json:"documentProcessingConfig,omitempty"`
	// HealthcareFhirConfig: Optional. Configuration for `HEALTHCARE_FHIR`
	// vertical.
	HealthcareFhirConfig *GoogleCloudDiscoveryengineV1betaHealthcareFhirConfig `json:"healthcareFhirConfig,omitempty"`
	// IdentityMappingStore: Immutable. The fully qualified resource name of the
	// associated IdentityMappingStore. This field can only be set for acl_enabled
	// DataStores with `THIRD_PARTY` or `GSUITE` IdP. Format:
	// `projects/{project}/locations/{location}/identityMappingStores/{identity_mapp
	// ing_store}`.
	IdentityMappingStore string `json:"identityMappingStore,omitempty"`
	// IndustryVertical: Immutable. The industry vertical that the data store
	// registers.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// IsInfobotFaqDataStore: Optional. If set, this DataStore is an Infobot FAQ
	// DataStore.
	IsInfobotFaqDataStore bool `json:"isInfobotFaqDataStore,omitempty"`
	// KmsKeyName: Input only. The KMS key to be used to protect this DataStore at
	// creation time. Must be set for requests that need to comply with CMEK Org
	// Policy protections. If this field is set and processed successfully, the
	// DataStore will be protected by the KMS key, as indicated in the cmek_config
	// field.
	KmsKeyName string `json:"kmsKeyName,omitempty"`
	// LanguageInfo: Language info for DataStore.
	LanguageInfo *GoogleCloudDiscoveryengineV1betaLanguageInfo `json:"languageInfo,omitempty"`
	// Name: Immutable. Identifier. The full resource name of the data store.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. This field must be a UTF-8 encoded string with a length
	// limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// NaturalLanguageQueryUnderstandingConfig: Optional. Configuration for Natural
	// Language Query Understanding.
	NaturalLanguageQueryUnderstandingConfig *GoogleCloudDiscoveryengineV1betaNaturalLanguageQueryUnderstandingConfig `json:"naturalLanguageQueryUnderstandingConfig,omitempty"`
	// ServingConfigDataStore: Optional. Stores serving config at DataStore level.
	ServingConfigDataStore *GoogleCloudDiscoveryengineV1betaDataStoreServingConfigDataStore `json:"servingConfigDataStore,omitempty"`
	// SolutionTypes: The solutions that the data store enrolls. Available
	// solutions for each industry_vertical: * `MEDIA`:
	// `SOLUTION_TYPE_RECOMMENDATION` and `SOLUTION_TYPE_SEARCH`. * `SITE_SEARCH`:
	// `SOLUTION_TYPE_SEARCH` is automatically enrolled. Other solutions cannot be
	// enrolled.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionTypes []string `json:"solutionTypes,omitempty"`
	// StartingSchema: The start schema to use for this DataStore when provisioning
	// it. If unset, a default vertical specialized schema will be used. This field
	// is only used by CreateDataStore API, and will be ignored if used in other
	// APIs. This field will be omitted from all API responses including
	// CreateDataStore API. To retrieve a schema of a DataStore, use
	// SchemaService.GetSchema API instead. The provided schema will be validated
	// against certain rules on schema. Learn more from this doc
	// (https://cloud.google.com/generative-ai-app-builder/docs/provide-schema).
	StartingSchema *GoogleCloudDiscoveryengineV1betaSchema `json:"startingSchema,omitempty"`
	// WorkspaceConfig: Config to store data store type configuration for workspace
	// data. This must be set when DataStore.content_config is set as
	// DataStore.ContentConfig.GOOGLE_WORKSPACE.
	WorkspaceConfig *GoogleCloudDiscoveryengineV1betaWorkspaceConfig `json:"workspaceConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AclEnabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AclEnabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDataStoreBillingEstimation: Estimation of
// data size per data store.
type GoogleCloudDiscoveryengineV1betaDataStoreBillingEstimation struct {
	// StructuredDataSize: Data size for structured data in terms of bytes.
	StructuredDataSize int64 `json:"structuredDataSize,omitempty,string"`
	// StructuredDataUpdateTime: Last updated timestamp for structured data.
	StructuredDataUpdateTime string `json:"structuredDataUpdateTime,omitempty"`
	// UnstructuredDataSize: Data size for unstructured data in terms of bytes.
	UnstructuredDataSize int64 `json:"unstructuredDataSize,omitempty,string"`
	// UnstructuredDataUpdateTime: Last updated timestamp for unstructured data.
	UnstructuredDataUpdateTime string `json:"unstructuredDataUpdateTime,omitempty"`
	// WebsiteDataSize: Data size for websites in terms of bytes.
	WebsiteDataSize int64 `json:"websiteDataSize,omitempty,string"`
	// WebsiteDataUpdateTime: Last updated timestamp for websites.
	WebsiteDataUpdateTime string `json:"websiteDataUpdateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StructuredDataSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StructuredDataSize") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDataStoreServingConfigDataStore: Stores
// information regarding the serving configurations at DataStore level.
type GoogleCloudDiscoveryengineV1betaDataStoreServingConfigDataStore struct {
	// DisabledForServing: Optional. If set true, the DataStore will not be
	// available for serving search requests.
	DisabledForServing bool `json:"disabledForServing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisabledForServing") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisabledForServing") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDedicatedCrawlRateTimeSeries: The historical
// dedicated crawl rate timeseries data, used for monitoring. Dedicated crawl
// is used by Vertex AI to crawl the user's website when dedicate crawl is set.
type GoogleCloudDiscoveryengineV1betaDedicatedCrawlRateTimeSeries struct {
	// AutoRefreshCrawlErrorRate: Vertex AI's error rate time series of
	// auto-refresh dedicated crawl.
	AutoRefreshCrawlErrorRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"autoRefreshCrawlErrorRate,omitempty"`
	// AutoRefreshCrawlRate: Vertex AI's dedicated crawl rate time series of
	// auto-refresh, which is the crawl rate of Google-CloudVertexBot when dedicate
	// crawl is set, and the crawl rate is for best effort use cases like
	// refreshing urls periodically.
	AutoRefreshCrawlRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"autoRefreshCrawlRate,omitempty"`
	// UserTriggeredCrawlErrorRate: Vertex AI's error rate time series of user
	// triggered dedicated crawl.
	UserTriggeredCrawlErrorRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"userTriggeredCrawlErrorRate,omitempty"`
	// UserTriggeredCrawlRate: Vertex AI's dedicated crawl rate time series of user
	// triggered crawl, which is the crawl rate of Google-CloudVertexBot when
	// dedicate crawl is set, and user triggered crawl rate is for deterministic
	// use cases like crawling urls or sitemaps specified by users.
	UserTriggeredCrawlRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"userTriggeredCrawlRate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoRefreshCrawlErrorRate")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoRefreshCrawlErrorRate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteDataStoreMetadata: Metadata related to
// the progress of the DataStoreService.DeleteDataStore operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDeleteDataStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteEngineMetadata: Metadata related to
// the progress of the EngineService.DeleteEngine operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDeleteEngineMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteIdentityMappingStoreMetadata: Metadata
// related to the progress of the
// IdentityMappingStoreService.DeleteIdentityMappingStore operation. This will
// be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDeleteIdentityMappingStoreMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteSchemaMetadata: Metadata for
// DeleteSchema LRO.
type GoogleCloudDiscoveryengineV1betaDeleteSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteSitemapMetadata: Metadata related to
// the progress of the SiteSearchEngineService.DeleteSitemap operation. This
// will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDeleteSitemapMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDeleteTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.DeleteTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDeleteTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDisableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.DisableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaDisableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDisableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.DisableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1betaDisableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfig: A singleton
// resource of DataStore. If it's empty when DataStore is created and DataStore
// is set to DataStore.ContentConfig.CONTENT_REQUIRED, the default parser will
// default to digital parser.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfig struct {
	// ChunkingConfig: Whether chunking mode is enabled.
	ChunkingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfig `json:"chunkingConfig,omitempty"`
	// DefaultParsingConfig: Configurations for default Document parser. If not
	// specified, we will configure it as default DigitalParsingConfig, and the
	// default parsing config will be applied to all file types for Document
	// parsing.
	DefaultParsingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfig `json:"defaultParsingConfig,omitempty"`
	// Name: The full resource name of the Document Processing Config. Format:
	// `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig`.
	Name string `json:"name,omitempty"`
	// ParsingConfigOverrides: Map from file type to override the default parsing
	// configuration based on the file type. Supported keys: * `pdf`: Override
	// parsing config for PDF files, either digital parsing, ocr parsing or layout
	// parsing is supported. * `html`: Override parsing config for HTML files, only
	// digital parsing and layout parsing are supported. * `docx`: Override parsing
	// config for DOCX files, only digital parsing and layout parsing are
	// supported. * `pptx`: Override parsing config for PPTX files, only digital
	// parsing and layout parsing are supported. * `xlsm`: Override parsing config
	// for XLSM files, only digital parsing and layout parsing are supported. *
	// `xlsx`: Override parsing config for XLSX files, only digital parsing and
	// layout parsing are supported.
	ParsingConfigOverrides map[string]GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfig `json:"parsingConfigOverrides,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkingConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfig:
// Configuration for chunking config.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfig struct {
	// LayoutBasedChunkingConfig: Configuration for the layout based chunking.
	LayoutBasedChunkingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig `json:"layoutBasedChunkingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LayoutBasedChunkingConfig")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LayoutBasedChunkingConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfigLayoutB
// asedChunkingConfig: Configuration for the layout based chunking.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig struct {
	// ChunkSize: The token size limit for each chunk. Supported values: 100-500
	// (inclusive). Default value: 500.
	ChunkSize int64 `json:"chunkSize,omitempty"`
	// IncludeAncestorHeadings: Whether to include appending different levels of
	// headings to chunks from the middle of the document to prevent context loss.
	// Default value: False.
	IncludeAncestorHeadings bool `json:"includeAncestorHeadings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSize") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSize") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfig:
// Related configurations applied to a specific type of document parser.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfig struct {
	// DigitalParsingConfig: Configurations applied to digital parser.
	DigitalParsingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigDigitalParsingConfig `json:"digitalParsingConfig,omitempty"`
	// LayoutParsingConfig: Configurations applied to layout parser.
	LayoutParsingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigLayoutParsingConfig `json:"layoutParsingConfig,omitempty"`
	// OcrParsingConfig: Configurations applied to OCR parser. Currently it only
	// applies to PDFs.
	OcrParsingConfig *GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigOcrParsingConfig `json:"ocrParsingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DigitalParsingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DigitalParsingConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigDigitalP
// arsingConfig: The digital parsing configurations for documents.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigDigitalParsingConfig struct {
}

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigLayoutPa
// rsingConfig: The layout parsing configurations for documents.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigLayoutParsingConfig struct {
	// EnableGetProcessedDocument: Optional. If true, the processed document will
	// be made available for the GetProcessedDocument API.
	EnableGetProcessedDocument bool `json:"enableGetProcessedDocument,omitempty"`
	// EnableImageAnnotation: Optional. If true, the LLM based annotation is added
	// to the image during parsing.
	EnableImageAnnotation bool `json:"enableImageAnnotation,omitempty"`
	// EnableTableAnnotation: Optional. If true, the LLM based annotation is added
	// to the table during parsing.
	EnableTableAnnotation bool `json:"enableTableAnnotation,omitempty"`
	// ExcludeHtmlClasses: Optional. List of HTML classes to exclude from the
	// parsed content.
	ExcludeHtmlClasses []string `json:"excludeHtmlClasses,omitempty"`
	// ExcludeHtmlElements: Optional. List of HTML elements to exclude from the
	// parsed content.
	ExcludeHtmlElements []string `json:"excludeHtmlElements,omitempty"`
	// ExcludeHtmlIds: Optional. List of HTML ids to exclude from the parsed
	// content.
	ExcludeHtmlIds []string `json:"excludeHtmlIds,omitempty"`
	// StructuredContentTypes: Optional. Contains the required structure types to
	// extract from the document. Supported values: * `shareholder-structure`
	StructuredContentTypes []string `json:"structuredContentTypes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableGetProcessedDocument")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableGetProcessedDocument") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigOcrParsi
// ngConfig: The OCR parsing configurations for documents.
type GoogleCloudDiscoveryengineV1betaDocumentProcessingConfigParsingConfigOcrParsingConfig struct {
	// EnhancedDocumentElements: [DEPRECATED] This field is deprecated. To use the
	// additional enhanced document elements processing, please switch to
	// `layout_parsing_config`.
	EnhancedDocumentElements []string `json:"enhancedDocumentElements,omitempty"`
	// UseNativeText: If true, will use native text instead of OCR text on pages
	// containing native text.
	UseNativeText bool `json:"useNativeText,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnhancedDocumentElements")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnhancedDocumentElements") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEnableAdvancedSiteSearchMetadata: Metadata
// related to the progress of the
// SiteSearchEngineService.EnableAdvancedSiteSearch operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaEnableAdvancedSiteSearchMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEnableAdvancedSiteSearchResponse: Response
// message for SiteSearchEngineService.EnableAdvancedSiteSearch method.
type GoogleCloudDiscoveryengineV1betaEnableAdvancedSiteSearchResponse struct {
}

// GoogleCloudDiscoveryengineV1betaEngine: Metadata that describes the training
// and serving parameters of an Engine.
type GoogleCloudDiscoveryengineV1betaEngine struct {
	// AppType: Optional. Immutable. This the application type which this engine
	// resource represents. NOTE: this is a new concept independ of existing
	// industry vertical or solution type.
	//
	// Possible values:
	//   "APP_TYPE_UNSPECIFIED" - All non specified apps.
	//   "APP_TYPE_INTRANET" - App type for intranet search and Agentspace.
	AppType string `json:"appType,omitempty"`
	// ChatEngineConfig: Configurations for the Chat Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineConfig *GoogleCloudDiscoveryengineV1betaEngineChatEngineConfig `json:"chatEngineConfig,omitempty"`
	// ChatEngineMetadata: Output only. Additional information of the Chat Engine.
	// Only applicable if solution_type is SOLUTION_TYPE_CHAT.
	ChatEngineMetadata *GoogleCloudDiscoveryengineV1betaEngineChatEngineMetadata `json:"chatEngineMetadata,omitempty"`
	// CommonConfig: Common config spec that specifies the metadata of the engine.
	CommonConfig *GoogleCloudDiscoveryengineV1betaEngineCommonConfig `json:"commonConfig,omitempty"`
	// ConfigurableBillingApproach: Optional. Configuration for configurable
	// billing approach.
	//
	// Possible values:
	//   "CONFIGURABLE_BILLING_APPROACH_UNSPECIFIED" - Default value. For Spark and
	// non-Spark non-configurable billing approach. General pricing model.
	//   "CONFIGURABLE_BILLING_APPROACH_ENABLED" - The billing approach follows
	// configurations specified by customer.
	ConfigurableBillingApproach string `json:"configurableBillingApproach,omitempty"`
	// CreateTime: Output only. Timestamp the Recommendation Engine was created at.
	CreateTime string `json:"createTime,omitempty"`
	// DataStoreIds: Optional. The data stores associated with this engine. For
	// SOLUTION_TYPE_SEARCH and SOLUTION_TYPE_RECOMMENDATION type of engines, they
	// can only associate with at most one data store. If solution_type is
	// SOLUTION_TYPE_CHAT, multiple DataStores in the same Collection can be
	// associated here. Note that when used in CreateEngineRequest, one DataStore
	// id must be provided as the system will use it for necessary initializations.
	DataStoreIds []string `json:"dataStoreIds,omitempty"`
	// DisableAnalytics: Optional. Whether to disable analytics for searches
	// performed on this engine.
	DisableAnalytics bool `json:"disableAnalytics,omitempty"`
	// DisplayName: Required. The display name of the engine. Should be human
	// readable. UTF-8 encoded string with limit of 1024 characters.
	DisplayName string `json:"displayName,omitempty"`
	// Features: Optional. Feature config for the engine to opt in or opt out of
	// features. Supported keys: * `*`: all features, if it's present, all other
	// feature state settings are ignored. * `agent-gallery` *
	// `no-code-agent-builder` * `prompt-gallery` * `model-selector` *
	// `notebook-lm` * `people-search` * `people-search-org-chart` *
	// `bi-directional-audio` * `feedback` * `session-sharing` *
	// `personalization-memory` * `disable-agent-sharing` *
	// `disable-image-generation` * `disable-video-generation` *
	// `disable-onedrive-upload` * `disable-talk-to-content` *
	// `disable-google-drive-upload`
	Features map[string]string `json:"features,omitempty"`
	// IndustryVertical: Optional. The industry vertical that the engine registers.
	// The restriction of the Engine industry vertical is based on DataStore:
	// Vertical on Engine has to match vertical of the DataStore linked to the
	// engine.
	//
	// Possible values:
	//   "INDUSTRY_VERTICAL_UNSPECIFIED" - Value used when unset.
	//   "GENERIC" - The generic vertical for documents that are not specific to
	// any industry vertical.
	//   "MEDIA" - The media industry vertical.
	//   "HEALTHCARE_FHIR" - The healthcare FHIR vertical.
	IndustryVertical string `json:"industryVertical,omitempty"`
	// MediaRecommendationEngineConfig: Configurations for the Media Engine. Only
	// applicable on the data stores with solution_type
	// SOLUTION_TYPE_RECOMMENDATION and IndustryVertical.MEDIA vertical.
	MediaRecommendationEngineConfig *GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfig `json:"mediaRecommendationEngineConfig,omitempty"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// engine. This field must be a UTF-8 encoded string with a length limit of
	// 1024 characters. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}` engine should be 1-63 characters, and valid characters are /a-z0-9*/.
	// Otherwise, an INVALID_ARGUMENT error is returned.
	Name string `json:"name,omitempty"`
	// SearchEngineConfig: Configurations for the Search Engine. Only applicable if
	// solution_type is SOLUTION_TYPE_SEARCH.
	SearchEngineConfig *GoogleCloudDiscoveryengineV1betaEngineSearchEngineConfig `json:"searchEngineConfig,omitempty"`
	// SolutionType: Required. The solutions of the engine.
	//
	// Possible values:
	//   "SOLUTION_TYPE_UNSPECIFIED" - Default value.
	//   "SOLUTION_TYPE_RECOMMENDATION" - Used for Recommendations AI.
	//   "SOLUTION_TYPE_SEARCH" - Used for Discovery Search.
	//   "SOLUTION_TYPE_CHAT" - Used for use cases related to the Generative AI
	// agent.
	//   "SOLUTION_TYPE_GENERATIVE_CHAT" - Used for use cases related to the
	// Generative Chat agent. It's used for Generative chat engine only, the
	// associated data stores must enrolled with `SOLUTION_TYPE_CHAT` solution.
	SolutionType string `json:"solutionType,omitempty"`
	// UpdateTime: Output only. Timestamp the Recommendation Engine was last
	// updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppType") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineChatEngineConfig: Configurations for a
// Chat Engine.
type GoogleCloudDiscoveryengineV1betaEngineChatEngineConfig struct {
	// AgentCreationConfig: The configurationt generate the Dialogflow agent that
	// is associated to this Engine. Note that these configurations are one-time
	// consumed by and passed to Dialogflow service. It means they cannot be
	// retrieved using EngineService.GetEngine or EngineService.ListEngines API
	// after engine creation.
	AgentCreationConfig *GoogleCloudDiscoveryengineV1betaEngineChatEngineConfigAgentCreationConfig `json:"agentCreationConfig,omitempty"`
	// AllowCrossRegion: Optional. If the flag set to true, we allow the agent and
	// engine are in different locations, otherwise the agent and engine are
	// required to be in the same location. The flag is set to false by default.
	// Note that the `allow_cross_region` are one-time consumed by and passed to
	// EngineService.CreateEngine. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation.
	AllowCrossRegion bool `json:"allowCrossRegion,omitempty"`
	// DialogflowAgentToLink: The resource name of an exist Dialogflow agent to
	// link to this Chat Engine. Customers can either provide
	// `agent_creation_config` to create agent or provide an agent name that links
	// the agent with the Chat engine. Format: `projects//locations//agents/`. Note
	// that the `dialogflow_agent_to_link` are one-time consumed by and passed to
	// Dialogflow service. It means they cannot be retrieved using
	// EngineService.GetEngine or EngineService.ListEngines API after engine
	// creation. Use ChatEngineMetadata.dialogflow_agent for actual agent
	// association after Engine is created.
	DialogflowAgentToLink string `json:"dialogflowAgentToLink,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentCreationConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentCreationConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineChatEngineConfigAgentCreationConfig:
// Configurations for generating a Dialogflow agent. Note that these
// configurations are one-time consumed by and passed to Dialogflow service. It
// means they cannot be retrieved using EngineService.GetEngine or
// EngineService.ListEngines API after engine creation.
type GoogleCloudDiscoveryengineV1betaEngineChatEngineConfigAgentCreationConfig struct {
	// Business: Name of the company, organization or other entity that the agent
	// represents. Used for knowledge connector LLM prompt and for knowledge
	// search.
	Business string `json:"business,omitempty"`
	// DefaultLanguageCode: Required. The default language of the agent as a
	// language tag. See Language Support
	// (https://cloud.google.com/dialogflow/docs/reference/language) for a list of
	// the currently supported language codes.
	DefaultLanguageCode string `json:"defaultLanguageCode,omitempty"`
	// Location: Agent location for Agent creation, supported values: global/us/eu.
	// If not provided, us Engine will create Agent using us-central-1 by default;
	// eu Engine will create Agent using eu-west-1 by default.
	Location string `json:"location,omitempty"`
	// TimeZone: Required. The time zone of the agent from the time zone database
	// (https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.
	TimeZone string `json:"timeZone,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Business") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Business") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineChatEngineMetadata: Additional
// information of a Chat Engine. Fields in this message are output only.
type GoogleCloudDiscoveryengineV1betaEngineChatEngineMetadata struct {
	// DialogflowAgent: The resource name of a Dialogflow agent, that this Chat
	// Engine refers to. Format: `projects//locations//agents/`.
	DialogflowAgent string `json:"dialogflowAgent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DialogflowAgent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DialogflowAgent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineCommonConfig: Common configurations
// for an Engine.
type GoogleCloudDiscoveryengineV1betaEngineCommonConfig struct {
	// CompanyName: The name of the company, business or entity that is associated
	// with the engine. Setting this may help improve LLM related features.
	CompanyName string `json:"companyName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompanyName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompanyName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfig:
// Additional config specs for a Media Recommendation engine.
type GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfig struct {
	// EngineFeaturesConfig: Optional. Additional engine features config.
	EngineFeaturesConfig *GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigEngineFeaturesConfig `json:"engineFeaturesConfig,omitempty"`
	// OptimizationObjective: The optimization objective. e.g., `cvr`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values: `ctr`,
	// `cvr`. If not specified, we choose default based on engine type. Default
	// depends on type of recommendation: `recommended-for-you` => `ctr`
	// `others-you-may-like` => `ctr`
	OptimizationObjective string `json:"optimizationObjective,omitempty"`
	// OptimizationObjectiveConfig: Name and value of the custom threshold for cvr
	// optimization_objective. For target_field `watch-time`, target_field_value
	// must be an integer value indicating the media progress time in seconds
	// between (0, 86400] (excludes 0, includes 86400) (e.g., 90). For target_field
	// `watch-percentage`, the target_field_value must be a valid float value
	// between (0, 1.0] (excludes 0, includes 1.0) (e.g., 0.5).
	OptimizationObjectiveConfig *GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig `json:"optimizationObjectiveConfig,omitempty"`
	// TrainingState: The training state that the engine is in (e.g. `TRAINING` or
	// `PAUSED`). Since part of the cost of running the service is frequency of
	// training - this can be used to determine when to train engine in order to
	// control cost. If not specified: the default value for `CreateEngine` method
	// is `TRAINING`. The default value for `UpdateEngine` method is to keep the
	// state the same as before.
	//
	// Possible values:
	//   "TRAINING_STATE_UNSPECIFIED" - Unspecified training state.
	//   "PAUSED" - The engine training is paused.
	//   "TRAINING" - The engine is training.
	TrainingState string `json:"trainingState,omitempty"`
	// Type: Required. The type of engine. e.g., `recommended-for-you`. This field
	// together with optimization_objective describe engine metadata to use to
	// control engine training and serving. Currently supported values:
	// `recommended-for-you`, `others-you-may-like`, `more-like-this`,
	// `most-popular-items`.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EngineFeaturesConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EngineFeaturesConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigEngineFe
// aturesConfig: More feature configs of the selected engine type.
type GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigEngineFeaturesConfig struct {
	// MostPopularConfig: Most popular engine feature config.
	MostPopularConfig *GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigMostPopularFeatureConfig `json:"mostPopularConfig,omitempty"`
	// RecommendedForYouConfig: Recommended for you engine feature config.
	RecommendedForYouConfig *GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig `json:"recommendedForYouConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MostPopularConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MostPopularConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigMostPopu
// larFeatureConfig: Feature configurations that are required for creating a
// Most Popular engine.
type GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigMostPopularFeatureConfig struct {
	// TimeWindowDays: The time window of which the engine is queried at training
	// and prediction time. Positive integers only. The value translates to the
	// last X days of events. Currently required for the `most-popular-items`
	// engine.
	TimeWindowDays int64 `json:"timeWindowDays,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TimeWindowDays") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeWindowDays") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigOptimiza
// tionObjectiveConfig: Custom threshold for `cvr` optimization_objective.
type GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig struct {
	// TargetField: Required. The name of the field to target. Currently supported
	// values: `watch-percentage`, `watch-time`.
	TargetField string `json:"targetField,omitempty"`
	// TargetFieldValueFloat: Required. The threshold to be applied to the target
	// (e.g., 0.5).
	TargetFieldValueFloat float64 `json:"targetFieldValueFloat,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TargetField") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TargetField") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigRecommen
// dedForYouFeatureConfig: Additional feature configurations for creating a
// `recommended-for-you` engine.
type GoogleCloudDiscoveryengineV1betaEngineMediaRecommendationEngineConfigRecommendedForYouFeatureConfig struct {
	// ContextEventType: The type of event with which the engine is queried at
	// prediction time. If set to `generic`, only `view-item`, `media-play`,and
	// `media-complete` will be used as `context-event` in engine training. If set
	// to `view-home-page`, `view-home-page` will also be used as `context-events`
	// in addition to `view-item`, `media-play`, and `media-complete`. Currently
	// supported for the `recommended-for-you` engine. Currently supported values:
	// `view-home-page`, `generic`.
	ContextEventType string `json:"contextEventType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContextEventType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContextEventType") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEngineSearchEngineConfig: Configurations for
// a Search Engine.
type GoogleCloudDiscoveryengineV1betaEngineSearchEngineConfig struct {
	// SearchAddOns: The add-on that this search engine enables.
	//
	// Possible values:
	//   "SEARCH_ADD_ON_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_ADD_ON_LLM" - Large language model add-on.
	SearchAddOns []string `json:"searchAddOns,omitempty"`
	// SearchTier: The search feature tier of this engine. Different tiers might
	// have different pricing. To learn more, check the pricing documentation.
	// Defaults to SearchTier.SEARCH_TIER_STANDARD if not specified.
	//
	// Possible values:
	//   "SEARCH_TIER_UNSPECIFIED" - Default value when the enum is unspecified.
	// This is invalid to use.
	//   "SEARCH_TIER_STANDARD" - Standard tier.
	//   "SEARCH_TIER_ENTERPRISE" - Enterprise tier.
	SearchTier string `json:"searchTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SearchAddOns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SearchAddOns") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEvaluation: An evaluation is a single
// execution (or run) of an evaluation process. It encapsulates the state of
// the evaluation and the resulting data.
type GoogleCloudDiscoveryengineV1betaEvaluation struct {
	// CreateTime: Output only. Timestamp the Evaluation was created at.
	CreateTime string `json:"createTime,omitempty"`
	// EndTime: Output only. Timestamp the Evaluation was completed at.
	EndTime string `json:"endTime,omitempty"`
	// Error: Output only. The error that occurred during evaluation. Only
	// populated when the evaluation's state is FAILED.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// ErrorSamples: Output only. A sample of errors encountered while processing
	// the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// EvaluationSpec: Required. The specification of the evaluation.
	EvaluationSpec *GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpec `json:"evaluationSpec,omitempty"`
	// Name: Identifier. The full resource name of the Evaluation, in the format of
	// `projects/{project}/locations/{location}/evaluations/{evaluation}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// QualityMetrics: Output only. The metrics produced by the evaluation,
	// averaged across all SampleQuerys in the SampleQuerySet. Only populated when
	// the evaluation's state is SUCCEEDED.
	QualityMetrics *GoogleCloudDiscoveryengineV1betaQualityMetrics `json:"qualityMetrics,omitempty"`
	// State: Output only. The state of the evaluation.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The evaluation is unspecified.
	//   "PENDING" - The service is preparing to run the evaluation.
	//   "RUNNING" - The evaluation is in progress.
	//   "SUCCEEDED" - The evaluation completed successfully.
	//   "FAILED" - The evaluation failed.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpec: Describes the
// specification of the evaluation.
type GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpec struct {
	// QuerySetSpec: Optional. The specification of the query set.
	QuerySetSpec *GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpecQuerySetSpec `json:"querySetSpec,omitempty"`
	// SearchRequest: Required. The search request that is used to perform the
	// evaluation. Only the following fields within SearchRequest are supported; if
	// any other fields are provided, an UNSUPPORTED error will be returned: *
	// SearchRequest.serving_config * SearchRequest.branch *
	// SearchRequest.canonical_filter * SearchRequest.query_expansion_spec *
	// SearchRequest.spell_correction_spec * SearchRequest.content_search_spec *
	// SearchRequest.user_pseudo_id
	SearchRequest *GoogleCloudDiscoveryengineV1betaSearchRequest `json:"searchRequest,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuerySetSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuerySetSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpecQuerySetSpec:
// Describes the specification of the query set.
type GoogleCloudDiscoveryengineV1betaEvaluationEvaluationSpecQuerySetSpec struct {
	// SampleQuerySet: Optional. The full resource name of the SampleQuerySet used
	// for the evaluation, in the format of
	// `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`.
	SampleQuerySet string `json:"sampleQuerySet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SampleQuerySet") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SampleQuerySet") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaHealthcareFhirConfig: Config to data store
// for `HEALTHCARE_FHIR` vertical.
type GoogleCloudDiscoveryengineV1betaHealthcareFhirConfig struct {
	// EnableConfigurableSchema: Whether to enable configurable schema for
	// `HEALTHCARE_FHIR` vertical. If set to `true`, the predefined healthcare fhir
	// schema can be extended for more customized searching and filtering.
	EnableConfigurableSchema bool `json:"enableConfigurableSchema,omitempty"`
	// EnableStaticIndexingForBatchIngestion: Whether to enable static indexing for
	// `HEALTHCARE_FHIR` batch ingestion. If set to `true`, the batch ingestion
	// will be processed in a static indexing mode which is slower but more capable
	// of handling larger volume.
	EnableStaticIndexingForBatchIngestion bool `json:"enableStaticIndexingForBatchIngestion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableConfigurableSchema")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableConfigurableSchema") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaIdentityMappingEntryOperationMetadata:
// IdentityMappingEntry LongRunningOperation metadata for
// IdentityMappingStoreService.ImportIdentityMappings and
// IdentityMappingStoreService.PurgeIdentityMappings
type GoogleCloudDiscoveryengineV1betaIdentityMappingEntryOperationMetadata struct {
	// FailureCount: The number of IdentityMappingEntries that failed to be
	// processed.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: The number of IdentityMappingEntries that were successfully
	// processed.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: The total number of IdentityMappingEntries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "FailureCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaIdpConfig: Identity Provider Config.
type GoogleCloudDiscoveryengineV1betaIdpConfig struct {
	// ExternalIdpConfig: External Identity provider config.
	ExternalIdpConfig *GoogleCloudDiscoveryengineV1betaIdpConfigExternalIdpConfig `json:"externalIdpConfig,omitempty"`
	// IdpType: Identity provider type configured.
	//
	// Possible values:
	//   "IDP_TYPE_UNSPECIFIED" - Default value. ACL search not enabled.
	//   "GSUITE" - Google 1P provider.
	//   "THIRD_PARTY" - Third party provider.
	IdpType string `json:"idpType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExternalIdpConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExternalIdpConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaIdpConfigExternalIdpConfig: Third party IDP
// Config.
type GoogleCloudDiscoveryengineV1betaIdpConfigExternalIdpConfig struct {
	// WorkforcePoolName: Workforce pool name. Example:
	// "locations/global/workforcePools/pool_id"
	WorkforcePoolName string `json:"workforcePoolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WorkforcePoolName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WorkforcePoolName") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportCompletionSuggestionsMetadata:
// Metadata related to the progress of the ImportCompletionSuggestions
// operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaImportCompletionSuggestionsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of CompletionSuggestions that failed to be imported.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of CompletionSuggestions successfully imported.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportCompletionSuggestionsResponse:
// Response of the CompletionService.ImportCompletionSuggestions method. If the
// long running operation is done, this message is returned by the
// google.longrunning.Operations.response field if the operation is successful.
type GoogleCloudDiscoveryengineV1betaImportCompletionSuggestionsResponse struct {
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1betaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportDocumentsMetadata: Metadata related to
// the progress of the ImportDocuments operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaImportDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: Total count of entries that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportDocumentsResponse: Response of the
// ImportDocumentsRequest. If the long running operation is done, then this
// message is returned by the google.longrunning.Operations.response field if
// the operation was successful.
type GoogleCloudDiscoveryengineV1betaImportDocumentsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1betaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportErrorConfig: Configuration of
// destination for Import related errors.
type GoogleCloudDiscoveryengineV1betaImportErrorConfig struct {
	// GcsPrefix: Cloud Storage prefix for import errors. This must be an empty,
	// existing Cloud Storage directory. Import errors are written to sharded files
	// in this directory, one per line, as a JSON-encoded `google.rpc.Status`
	// message.
	GcsPrefix string `json:"gcsPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsPrefix") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsPrefix") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportIdentityMappingsResponse: Response
// message for IdentityMappingStoreService.ImportIdentityMappings
type GoogleCloudDiscoveryengineV1betaImportIdentityMappingsResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportSampleQueriesMetadata: Metadata
// related to the progress of the ImportSampleQueries operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaImportSampleQueriesMetadata struct {
	// CreateTime: ImportSampleQueries operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of SampleQuerys that failed to be imported.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of SampleQuerys successfully imported.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// TotalCount: Total count of SampleQuerys that were processed.
	TotalCount int64 `json:"totalCount,omitempty,string"`
	// UpdateTime: ImportSampleQueries operation last update time. If the operation
	// is done, this is also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportSampleQueriesResponse: Response of the
// SampleQueryService.ImportSampleQueries method. If the long running operation
// is done, this message is returned by the
// google.longrunning.Operations.response field if the operation is successful.
type GoogleCloudDiscoveryengineV1betaImportSampleQueriesResponse struct {
	// ErrorConfig: The desired location of errors incurred during the Import.
	ErrorConfig *GoogleCloudDiscoveryengineV1betaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportSuggestionDenyListEntriesMetadata:
// Metadata related to the progress of the ImportSuggestionDenyListEntries
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1betaImportSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportSuggestionDenyListEntriesResponse:
// Response message for CompletionService.ImportSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1betaImportSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// FailedEntriesCount: Count of deny list entries that failed to be imported.
	FailedEntriesCount int64 `json:"failedEntriesCount,omitempty,string"`
	// ImportedEntriesCount: Count of deny list entries successfully imported.
	ImportedEntriesCount int64 `json:"importedEntriesCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportUserEventsMetadata: Metadata related
// to the progress of the Import operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaImportUserEventsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// SuccessCount: Count of entries that were processed successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaImportUserEventsResponse: Response of the
// ImportUserEventsRequest. If the long running operation was successful, then
// this message is returned by the google.longrunning.Operations.response field
// if the operation was successful.
type GoogleCloudDiscoveryengineV1betaImportUserEventsResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors if this field
	// was set in the request.
	ErrorConfig *GoogleCloudDiscoveryengineV1betaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// JoinedEventsCount: Count of user events imported with complete existing
	// Documents.
	JoinedEventsCount int64 `json:"joinedEventsCount,omitempty,string"`
	// UnjoinedEventsCount: Count of user events imported, but with Document
	// information not found in the existing Branch.
	UnjoinedEventsCount int64 `json:"unjoinedEventsCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaInterval: A floating point interval.
type GoogleCloudDiscoveryengineV1betaInterval struct {
	// ExclusiveMaximum: Exclusive upper bound.
	ExclusiveMaximum float64 `json:"exclusiveMaximum,omitempty"`
	// ExclusiveMinimum: Exclusive lower bound.
	ExclusiveMinimum float64 `json:"exclusiveMinimum,omitempty"`
	// Maximum: Inclusive upper bound.
	Maximum float64 `json:"maximum,omitempty"`
	// Minimum: Inclusive lower bound.
	Minimum float64 `json:"minimum,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExclusiveMaximum") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExclusiveMaximum") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1betaInterval) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1betaInterval
	var s1 struct {
		ExclusiveMaximum gensupport.JSONFloat64 `json:"exclusiveMaximum"`
		ExclusiveMinimum gensupport.JSONFloat64 `json:"exclusiveMinimum"`
		Maximum          gensupport.JSONFloat64 `json:"maximum"`
		Minimum          gensupport.JSONFloat64 `json:"minimum"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.ExclusiveMaximum = float64(s1.ExclusiveMaximum)
	s.ExclusiveMinimum = float64(s1.ExclusiveMinimum)
	s.Maximum = float64(s1.Maximum)
	s.Minimum = float64(s1.Minimum)
	return nil
}

// GoogleCloudDiscoveryengineV1betaLanguageInfo: Language info for DataStore.
type GoogleCloudDiscoveryengineV1betaLanguageInfo struct {
	// Language: Output only. Language part of normalized_language_code. E.g.:
	// `en-US` -> `en`, `zh-Hans-HK` -> `zh`, `en` -> `en`.
	Language string `json:"language,omitempty"`
	// LanguageCode: The language code for the DataStore.
	LanguageCode string `json:"languageCode,omitempty"`
	// NormalizedLanguageCode: Output only. This is the normalized form of
	// language_code. E.g.: language_code of `en-GB`, `en_GB`, `en-UK` or `en-gb`
	// will have normalized_language_code of `en-GB`.
	NormalizedLanguageCode string `json:"normalizedLanguageCode,omitempty"`
	// Region: Output only. Region part of normalized_language_code, if present.
	// E.g.: `en-US` -> `US`, `zh-Hans-HK` -> `HK`, `en` -> ``.
	Region string `json:"region,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Language") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Language") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaLicenseConfig: Information about users'
// licenses.
type GoogleCloudDiscoveryengineV1betaLicenseConfig struct {
	// AutoRenew: Optional. Whether the license config should be auto renewed when
	// it reaches the end date.
	AutoRenew bool `json:"autoRenew,omitempty"`
	// EndDate: Optional. The planed end date.
	EndDate *GoogleTypeDate `json:"endDate,omitempty"`
	// FreeTrial: Optional. Whether the license config is for free trial.
	FreeTrial bool `json:"freeTrial,omitempty"`
	// GeminiBundle: Output only. Whether the license config is for Gemini bundle.
	GeminiBundle bool `json:"geminiBundle,omitempty"`
	// LicenseCount: Required. Number of licenses purchased.
	LicenseCount int64 `json:"licenseCount,omitempty,string"`
	// Name: Immutable. Identifier. The fully qualified resource name of the
	// license config. Format:
	// `projects/{project}/locations/{location}/licenseConfigs/{license_config}`
	Name string `json:"name,omitempty"`
	// StartDate: Required. The start date.
	StartDate *GoogleTypeDate `json:"startDate,omitempty"`
	// State: Output only. The state of the license config.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default value. The license config does not exist.
	//   "ACTIVE" - The license config is effective and being used.
	//   "EXPIRED" - The license config has expired.
	//   "NOT_STARTED" - The license config has not started yet, and its start date
	// is in the future.
	State string `json:"state,omitempty"`
	// SubscriptionTerm: Required. Subscription term.
	//
	// Possible values:
	//   "SUBSCRIPTION_TERM_UNSPECIFIED" - Default value, do not use.
	//   "SUBSCRIPTION_TERM_ONE_MONTH" - 1 month.
	//   "SUBSCRIPTION_TERM_ONE_YEAR" - 1 year.
	//   "SUBSCRIPTION_TERM_THREE_YEARS" - 3 years.
	SubscriptionTerm string `json:"subscriptionTerm,omitempty"`
	// SubscriptionTier: Required. Subscription tier information for the license
	// config.
	//
	// Possible values:
	//   "SUBSCRIPTION_TIER_UNSPECIFIED" - Default value.
	//   "SUBSCRIPTION_TIER_SEARCH" - Search tier. Search tier can access VAIS
	// search features and NotebookLM features.
	//   "SUBSCRIPTION_TIER_SEARCH_AND_ASSISTANT" - Search + assistant tier. Search
	// + assistant tier can access VAIS search features, NotebookLM features and
	// assistant features.
	//   "SUBSCRIPTION_TIER_NOTEBOOK_LM" - NotebookLM tier. NotebookLM is a
	// subscription tier can only access NotebookLM features.
	//   "SUBSCRIPTION_TIER_FRONTLINE_WORKER" - Frontline worker tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_STARTER" - Agentspace Starter tier.
	//   "SUBSCRIPTION_TIER_AGENTSPACE_BUSINESS" - Agentspace Business tier.
	//   "SUBSCRIPTION_TIER_ENTERPRISE" - Enterprise tier.
	//   "SUBSCRIPTION_TIER_EDU" - EDU tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO" - EDU Pro tier.
	//   "SUBSCRIPTION_TIER_EDU_EMERGING" - EDU emerging market tier.
	//   "SUBSCRIPTION_TIER_EDU_PRO_EMERGING" - EDU Pro emerging market tier.
	SubscriptionTier string `json:"subscriptionTier,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AutoRenew") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AutoRenew") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaNaturalLanguageQueryUnderstandingConfig:
// Configuration for Natural Language Query Understanding.
type GoogleCloudDiscoveryengineV1betaNaturalLanguageQueryUnderstandingConfig struct {
	// Mode: Mode of Natural Language Query Understanding. If this field is unset,
	// the behavior defaults to
	// NaturalLanguageQueryUnderstandingConfig.Mode.DISABLED.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Default value.
	//   "DISABLED" - Natural Language Query Understanding is disabled.
	//   "ENABLED" - Natural Language Query Understanding is enabled.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaObtainCrawlRateResponse: Response message
// for CrawlRateManagementService.ObtainCrawlRate method. The response contains
// organcic or dedicated crawl rate time series data for monitoring, depending
// on whether dedicated crawl rate is set.
type GoogleCloudDiscoveryengineV1betaObtainCrawlRateResponse struct {
	// DedicatedCrawlRateTimeSeries: The historical dedicated crawl rate timeseries
	// data, used for monitoring.
	DedicatedCrawlRateTimeSeries *GoogleCloudDiscoveryengineV1betaDedicatedCrawlRateTimeSeries `json:"dedicatedCrawlRateTimeSeries,omitempty"`
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// OrganicCrawlRateTimeSeries: The historical organic crawl rate timeseries
	// data, used for monitoring.
	OrganicCrawlRateTimeSeries *GoogleCloudDiscoveryengineV1betaOrganicCrawlRateTimeSeries `json:"organicCrawlRateTimeSeries,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DedicatedCrawlRateTimeSeries") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DedicatedCrawlRateTimeSeries") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaOrganicCrawlRateTimeSeries: The historical
// organic crawl rate timeseries data, used for monitoring. Organic crawl is
// auto-determined by Google to crawl the user's website when dedicate crawl is
// not set. Crawl rate is the QPS of crawl request Google sends to the user's
// website.
type GoogleCloudDiscoveryengineV1betaOrganicCrawlRateTimeSeries struct {
	// GoogleOrganicCrawlRate: Google's organic crawl rate time series, which is
	// the sum of all googlebots' crawl rate. Please refer to
	// https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers
	// for more details about googlebots.
	GoogleOrganicCrawlRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"googleOrganicCrawlRate,omitempty"`
	// VertexAiOrganicCrawlRate: Vertex AI's organic crawl rate time series, which
	// is the crawl rate of Google-CloudVertexBot when dedicate crawl is not set.
	// Please refer to
	// https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers#google-cloudvertexbot
	// for more details about Google-CloudVertexBot.
	VertexAiOrganicCrawlRate *GoogleCloudDiscoveryengineV1betaCrawlRateTimeSeries `json:"vertexAiOrganicCrawlRate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoogleOrganicCrawlRate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoogleOrganicCrawlRate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaProject: Metadata and configurations for a
// Google Cloud project in the service.
type GoogleCloudDiscoveryengineV1betaProject struct {
	// CreateTime: Output only. The timestamp when this project is created.
	CreateTime string `json:"createTime,omitempty"`
	// CustomerProvidedConfig: Optional. Customer provided configurations.
	CustomerProvidedConfig *GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfig `json:"customerProvidedConfig,omitempty"`
	// Name: Output only. Full resource name of the project, for example
	// `projects/{project}`. Note that when making requests, project number and
	// project id are both acceptable, but the server will always respond in
	// project number.
	Name string `json:"name,omitempty"`
	// ProvisionCompletionTime: Output only. The timestamp when this project is
	// successfully provisioned. Empty value means this project is still
	// provisioning and is not ready for use.
	ProvisionCompletionTime string `json:"provisionCompletionTime,omitempty"`
	// ServiceTermsMap: Output only. A map of terms of services. The key is the
	// `id` of ServiceTerms.
	ServiceTermsMap map[string]GoogleCloudDiscoveryengineV1betaProjectServiceTerms `json:"serviceTermsMap,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfigNotebooklmConfig
// : Configuration for NotebookLM.
type GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfigNotebooklmConfig struct {
	// ModelArmorConfig: Model Armor configuration to be used for sanitizing user
	// prompts and LLM responses.
	ModelArmorConfig *GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig `json:"modelArmorConfig,omitempty"`
	// OptOutNotebookSharing: Optional. Whether to disable the notebook sharing
	// feature for the project. Default to false if not specified.
	OptOutNotebookSharing bool `json:"optOutNotebookSharing,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ModelArmorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ModelArmorConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfigNotebooklmConfig
// ModelArmorConfig: Configuration for customer defined Model Armor templates
// to be used for sanitizing user prompts and LLM responses.
type GoogleCloudDiscoveryengineV1betaProjectCustomerProvidedConfigNotebooklmConfigModelArmorConfig struct {
	// ResponseTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing LLM responses. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the LLM response.
	ResponseTemplate string `json:"responseTemplate,omitempty"`
	// UserPromptTemplate: Optional. The resource name of the Model Armor Template
	// for sanitizing user prompts. Format:
	// projects/{project}/locations/{location}/templates/{template_id} If not
	// specified, no sanitization will be applied to the user prompt.
	UserPromptTemplate string `json:"userPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ResponseTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ResponseTemplate") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaProjectServiceTerms: Metadata about the
// terms of service.
type GoogleCloudDiscoveryengineV1betaProjectServiceTerms struct {
	// AcceptTime: The last time when the project agreed to the terms of service.
	AcceptTime string `json:"acceptTime,omitempty"`
	// DeclineTime: The last time when the project declined or revoked the
	// agreement to terms of service.
	DeclineTime string `json:"declineTime,omitempty"`
	// Id: The unique identifier of this terms of service. Available terms: *
	// `GA_DATA_USE_TERMS`: Terms for data use
	// (https://cloud.google.com/retail/data-use-terms). When using this as `id`,
	// the acceptable version to provide is `2022-11-23`.
	Id string `json:"id,omitempty"`
	// State: Whether the project has accepted/rejected the service terms or it is
	// still pending.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The default value of the enum. This value is not
	// actually used.
	//   "TERMS_ACCEPTED" - The project has given consent to the terms of service.
	//   "TERMS_PENDING" - The project is pending to review and accept the terms of
	// service.
	//   "TERMS_DECLINED" - The project has declined or revoked the agreement to
	// terms of service.
	State string `json:"state,omitempty"`
	// Version: The version string of the terms of service. For acceptable values,
	// see the comments for id above.
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaProvisionProjectMetadata: Metadata
// associated with a project provision operation.
type GoogleCloudDiscoveryengineV1betaProvisionProjectMetadata struct {
}

// GoogleCloudDiscoveryengineV1betaPurgeDocumentsMetadata: Metadata related to
// the progress of the PurgeDocuments operation. This will be returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaPurgeDocumentsMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// FailureCount: Count of entries that encountered errors while processing.
	FailureCount int64 `json:"failureCount,omitempty,string"`
	// IgnoredCount: Count of entries that were ignored as entries were not found.
	IgnoredCount int64 `json:"ignoredCount,omitempty,string"`
	// SuccessCount: Count of entries that were deleted successfully.
	SuccessCount int64 `json:"successCount,omitempty,string"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaPurgeDocumentsResponse: Response message for
// DocumentService.PurgeDocuments method. If the long running operation is
// successfully done, then this message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1betaPurgeDocumentsResponse struct {
	// PurgeCount: The total count of documents purged as a result of the
	// operation.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// PurgeSample: A sample of document names that will be deleted. Only populated
	// if `force` is set to false. A max of 100 names will be returned and the
	// names are chosen at random.
	PurgeSample []string `json:"purgeSample,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PurgeCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PurgeCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaPurgeSuggestionDenyListEntriesMetadata:
// Metadata related to the progress of the PurgeSuggestionDenyListEntries
// operation. This is returned by the google.longrunning.Operation.metadata
// field.
type GoogleCloudDiscoveryengineV1betaPurgeSuggestionDenyListEntriesMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaPurgeSuggestionDenyListEntriesResponse:
// Response message for CompletionService.PurgeSuggestionDenyListEntries
// method.
type GoogleCloudDiscoveryengineV1betaPurgeSuggestionDenyListEntriesResponse struct {
	// ErrorSamples: A sample of errors encountered while processing the request.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// PurgeCount: Number of suggestion deny list entries purged.
	PurgeCount int64 `json:"purgeCount,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "ErrorSamples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorSamples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaQualityMetrics: Describes the metrics
// produced by the evaluation.
type GoogleCloudDiscoveryengineV1betaQualityMetrics struct {
	// DocNdcg: Normalized discounted cumulative gain (NDCG) per document, at
	// various top-k cutoff levels. NDCG measures the ranking quality, giving
	// higher relevance to top results. Example (top-3): Suppose SampleQuery with
	// three retrieved documents (D1, D2, D3) and binary relevance judgements (1
	// for relevant, 0 for not relevant): Retrieved: [D3 (0), D1 (1), D2 (1)]
	// Ideal: [D1 (1), D2 (1), D3 (0)] Calculate NDCG@3 for each SampleQuery: *
	// DCG@3: 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 * Ideal DCG@3:
	// 1/log2(1+1) + 1/log2(2+1) + 0/log2(3+1) = 1.63 * NDCG@3: 1.13/1.63 = 0.693
	DocNdcg *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics `json:"docNdcg,omitempty"`
	// DocPrecision: Precision per document, at various top-k cutoff levels.
	// Precision is the fraction of retrieved documents that are relevant. Example
	// (top-5): * For a single SampleQuery, If 4 out of 5 retrieved documents in
	// the top-5 are relevant, precision@5 = 4/5 = 0.8
	DocPrecision *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics `json:"docPrecision,omitempty"`
	// DocRecall: Recall per document, at various top-k cutoff levels. Recall is
	// the fraction of relevant documents retrieved out of all relevant documents.
	// Example (top-5): * For a single SampleQuery, If 3 out of 5 relevant
	// documents are retrieved in the top-5, recall@5 = 3/5 = 0.6
	DocRecall *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics `json:"docRecall,omitempty"`
	// PageNdcg: Normalized discounted cumulative gain (NDCG) per page, at various
	// top-k cutoff levels. NDCG measures the ranking quality, giving higher
	// relevance to top results. Example (top-3): Suppose SampleQuery with three
	// retrieved pages (P1, P2, P3) and binary relevance judgements (1 for
	// relevant, 0 for not relevant): Retrieved: [P3 (0), P1 (1), P2 (1)] Ideal:
	// [P1 (1), P2 (1), P3 (0)] Calculate NDCG@3 for SampleQuery: * DCG@3:
	// 0/log2(1+1) + 1/log2(2+1) + 1/log2(3+1) = 1.13 * Ideal DCG@3: 1/log2(1+1) +
	// 1/log2(2+1) + 0/log2(3+1) = 1.63 * NDCG@3: 1.13/1.63 = 0.693
	PageNdcg *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics `json:"pageNdcg,omitempty"`
	// PageRecall: Recall per page, at various top-k cutoff levels. Recall is the
	// fraction of relevant pages retrieved out of all relevant pages. Example
	// (top-5): * For a single SampleQuery, if 3 out of 5 relevant pages are
	// retrieved in the top-5, recall@5 = 3/5 = 0.6
	PageRecall *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics `json:"pageRecall,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocNdcg") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocNdcg") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics: Stores the metric
// values at specific top-k levels.
type GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics struct {
	// Top1: The top-1 value.
	Top1 float64 `json:"top1,omitempty"`
	// Top10: The top-10 value.
	Top10 float64 `json:"top10,omitempty"`
	// Top3: The top-3 value.
	Top3 float64 `json:"top3,omitempty"`
	// Top5: The top-5 value.
	Top5 float64 `json:"top5,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Top1") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Top1") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1betaQualityMetricsTopkMetrics
	var s1 struct {
		Top1  gensupport.JSONFloat64 `json:"top1"`
		Top10 gensupport.JSONFloat64 `json:"top10"`
		Top3  gensupport.JSONFloat64 `json:"top3"`
		Top5  gensupport.JSONFloat64 `json:"top5"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Top1 = float64(s1.Top1)
	s.Top10 = float64(s1.Top10)
	s.Top3 = float64(s1.Top3)
	s.Top5 = float64(s1.Top5)
	return nil
}

// GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateMetadata: Metadata
// related to the progress of the
// CrawlRateManagementService.RemoveDedicatedCrawlRate operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateResponse: Response
// message for CrawlRateManagementService.RemoveDedicatedCrawlRate method. It
// simply returns the state of the response, and an error message if the state
// is FAILED.
type GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateResponse struct {
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,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 GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaRemoveDedicatedCrawlRateResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaSchema: Defines the structure and layout of
// a type of document data.
type GoogleCloudDiscoveryengineV1betaSchema struct {
	// JsonSchema: The JSON representation of the schema.
	JsonSchema string `json:"jsonSchema,omitempty"`
	// Name: Immutable. The full resource name of the schema, in the format of
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/schemas/{schema}`. This field must be a UTF-8 encoded string
	// with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// StructSchema: The structured representation of the schema.
	StructSchema googleapi.RawMessage `json:"structSchema,omitempty"`
	// ForceSendFields is a list of field names (e.g. "JsonSchema") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "JsonSchema") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchLinkPromotion: Promotion proto
// includes uri and other helping information to display the promotion.
type GoogleCloudDiscoveryengineV1betaSearchLinkPromotion struct {
	// Description: Optional. The Promotion description. Maximum length: 200
	// characters.
	Description string `json:"description,omitempty"`
	// Document: Optional. The Document the user wants to promote. For site search,
	// leave unset and only populate uri. Can be set along with uri.
	Document string `json:"document,omitempty"`
	// Enabled: Optional. The enabled promotion will be returned for any serving
	// configs associated with the parent of the control this promotion is attached
	// to. This flag is used for basic site search only.
	Enabled bool `json:"enabled,omitempty"`
	// ImageUri: Optional. The promotion thumbnail image url.
	ImageUri string `json:"imageUri,omitempty"`
	// Title: Required. The title of the promotion. Maximum length: 160 characters.
	Title string `json:"title,omitempty"`
	// Uri: Optional. The URL for the page the user wants to promote. Must be set
	// for site search. For other verticals, this is optional.
	Uri string `json:"uri,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 GoogleCloudDiscoveryengineV1betaSearchLinkPromotion) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaSearchLinkPromotion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaSearchRequest: Request message for
// SearchService.Search method.
type GoogleCloudDiscoveryengineV1betaSearchRequest struct {
	// BoostSpec: Boost specification to boost certain documents. For more
	// information on boosting, see Boosting
	// (https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results)
	BoostSpec *GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// Branch: The branch resource name, such as
	// `projects/*/locations/global/collections/default_collection/dataStores/defaul
	// t_data_store/branches/0`. Use `default_branch` as the branch ID or leave
	// this field empty, to search documents under the default branch.
	Branch string `json:"branch,omitempty"`
	// CanonicalFilter: The default filter that is applied when a user performs a
	// search without checking any filters on the search page. The filter applied
	// to every search request when quality improvement such as query expansion is
	// needed. In the case a query does not have a sufficient amount of results
	// this filter will be used to determine whether or not to enable the query
	// expansion flow. The original filter will still be used for the query
	// expanded search. This field is strongly recommended to achieve high search
	// quality. For more information about filter syntax, see SearchRequest.filter.
	CanonicalFilter string `json:"canonicalFilter,omitempty"`
	// ContentSearchSpec: A specification for configuring the behavior of content
	// search.
	ContentSearchSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpec `json:"contentSearchSpec,omitempty"`
	// DataStoreSpecs: Specifications that define the specific DataStores to be
	// searched, along with configurations for those data stores. This is only
	// considered for Engines with multiple data stores. For engines with a single
	// data store, the specs directly under SearchRequest should be used.
	DataStoreSpecs []*GoogleCloudDiscoveryengineV1betaSearchRequestDataStoreSpec `json:"dataStoreSpecs,omitempty"`
	// DisplaySpec: Optional. Config for display feature, like match highlighting
	// on search results.
	DisplaySpec *GoogleCloudDiscoveryengineV1betaSearchRequestDisplaySpec `json:"displaySpec,omitempty"`
	// EmbeddingSpec: Uses the provided embedding to do additional semantic
	// document retrieval. The retrieval is based on the dot product of
	// SearchRequest.EmbeddingSpec.EmbeddingVector.vector and the document
	// embedding that is provided in
	// SearchRequest.EmbeddingSpec.EmbeddingVector.field_path. If
	// SearchRequest.EmbeddingSpec.EmbeddingVector.field_path is not provided, it
	// will use ServingConfig.EmbeddingConfig.field_path.
	EmbeddingSpec *GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpec `json:"embeddingSpec,omitempty"`
	// FacetSpecs: Facet specifications for faceted search. If empty, no facets are
	// returned. A maximum of 100 values are allowed. Otherwise, an
	// `INVALID_ARGUMENT` error is returned.
	FacetSpecs []*GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpec `json:"facetSpecs,omitempty"`
	// Filter: The filter syntax consists of an expression language for
	// constructing a predicate from one or more fields of the documents being
	// filtered. Filter expression is case-sensitive. If this field is
	// unrecognizable, an `INVALID_ARGUMENT` is returned. Filtering in Vertex AI
	// Search is done by mapping the LHS filter key to a key property defined in
	// the Vertex AI Search backend -- this mapping is defined by the customer in
	// their schema. For example a media customer might have a field 'name' in
	// their schema. In this case the filter would look like this: filter -->
	// name:'ANY("king kong")' For more information about filtering including
	// syntax and filter operators, see Filter
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// ImageQuery: Raw image query.
	ImageQuery *GoogleCloudDiscoveryengineV1betaSearchRequestImageQuery `json:"imageQuery,omitempty"`
	// LanguageCode: The BCP-47 language code, such as "en-US" or "sr-Latn". For
	// more information, see Standard fields
	// (https://cloud.google.com/apis/design/standard_fields). This field helps to
	// better interpret the query. If a value isn't specified, the query language
	// code is automatically detected, which may not be accurate.
	LanguageCode string `json:"languageCode,omitempty"`
	// NaturalLanguageQueryUnderstandingSpec: Optional. Config for natural language
	// query understanding capabilities, such as extracting structured field
	// filters from the query. Refer to this documentation
	// (https://cloud.google.com/generative-ai-app-builder/docs/natural-language-queries)
	// for more information. If `naturalLanguageQueryUnderstandingSpec` is not
	// specified, no additional natural language query understanding will be done.
	NaturalLanguageQueryUnderstandingSpec *GoogleCloudDiscoveryengineV1betaSearchRequestNaturalLanguageQueryUnderstandingSpec `json:"naturalLanguageQueryUnderstandingSpec,omitempty"`
	// Offset: A 0-indexed integer that specifies the current offset (that is,
	// starting result location, amongst the Documents deemed by the API as
	// relevant) in search results. This field is only considered if page_token is
	// unset. If this field is negative, an `INVALID_ARGUMENT` is returned. A large
	// offset may be capped to a reasonable threshold.
	Offset int64 `json:"offset,omitempty"`
	// OneBoxPageSize: The maximum number of results to return for OneBox. This
	// applies to each OneBox type individually. Default number is 10.
	OneBoxPageSize int64 `json:"oneBoxPageSize,omitempty"`
	// OrderBy: The order in which documents are returned. Documents can be ordered
	// by a field in an Document object. Leave it unset if ordered by relevance.
	// `order_by` expression is case-sensitive. For more information on ordering
	// the website search results, see Order web search results
	// (https://cloud.google.com/generative-ai-app-builder/docs/order-web-search-results).
	// For more information on ordering the healthcare search results, see Order
	// healthcare search results
	// (https://cloud.google.com/generative-ai-app-builder/docs/order-hc-results).
	// If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
	OrderBy string `json:"orderBy,omitempty"`
	// PageSize: Maximum number of Documents to return. The maximum allowed value
	// depends on the data type. Values above the maximum value are coerced to the
	// maximum value. * Websites with basic indexing: Default `10`, Maximum `25`. *
	// Websites with advanced indexing: Default `25`, Maximum `50`. * Other:
	// Default `50`, Maximum `100`. If this field is negative, an
	// `INVALID_ARGUMENT` is returned.
	PageSize int64 `json:"pageSize,omitempty"`
	// PageToken: A page token received from a previous SearchService.Search call.
	// Provide this to retrieve the subsequent page. When paginating, all other
	// parameters provided to SearchService.Search must match the call that
	// provided the page token. Otherwise, an `INVALID_ARGUMENT` error is returned.
	PageToken string `json:"pageToken,omitempty"`
	// Params: Additional search parameters. For public website search only,
	// supported values are: * `user_country_code`: string. Default empty. If set
	// to non-empty, results are restricted or boosted based on the location
	// provided. For example, `user_country_code: "au" For available codes see
	// Country Codes
	// (https://developers.google.com/custom-search/docs/json_api_reference#countryCodes)
	// * `search_type`: double. Default empty. Enables non-webpage searching
	// depending on the value. The only valid non-default value is 1, which enables
	// image searching. For example, `search_type: 1`
	Params googleapi.RawMessage `json:"params,omitempty"`
	// PersonalizationSpec: The specification for personalization. Notice that if
	// both ServingConfig.personalization_spec and
	// SearchRequest.personalization_spec are set,
	// SearchRequest.personalization_spec overrides
	// ServingConfig.personalization_spec.
	PersonalizationSpec *GoogleCloudDiscoveryengineV1betaSearchRequestPersonalizationSpec `json:"personalizationSpec,omitempty"`
	// Query: Raw search query.
	Query string `json:"query,omitempty"`
	// QueryExpansionSpec: The query expansion specification that specifies the
	// conditions under which query expansion occurs.
	QueryExpansionSpec *GoogleCloudDiscoveryengineV1betaSearchRequestQueryExpansionSpec `json:"queryExpansionSpec,omitempty"`
	// RankingExpression: Optional. The ranking expression controls the customized
	// ranking on retrieval documents. This overrides
	// ServingConfig.ranking_expression. The syntax and supported features depend
	// on the `ranking_expression_backend` value. If `ranking_expression_backend`
	// is not provided, it defaults to `RANK_BY_EMBEDDING`. If
	// ranking_expression_backend is not provided or set to `RANK_BY_EMBEDDING`, it
	// should be a single function or multiple functions that are joined by "+". *
	// ranking_expression = function, { " + ", function }; Supported functions: *
	// double * relevance_score * double * dotProduct(embedding_field_path)
	// Function variables: * `relevance_score`: pre-defined keywords, used for
	// measure relevance between query and document. * `embedding_field_path`: the
	// document embedding field used with query embedding vector. * `dotProduct`:
	// embedding function between `embedding_field_path` and query embedding
	// vector. Example ranking expression: If document has an embedding field
	// doc_embedding, the ranking expression could be `0.5 * relevance_score + 0.3
	// * dotProduct(doc_embedding)`. If ranking_expression_backend is set to
	// `RANK_BY_FORMULA`, the following expression types (and combinations of those
	// chained using + or * operators) are supported: * `double` * `signal` *
	// `log(signal)` * `exp(signal)` * `rr(signal, double > 0)` -- reciprocal rank
	// transformation with second argument being a denominator constant. *
	// `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise. *
	// `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns signal2
	// | double, else returns signal1. Here are a few examples of ranking formulas
	// that use the supported ranking expression types: - `0.2 *
	// semantic_similarity_score + 0.8 * log(keyword_similarity_score)` -- mostly
	// rank by the logarithm of `keyword_similarity_score` with slight
	// `semantic_smilarity_score` adjustment. - `0.2 *
	// exp(fill_nan(semantic_similarity_score, 0)) + 0.3 *
	// is_nan(keyword_similarity_score)` -- rank by the exponent of
	// `semantic_similarity_score` filling the value with 0 if it's NaN, also add
	// constant 0.3 adjustment to the final score if `semantic_similarity_score` is
	// NaN. - `0.2 * rr(semantic_similarity_score, 16) + 0.8 *
	// rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank of
	// `keyword_similarity_score` with slight adjustment of reciprocal rank of
	// `semantic_smilarity_score`. The following signals are supported: *
	// `semantic_similarity_score`: semantic similarity adjustment that is
	// calculated using the embeddings generated by a proprietary Google model.
	// This score determines how semantically similar a search query is to a
	// document. * `keyword_similarity_score`: keyword match adjustment uses the
	// Best Match 25 (BM25) ranking function. This score is calculated using a
	// probabilistic model to estimate the probability that a document is relevant
	// to a given query. * `relevance_score`: semantic relevance adjustment that
	// uses a proprietary Google model to determine the meaning and intent behind a
	// user's query in context with the content in the documents. * `pctr_rank`:
	// predicted conversion rate adjustment as a rank use predicted Click-through
	// rate (pCTR) to gauge the relevance and attractiveness of a search result
	// from a user's perspective. A higher pCTR suggests that the result is more
	// likely to satisfy the user's query and intent, making it a valuable signal
	// for ranking. * `freshness_rank`: freshness adjustment as a rank *
	// `document_age`: The time in hours elapsed since the document was last
	// updated, a floating-point number (e.g., 0.25 means 15 minutes). *
	// `topicality_rank`: topicality adjustment as a rank. Uses proprietary Google
	// model to determine the keyword-based overlap between the query and the
	// document. * `base_rank`: the default rank of the result
	RankingExpression string `json:"rankingExpression,omitempty"`
	// RankingExpressionBackend: Optional. The backend to use for the ranking
	// expression evaluation.
	//
	// Possible values:
	//   "RANKING_EXPRESSION_BACKEND_UNSPECIFIED" - Default option for
	// unspecified/unknown values.
	//   "BYOE" - Deprecated: Use `RANK_BY_EMBEDDING` instead. Ranking by custom
	// embedding model, the default way to evaluate the ranking expression. Legacy
	// enum option, `RANK_BY_EMBEDDING` should be used instead.
	//   "CLEARBOX" - Deprecated: Use `RANK_BY_FORMULA` instead. Ranking by custom
	// formula. Legacy enum option, `RANK_BY_FORMULA` should be used instead.
	//   "RANK_BY_EMBEDDING" - Ranking by custom embedding model, the default way
	// to evaluate the ranking expression.
	//   "RANK_BY_FORMULA" - Ranking by custom formula.
	RankingExpressionBackend string `json:"rankingExpressionBackend,omitempty"`
	// RegionCode: The Unicode country/region code (CLDR) of a location, such as
	// "US" and "419". For more information, see Standard fields
	// (https://cloud.google.com/apis/design/standard_fields). If set, then results
	// will be boosted based on the region_code provided.
	RegionCode string `json:"regionCode,omitempty"`
	// RelevanceScoreSpec: Optional. The specification for returning the relevance
	// score.
	RelevanceScoreSpec *GoogleCloudDiscoveryengineV1betaSearchRequestRelevanceScoreSpec `json:"relevanceScoreSpec,omitempty"`
	// RelevanceThreshold: The relevance threshold of the search results. Default
	// to Google defined threshold, leveraging a balance of precision and recall to
	// deliver both highly accurate results and comprehensive coverage of relevant
	// information. This feature is not supported for healthcare search.
	//
	// Possible values:
	//   "RELEVANCE_THRESHOLD_UNSPECIFIED" - Default value. In this case, server
	// behavior defaults to Google defined threshold.
	//   "LOWEST" - Lowest relevance threshold.
	//   "LOW" - Low relevance threshold.
	//   "MEDIUM" - Medium relevance threshold.
	//   "HIGH" - High relevance threshold.
	RelevanceThreshold string `json:"relevanceThreshold,omitempty"`
	// SafeSearch: Whether to turn on safe search. This is only supported for
	// website search.
	SafeSearch bool `json:"safeSearch,omitempty"`
	// SearchAddonSpec: Optional. SearchAddonSpec is used to disable add-ons for
	// search as per new repricing model. This field is only supported for search
	// requests.
	SearchAddonSpec *GoogleCloudDiscoveryengineV1betaSearchRequestSearchAddonSpec `json:"searchAddonSpec,omitempty"`
	// SearchAsYouTypeSpec: Search as you type configuration. Only supported for
	// the IndustryVertical.MEDIA vertical.
	SearchAsYouTypeSpec *GoogleCloudDiscoveryengineV1betaSearchRequestSearchAsYouTypeSpec `json:"searchAsYouTypeSpec,omitempty"`
	// ServingConfig: Required. The resource name of the Search serving config,
	// such as
	// `projects/*/locations/global/collections/default_collection/engines/*/serving
	// Configs/default_serving_config`, or
	// `projects/*/locations/global/collections/default_collection/dataStores/defaul
	// t_data_store/servingConfigs/default_serving_config`. This field is used to
	// identify the serving configuration name, set of models used to make the
	// search.
	ServingConfig string `json:"servingConfig,omitempty"`
	// Session: The session resource name. Optional. Session allows users to do
	// multi-turn /search API calls or coordination between /search API calls and
	// /answer API calls. Example #1 (multi-turn /search API calls): Call /search
	// API with the session ID generated in the first call. Here, the previous
	// search query gets considered in query standing. I.e., if the first query is
	// "How did Alphabet do in 2022?" and the current query is "How about 2023?",
	// the current query will be interpreted as "How did Alphabet do in 2023?".
	// Example #2 (coordination between /search API calls and /answer API calls):
	// Call /answer API with the session ID generated in the first call. Here, the
	// answer generation happens in the context of the search results from the
	// first search call. Multi-turn Search feature is currently at private GA
	// stage. Please use v1alpha or v1beta version instead before we launch this
	// feature to public GA. Or ask for allowlisting through Google Support team.
	Session string `json:"session,omitempty"`
	// SessionSpec: Session specification. Can be used only when `session` is set.
	SessionSpec *GoogleCloudDiscoveryengineV1betaSearchRequestSessionSpec `json:"sessionSpec,omitempty"`
	// SpellCorrectionSpec: The spell correction specification that specifies the
	// mode under which spell correction takes effect.
	SpellCorrectionSpec *GoogleCloudDiscoveryengineV1betaSearchRequestSpellCorrectionSpec `json:"spellCorrectionSpec,omitempty"`
	// UserInfo: Information about the end user. Highly recommended for analytics
	// and personalization. UserInfo.user_agent is used to deduce `device_type` for
	// analytics.
	UserInfo *GoogleCloudDiscoveryengineV1betaUserInfo `json:"userInfo,omitempty"`
	// UserLabels: The user labels applied to a resource must meet the following
	// requirements: * Each resource can have multiple labels, up to a maximum of
	// 64. * Each label must be a key-value pair. * Keys have a minimum length of 1
	// character and a maximum length of 63 characters and cannot be empty. Values
	// can be empty and have a maximum length of 63 characters. * Keys and values
	// can contain only lowercase letters, numeric characters, underscores, and
	// dashes. All characters must use UTF-8 encoding, and international characters
	// are allowed. * The key portion of a label must be unique. However, you can
	// use the same key with multiple resources. * Keys must start with a lowercase
	// letter or international character. See Google Cloud Document
	// (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
	// for more details.
	UserLabels map[string]string `json:"userLabels,omitempty"`
	// UserPseudoId: A unique identifier for tracking visitors. For example, this
	// could be implemented with an HTTP cookie, which should be able to uniquely
	// identify a visitor on a single device. This unique identifier should not
	// change if the visitor logs in or out of the website. This field should NOT
	// have a fixed value such as `unknown_visitor`. This should be the same
	// identifier as UserEvent.user_pseudo_id and
	// CompleteQueryRequest.user_pseudo_id The field must be a UTF-8 encoded string
	// with a length limit of 128 characters. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	UserPseudoId string `json:"userPseudoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpec: Boost specification
// to boost certain documents.
type GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpec struct {
	// ConditionBoostSpecs: Condition boost specifications. If a document matches
	// multiple conditions in the specifications, boost scores from these
	// specifications are all applied and combined in a non-linear way. Maximum
	// number of specifications is 20.
	ConditionBoostSpecs []*GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpec `json:"conditionBoostSpecs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConditionBoostSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConditionBoostSpecs") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpec:
// Boost applies to documents which match a condition.
type GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpec struct {
	// Boost: Strength of the condition boost, which should be in [-1, 1]. Negative
	// boost means demotion. Default is 0.0. Setting to 1.0 gives the document a
	// big promotion. However, it does not necessarily mean that the boosted
	// document will be the top result at all times, nor that other documents will
	// be excluded. Results could still be shown even when none of them matches the
	// condition. And results that are significantly more relevant to the search
	// query can still trump your heavily favored but irrelevant documents. Setting
	// to -1.0 gives the document a big demotion. However, results that are deeply
	// relevant might still be shown. The document will have an upstream battle to
	// get a fairly high ranking, but it is not blocked out completely. Setting to
	// 0.0 means no boost applied. The boosting condition is ignored. Only one of
	// the (condition, boost) combination or the boost_control_spec below are set.
	// If both are set then the global boost is ignored and the more fine-grained
	// boost_control_spec is applied.
	Boost float64 `json:"boost,omitempty"`
	// BoostControlSpec: Complex specification for custom ranking based on customer
	// defined attribute value.
	BoostControlSpec *GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoostControlSpec `json:"boostControlSpec,omitempty"`
	// Condition: An expression which specifies a boost condition. The syntax and
	// supported fields are the same as a filter expression. See
	// SearchRequest.filter for detail syntax and limitations. Examples: * To boost
	// documents with document ID "doc_1" or "doc_2", and color "Red" or "Blue":
	// `(document_id: ANY("doc_1", "doc_2")) AND (color: ANY("Red", "Blue"))`
	Condition string `json:"condition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Boost") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Boost") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoost
// ControlSpec: Specification for custom ranking based on customer specified
// attribute value. It provides more controls for customized ranking than the
// simple (condition, boost) combination above.
type GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoostControlSpec struct {
	// AttributeType: The attribute type to be used to determine the boost amount.
	// The attribute value can be derived from the field value of the specified
	// field_name. In the case of numerical it is straightforward i.e.
	// attribute_value = numerical_field_value. In the case of freshness however,
	// attribute_value = (time.now() - datetime_field_value).
	//
	// Possible values:
	//   "ATTRIBUTE_TYPE_UNSPECIFIED" - Unspecified AttributeType.
	//   "NUMERICAL" - The value of the numerical field will be used to dynamically
	// update the boost amount. In this case, the attribute_value (the x value) of
	// the control point will be the actual value of the numerical field for which
	// the boost_amount is specified.
	//   "FRESHNESS" - For the freshness use case the attribute value will be the
	// duration between the current time and the date in the datetime field
	// specified. The value must be formatted as an XSD `dayTimeDuration` value (a
	// restricted subset of an ISO 8601 duration value). The pattern for this is:
	// `nDnM]`. For example, `5D`, `3DT12H30M`, `T24H`.
	AttributeType string `json:"attributeType,omitempty"`
	// ControlPoints: The control points used to define the curve. The monotonic
	// function (defined through the interpolation_type above) passes through the
	// control points listed here.
	ControlPoints []*GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoostControlSpecControlPoint `json:"controlPoints,omitempty"`
	// FieldName: The name of the field whose value will be used to determine the
	// boost amount.
	FieldName string `json:"fieldName,omitempty"`
	// InterpolationType: The interpolation type to be applied to connect the
	// control points listed below.
	//
	// Possible values:
	//   "INTERPOLATION_TYPE_UNSPECIFIED" - Interpolation type is unspecified. In
	// this case, it defaults to Linear.
	//   "LINEAR" - Piecewise linear interpolation will be applied.
	InterpolationType string `json:"interpolationType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoost
// ControlSpecControlPoint: The control points used to define the curve. The
// curve defined through these control points can only be monotonically
// increasing or decreasing(constant values are acceptable).
type GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpecConditionBoostSpecBoostControlSpecControlPoint struct {
	// AttributeValue: Can be one of: 1. The numerical field value. 2. The duration
	// spec for freshness: The value must be formatted as an XSD `dayTimeDuration`
	// value (a restricted subset of an ISO 8601 duration value). The pattern for
	// this is: `nDnM]`.
	AttributeValue string `json:"attributeValue,omitempty"`
	// BoostAmount: The value between -1 to 1 by which to boost the score if the
	// attribute_value evaluates to the value specified above.
	BoostAmount float64 `json:"boostAmount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AttributeValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AttributeValue") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpec: A
// specification for configuring the behavior of content search.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpec struct {
	// ChunkSpec: Specifies the chunk spec to be returned from the search response.
	// Only available if the SearchRequest.ContentSearchSpec.search_result_mode is
	// set to CHUNKS
	ChunkSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecChunkSpec `json:"chunkSpec,omitempty"`
	// ExtractiveContentSpec: If there is no extractive_content_spec provided,
	// there will be no extractive answer in the search response.
	ExtractiveContentSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecExtractiveContentSpec `json:"extractiveContentSpec,omitempty"`
	// SearchResultMode: Specifies the search result mode. If unspecified, the
	// search result mode defaults to `DOCUMENTS`.
	//
	// Possible values:
	//   "SEARCH_RESULT_MODE_UNSPECIFIED" - Default value.
	//   "DOCUMENTS" - Returns documents in the search result.
	//   "CHUNKS" - Returns chunks in the search result. Only available if the
	// DocumentProcessingConfig.chunking_config is specified.
	SearchResultMode string `json:"searchResultMode,omitempty"`
	// SnippetSpec: If `snippetSpec` is not specified, snippets are not included in
	// the search response.
	SnippetSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSnippetSpec `json:"snippetSpec,omitempty"`
	// SummarySpec: If `summarySpec` is not specified, summaries are not included
	// in the search response.
	SummarySpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpec `json:"summarySpec,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChunkSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChunkSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecChunkSpec:
// Specifies the chunk spec to be returned from the search response. Only
// available if the SearchRequest.ContentSearchSpec.search_result_mode is set
// to CHUNKS
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecChunkSpec struct {
	// NumNextChunks: The number of next chunks to be returned of the current
	// chunk. The maximum allowed value is 3. If not specified, no next chunks will
	// be returned.
	NumNextChunks int64 `json:"numNextChunks,omitempty"`
	// NumPreviousChunks: The number of previous chunks to be returned of the
	// current chunk. The maximum allowed value is 3. If not specified, no previous
	// chunks will be returned.
	NumPreviousChunks int64 `json:"numPreviousChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "NumNextChunks") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "NumNextChunks") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecExtractiveConte
// ntSpec: A specification for configuring the extractive content in a search
// response.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecExtractiveContentSpec struct {
	// MaxExtractiveAnswerCount: The maximum number of extractive answers returned
	// in each search result. An extractive answer is a verbatim answer extracted
	// from the original document, which provides a precise and contextually
	// relevant answer to the search query. If the number of matching answers is
	// less than the `max_extractive_answer_count`, return all of the answers.
	// Otherwise, return the `max_extractive_answer_count`. At most five answers
	// are returned for each SearchResult.
	MaxExtractiveAnswerCount int64 `json:"maxExtractiveAnswerCount,omitempty"`
	// MaxExtractiveSegmentCount: The max number of extractive segments returned in
	// each search result. Only applied if the DataStore is set to
	// DataStore.ContentConfig.CONTENT_REQUIRED or DataStore.solution_types is
	// SOLUTION_TYPE_CHAT. An extractive segment is a text segment extracted from
	// the original document that is relevant to the search query, and, in general,
	// more verbose than an extractive answer. The segment could then be used as
	// input for LLMs to generate summaries and answers. If the number of matching
	// segments is less than `max_extractive_segment_count`, return all of the
	// segments. Otherwise, return the `max_extractive_segment_count`.
	MaxExtractiveSegmentCount int64 `json:"maxExtractiveSegmentCount,omitempty"`
	// NumNextSegments: Return at most `num_next_segments` segments after each
	// selected segments.
	NumNextSegments int64 `json:"numNextSegments,omitempty"`
	// NumPreviousSegments: Specifies whether to also include the adjacent from
	// each selected segments. Return at most `num_previous_segments` segments
	// before each selected segments.
	NumPreviousSegments int64 `json:"numPreviousSegments,omitempty"`
	// ReturnExtractiveSegmentScore: Specifies whether to return the confidence
	// score from the extractive segments in each search result. This feature is
	// available only for new or allowlisted data stores. To allowlist your data
	// store, contact your Customer Engineer. The default value is `false`.
	ReturnExtractiveSegmentScore bool `json:"returnExtractiveSegmentScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxExtractiveAnswerCount")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxExtractiveAnswerCount") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSnippetSpec: A
// specification for configuring snippets in a search response.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSnippetSpec struct {
	// MaxSnippetCount: [DEPRECATED] This field is deprecated. To control snippet
	// return, use `return_snippet` field. For backwards compatibility, we will
	// return snippet if max_snippet_count > 0.
	MaxSnippetCount int64 `json:"maxSnippetCount,omitempty"`
	// ReferenceOnly: [DEPRECATED] This field is deprecated and will have no affect
	// on the snippet.
	ReferenceOnly bool `json:"referenceOnly,omitempty"`
	// ReturnSnippet: If `true`, then return snippet. If no snippet can be
	// generated, we return "No snippet is available for this page." A
	// `snippet_status` with `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be
	// returned.
	ReturnSnippet bool `json:"returnSnippet,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MaxSnippetCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MaxSnippetCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpec: A
// specification for configuring a summary returned in a search response.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpec struct {
	// IgnoreAdversarialQuery: Specifies whether to filter out adversarial queries.
	// The default value is `false`. Google employs search-query classification to
	// detect adversarial queries. No summary is returned if the search query is
	// classified as an adversarial query. For example, a user might ask a question
	// regarding negative comments about the company or submit a query designed to
	// generate unsafe, policy-violating output. If this field is set to `true`, we
	// skip generating summaries for adversarial queries and return fallback
	// messages instead.
	IgnoreAdversarialQuery bool `json:"ignoreAdversarialQuery,omitempty"`
	// IgnoreJailBreakingQuery: Optional. Specifies whether to filter out
	// jail-breaking queries. The default value is `false`. Google employs
	// search-query classification to detect jail-breaking queries. No summary is
	// returned if the search query is classified as a jail-breaking query. A user
	// might add instructions to the query to change the tone, style, language,
	// content of the answer, or ask the model to act as a different entity, e.g.
	// "Reply in the tone of a competing company's CEO". If this field is set to
	// `true`, we skip generating summaries for jail-breaking queries and return
	// fallback messages instead.
	IgnoreJailBreakingQuery bool `json:"ignoreJailBreakingQuery,omitempty"`
	// IgnoreLowRelevantContent: Specifies whether to filter out queries that have
	// low relevance. The default value is `false`. If this field is set to
	// `false`, all search results are used regardless of relevance to generate
	// answers. If set to `true`, only queries with high relevance search results
	// will generate answers.
	IgnoreLowRelevantContent bool `json:"ignoreLowRelevantContent,omitempty"`
	// IgnoreNonSummarySeekingQuery: Specifies whether to filter out queries that
	// are not summary-seeking. The default value is `false`. Google employs
	// search-query classification to detect summary-seeking queries. No summary is
	// returned if the search query is classified as a non-summary seeking query.
	// For example, `why is the sky blue` and `Who is the best soccer player in the
	// world?` are summary-seeking queries, but `SFO airport` and `world cup 2026`
	// are not. They are most likely navigational queries. If this field is set to
	// `true`, we skip generating summaries for non-summary seeking queries and
	// return fallback messages instead.
	IgnoreNonSummarySeekingQuery bool `json:"ignoreNonSummarySeekingQuery,omitempty"`
	// IncludeCitations: Specifies whether to include citations in the summary. The
	// default value is `false`. When this field is set to `true`, summaries
	// include in-line citation numbers. Example summary including citations:
	// BigQuery is Google Cloud's fully managed and completely serverless
	// enterprise data warehouse [1]. BigQuery supports all data types, works
	// across clouds, and has built-in machine learning and business intelligence,
	// all within a unified platform [2, 3]. The citation numbers refer to the
	// returned search results and are 1-indexed. For example, [1] means that the
	// sentence is attributed to the first search result. [2, 3] means that the
	// sentence is attributed to both the second and third search results.
	IncludeCitations bool `json:"includeCitations,omitempty"`
	// LanguageCode: Language code for Summary. Use language tags defined by BCP47
	// (https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This is an
	// experimental feature.
	LanguageCode string `json:"languageCode,omitempty"`
	// ModelPromptSpec: If specified, the spec will be used to modify the prompt
	// provided to the LLM.
	ModelPromptSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecModelPromptSpec `json:"modelPromptSpec,omitempty"`
	// ModelSpec: If specified, the spec will be used to modify the model
	// specification provided to the LLM.
	ModelSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecModelSpec `json:"modelSpec,omitempty"`
	// MultimodalSpec: Optional. Multimodal specification.
	MultimodalSpec *GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecMultiModalSpec `json:"multimodalSpec,omitempty"`
	// SummaryResultCount: The number of top results to generate the summary from.
	// If the number of results returned is less than `summaryResultCount`, the
	// summary is generated from all of the results. At most 10 results for
	// documents mode, or 50 for chunks mode, can be used to generate a summary.
	// The chunks mode is used when
	// SearchRequest.ContentSearchSpec.search_result_mode is set to CHUNKS.
	SummaryResultCount int64 `json:"summaryResultCount,omitempty"`
	// UseSemanticChunks: If true, answer will be generated from most relevant
	// chunks from top search results. This feature will improve summary quality.
	// Note that with this feature enabled, not all top search results will be
	// referenced and included in the reference list, so the citation source index
	// only points to the search results listed in the reference list.
	UseSemanticChunks bool `json:"useSemanticChunks,omitempty"`
	// ForceSendFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "IgnoreAdversarialQuery") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecMode
// lPromptSpec: Specification of the prompt to use with the model.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecModelPromptSpec struct {
	// Preamble: Text at the beginning of the prompt that instructs the assistant.
	// Examples are available in the user guide.
	Preamble string `json:"preamble,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Preamble") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Preamble") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecMode
// lSpec: Specification of the model.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecModelSpec struct {
	// Version: The model version used to generate the summary. Supported values
	// are: * `stable`: string. Default value when no value is specified. Uses a
	// generally available, fine-tuned model. For more information, see Answer
	// generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	// * `preview`: string. (Public preview) Uses a preview model. For more
	// information, see Answer generation model versions and lifecycle
	// (https://cloud.google.com/generative-ai-app-builder/docs/answer-generation-models).
	Version string `json:"version,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Version") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Version") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecMult
// iModalSpec: Multimodal specification: Will return an image from specified
// source. If multiple sources are specified, the pick is a quality based
// decision.
type GoogleCloudDiscoveryengineV1betaSearchRequestContentSearchSpecSummarySpecMultiModalSpec struct {
	// ImageSource: Optional. Source of image returned in the answer.
	//
	// Possible values:
	//   "IMAGE_SOURCE_UNSPECIFIED" - Unspecified image source (multimodal feature
	// is disabled by default).
	//   "ALL_AVAILABLE_SOURCES" - Behavior when service determines the pick from
	// all available sources.
	//   "CORPUS_IMAGE_ONLY" - Includes image from corpus in the answer.
	//   "FIGURE_GENERATION_ONLY" - Triggers figure generation in the answer.
	ImageSource string `json:"imageSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageSource") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageSource") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestDataStoreSpec: A struct to
// define data stores to filter on in a search call and configurations for
// those data stores. Otherwise, an `INVALID_ARGUMENT` error is returned.
type GoogleCloudDiscoveryengineV1betaSearchRequestDataStoreSpec struct {
	// BoostSpec: Optional. Boost specification to boost certain documents. For
	// more information on boosting, see Boosting
	// (https://cloud.google.com/generative-ai-app-builder/docs/boost-search-results)
	BoostSpec *GoogleCloudDiscoveryengineV1betaSearchRequestBoostSpec `json:"boostSpec,omitempty"`
	// CustomSearchOperators: Optional. Custom search operators which if specified
	// will be used to filter results from workspace data stores. For more
	// information on custom search operators, see SearchOperators
	// (https://support.google.com/cloudsearch/answer/6172299).
	CustomSearchOperators string `json:"customSearchOperators,omitempty"`
	// DataStore: Required. Full resource name of DataStore, such as
	// `projects/{project}/locations/{location}/collections/{collection_id}/dataStor
	// es/{data_store_id}`. The path must include the project number, project id is
	// not supported for this field.
	DataStore string `json:"dataStore,omitempty"`
	// Filter: Optional. Filter specification to filter documents in the data store
	// specified by data_store field. For more information on filtering, see
	// Filtering
	// (https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)
	Filter string `json:"filter,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpec") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpec") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestDisplaySpec: Specifies features
// for display, like match highlighting.
type GoogleCloudDiscoveryengineV1betaSearchRequestDisplaySpec struct {
	// MatchHighlightingCondition: The condition under which match highlighting
	// should occur.
	//
	// Possible values:
	//   "MATCH_HIGHLIGHTING_CONDITION_UNSPECIFIED" - Server behavior is the same
	// as `MATCH_HIGHLIGHTING_DISABLED`.
	//   "MATCH_HIGHLIGHTING_DISABLED" - Disables match highlighting on all
	// documents.
	//   "MATCH_HIGHLIGHTING_ENABLED" - Enables match highlighting on all
	// documents.
	MatchHighlightingCondition string `json:"matchHighlightingCondition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MatchHighlightingCondition")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MatchHighlightingCondition") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpec: The
// specification that uses customized query embedding vector to do semantic
// document retrieval.
type GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpec struct {
	// EmbeddingVectors: The embedding vector used for retrieval. Limit to 1.
	EmbeddingVectors []*GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpecEmbeddingVector `json:"embeddingVectors,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EmbeddingVectors") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EmbeddingVectors") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpecEmbeddingVector:
// Embedding vector.
type GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpecEmbeddingVector struct {
	// FieldPath: Embedding field path in schema.
	FieldPath string `json:"fieldPath,omitempty"`
	// Vector: Query embedding vector.
	Vector []float64 `json:"vector,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldPath") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldPath") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpecEmbeddingVector) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleCloudDiscoveryengineV1betaSearchRequestEmbeddingSpecEmbeddingVector
	var s1 struct {
		Vector []gensupport.JSONFloat64 `json:"vector"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.Vector = make([]float64, len(s1.Vector))
	for i := range s1.Vector {
		s.Vector[i] = float64(s1.Vector[i])
	}
	return nil
}

// GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpec: A facet
// specification to perform faceted search.
type GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpec struct {
	// EnableDynamicPosition: Enables dynamic position for this facet. If set to
	// true, the position of this facet among all facets in the response is
	// determined automatically. If dynamic facets are enabled, it is ordered
	// together. If set to false, the position of this facet in the response is the
	// same as in the request, and it is ranked before the facets with dynamic
	// position enable and all dynamic facets. For example, you may always want to
	// have rating facet returned in the response, but it's not necessarily to
	// always display the rating facet at the top. In that case, you can set
	// enable_dynamic_position to true so that the position of rating facet in
	// response is determined automatically. Another example, assuming you have the
	// following facets in the request: * "rating", enable_dynamic_position = true
	// * "price", enable_dynamic_position = false * "brands",
	// enable_dynamic_position = false And also you have a dynamic facets enabled,
	// which generates a facet `gender`. Then the final order of the facets in the
	// response can be ("price", "brands", "rating", "gender") or ("price",
	// "brands", "gender", "rating") depends on how API orders "gender" and
	// "rating" facets. However, notice that "price" and "brands" are always ranked
	// at first and second position because their enable_dynamic_position is false.
	EnableDynamicPosition bool `json:"enableDynamicPosition,omitempty"`
	// ExcludedFilterKeys: List of keys to exclude when faceting. By default,
	// FacetKey.key is not excluded from the filter unless it is listed in this
	// field. Listing a facet key in this field allows its values to appear as
	// facet results, even when they are filtered out of search results. Using this
	// field does not affect what search results are returned. For example, suppose
	// there are 100 documents with the color facet "Red" and 200 documents with
	// the color facet "Blue". A query containing the filter "color:ANY("Red")" and
	// having "color" as FacetKey.key would by default return only "Red" documents
	// in the search results, and also return "Red" with count 100 as the only
	// color facet. Although there are also blue documents available, "Blue" would
	// not be shown as an available facet value. If "color" is listed in
	// "excludedFilterKeys", then the query returns the facet values "Red" with
	// count 100 and "Blue" with count 200, because the "color" key is now excluded
	// from the filter. Because this field doesn't affect search results, the
	// search results are still correctly filtered to return only "Red" documents.
	// A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT` error
	// is returned.
	ExcludedFilterKeys []string `json:"excludedFilterKeys,omitempty"`
	// FacetKey: Required. The facet key specification.
	FacetKey *GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpecFacetKey `json:"facetKey,omitempty"`
	// Limit: Maximum facet values that are returned for this facet. If
	// unspecified, defaults to 20. The maximum allowed value is 300. Values above
	// 300 are coerced to 300. For aggregation in healthcare search, when the
	// [FacetKey.key] is "healthcare_aggregation_key", the limit will be overridden
	// to 10,000 internally, regardless of the value set here. If this field is
	// negative, an `INVALID_ARGUMENT` is returned.
	Limit int64 `json:"limit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableDynamicPosition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableDynamicPosition") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpecFacetKey: Specifies
// how a facet is computed.
type GoogleCloudDiscoveryengineV1betaSearchRequestFacetSpecFacetKey struct {
	// CaseInsensitive: True to make facet keys case insensitive when getting
	// faceting values with prefixes or contains; false otherwise.
	CaseInsensitive bool `json:"caseInsensitive,omitempty"`
	// Contains: Only get facet values that contain the given strings. For example,
	// suppose "category" has three values "Action > 2022", "Action > 2021" and
	// "Sci-Fi > 2022". If set "contains" to "2022", the "category" facet only
	// contains "Action > 2022" and "Sci-Fi > 2022". Only supported on textual
	// fields. Maximum is 10.
	Contains []string `json:"contains,omitempty"`
	// Intervals: Set only if values should be bucketed into intervals. Must be set
	// for facets with numerical values. Must not be set for facet with text
	// values. Maximum number of intervals is 30.
	Intervals []*GoogleCloudDiscoveryengineV1betaInterval `json:"intervals,omitempty"`
	// Key: Required. Supported textual and numerical facet keys in Document
	// object, over which the facet values are computed. Facet key is
	// case-sensitive.
	Key string `json:"key,omitempty"`
	// OrderBy: The order in which documents are returned. Allowed values are: *
	// "count desc", which means order by SearchResponse.Facet.values.count
	// descending. * "value desc", which means order by
	// SearchResponse.Facet.values.value descending. Only applies to textual
	// facets. If not set, textual values are sorted in natural order
	// (https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are
	// sorted in the order given by FacetSpec.FacetKey.intervals.
	OrderBy string `json:"orderBy,omitempty"`
	// Prefixes: Only get facet values that start with the given string prefix. For
	// example, suppose "category" has three values "Action > 2022", "Action >
	// 2021" and "Sci-Fi > 2022". If set "prefixes" to "Action", the "category"
	// facet only contains "Action > 2022" and "Action > 2021". Only supported on
	// textual fields. Maximum is 10.
	Prefixes []string `json:"prefixes,omitempty"`
	// RestrictedValues: Only get facet for the given restricted values. Only
	// supported on textual fields. For example, suppose "category" has three
	// values "Action > 2022", "Action > 2021" and "Sci-Fi > 2022". If set
	// "restricted_values" to "Action > 2022", the "category" facet only contains
	// "Action > 2022". Only supported on textual fields. Maximum is 10.
	RestrictedValues []string `json:"restrictedValues,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CaseInsensitive") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CaseInsensitive") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestImageQuery: Specifies the image
// query input.
type GoogleCloudDiscoveryengineV1betaSearchRequestImageQuery struct {
	// ImageBytes: Base64 encoded image bytes. Supported image formats: JPEG, PNG,
	// and BMP.
	ImageBytes string `json:"imageBytes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ImageBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ImageBytes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestNaturalLanguageQueryUnderstandin
// gSpec: Specification to enable natural language understanding capabilities
// for search requests.
type GoogleCloudDiscoveryengineV1betaSearchRequestNaturalLanguageQueryUnderstandingSpec struct {
	// AllowedFieldNames: Optional. Allowlist of fields that can be used for
	// natural language filter extraction. By default, if this is unspecified, all
	// indexable fields are eligible for natural language filter extraction (but
	// are not guaranteed to be used). If any fields are specified in
	// allowed_field_names, only the fields that are both marked as indexable in
	// the schema and specified in the allowlist will be eligible for natural
	// language filter extraction. Note: for multi-datastore search, this is not
	// yet supported, and will be ignored.
	AllowedFieldNames []string `json:"allowedFieldNames,omitempty"`
	// ExtractedFilterBehavior: Optional. Controls behavior of how extracted
	// filters are applied to the search. The default behavior depends on the
	// request. For single datastore structured search, the default is
	// `HARD_FILTER`. For multi-datastore search, the default behavior is
	// `SOFT_BOOST`. Location-based filters are always applied as hard filters, and
	// the `SOFT_BOOST` setting will not affect them. This field is only used if
	// SearchRequest.natural_language_query_understanding_spec.filter_extraction_con
	// dition is set to FilterExtractionCondition.ENABLED.
	//
	// Possible values:
	//   "EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED" -
	// `EXTRACTED_FILTER_BEHAVIOR_UNSPECIFIED` will use the default behavior for
	// extracted filters. For single datastore search, the default is to apply as
	// hard filters. For multi-datastore search, the default is to apply as soft
	// boosts.
	//   "HARD_FILTER" - Applies all extracted filters as hard filters on the
	// results. Results that do not pass the extracted filters will not be returned
	// in the result set.
	//   "SOFT_BOOST" - Applies all extracted filters as soft boosts. Results that
	// pass the filters will be boosted up to higher ranks in the result set.
	ExtractedFilterBehavior string `json:"extractedFilterBehavior,omitempty"`
	// FilterExtractionCondition: The condition under which filter extraction
	// should occur. Server behavior defaults to `DISABLED`.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Server behavior defaults to `DISABLED`.
	//   "DISABLED" - Disables NL filter extraction.
	//   "ENABLED" - Enables NL filter extraction.
	FilterExtractionCondition string `json:"filterExtractionCondition,omitempty"`
	// GeoSearchQueryDetectionFieldNames: Field names used for location-based
	// filtering, where geolocation filters are detected in natural language search
	// queries. Only valid when the FilterExtractionCondition is set to `ENABLED`.
	// If this field is set, it overrides the field names set in
	// ServingConfig.geo_search_query_detection_field_names.
	GeoSearchQueryDetectionFieldNames []string `json:"geoSearchQueryDetectionFieldNames,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowedFieldNames") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedFieldNames") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestPersonalizationSpec: The
// specification for personalization.
type GoogleCloudDiscoveryengineV1betaSearchRequestPersonalizationSpec struct {
	// Mode: The personalization mode of the search request. Defaults to Mode.AUTO.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Default value. In this case, server behavior defaults
	// to Mode.AUTO.
	//   "AUTO" - Personalization is enabled if data quality requirements are met.
	//   "DISABLED" - Disable personalization.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestQueryExpansionSpec:
// Specification to determine under which conditions query expansion should
// occur.
type GoogleCloudDiscoveryengineV1betaSearchRequestQueryExpansionSpec struct {
	// Condition: The condition under which query expansion should occur. Default
	// to Condition.DISABLED.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Unspecified query expansion condition. In this
	// case, server behavior defaults to Condition.DISABLED.
	//   "DISABLED" - Disabled query expansion. Only the exact search query is
	// used, even if SearchResponse.total_size is zero.
	//   "AUTO" - Automatic query expansion built by the Search API.
	Condition string `json:"condition,omitempty"`
	// PinUnexpandedResults: Whether to pin unexpanded results. If this field is
	// set to true, unexpanded products are always at the top of the search
	// results, followed by the expanded results.
	PinUnexpandedResults bool `json:"pinUnexpandedResults,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 GoogleCloudDiscoveryengineV1betaSearchRequestQueryExpansionSpec) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaSearchRequestQueryExpansionSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaSearchRequestRelevanceScoreSpec: The
// specification for returning the document relevance score.
type GoogleCloudDiscoveryengineV1betaSearchRequestRelevanceScoreSpec struct {
	// ReturnRelevanceScore: Optional. Whether to return the relevance score for
	// search results. The higher the score, the more relevant the document is to
	// the query.
	ReturnRelevanceScore bool `json:"returnRelevanceScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ReturnRelevanceScore") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ReturnRelevanceScore") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestSearchAddonSpec:
// SearchAddonSpec is used to disable add-ons for search as per new repricing
// model. By default if the SearchAddonSpec is not specified, we consider that
// the customer wants to enable them wherever applicable.
type GoogleCloudDiscoveryengineV1betaSearchRequestSearchAddonSpec struct {
	// DisableGenerativeAnswerAddOn: Optional. If true, generative answer add-on is
	// disabled. Generative answer add-on includes natural language to filters and
	// simple answers.
	DisableGenerativeAnswerAddOn bool `json:"disableGenerativeAnswerAddOn,omitempty"`
	// DisableKpiPersonalizationAddOn: Optional. If true, disables event re-ranking
	// and personalization to optimize KPIs & personalize results.
	DisableKpiPersonalizationAddOn bool `json:"disableKpiPersonalizationAddOn,omitempty"`
	// DisableSemanticAddOn: Optional. If true, semantic add-on is disabled.
	// Semantic add-on includes embeddings and jetstream.
	DisableSemanticAddOn bool `json:"disableSemanticAddOn,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "DisableGenerativeAnswerAddOn") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableGenerativeAnswerAddOn") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestSearchAsYouTypeSpec:
// Specification for search as you type in search requests.
type GoogleCloudDiscoveryengineV1betaSearchRequestSearchAsYouTypeSpec struct {
	// Condition: The condition under which search as you type should occur.
	// Default to Condition.DISABLED.
	//
	// Possible values:
	//   "CONDITION_UNSPECIFIED" - Server behavior defaults to Condition.DISABLED.
	//   "DISABLED" - Disables Search As You Type.
	//   "ENABLED" - Enables Search As You Type.
	//   "AUTO" - Automatic switching between search-as-you-type and standard
	// search modes, ideal for single-API implementations (e.g., debouncing).
	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 GoogleCloudDiscoveryengineV1betaSearchRequestSearchAsYouTypeSpec) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaSearchRequestSearchAsYouTypeSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaSearchRequestSessionSpec: Session
// specification. Multi-turn Search feature is currently at private GA stage.
// Please use v1alpha or v1beta version instead before we launch this feature
// to public GA. Or ask for allowlisting through Google Support team.
type GoogleCloudDiscoveryengineV1betaSearchRequestSessionSpec struct {
	// QueryId: If set, the search result gets stored to the "turn" specified by
	// this query ID. Example: Let's say the session looks like this: session {
	// name: ".../sessions/xxx" turns { query { text: "What is foo?" query_id:
	// ".../questions/yyy" } answer: "Foo is ..." } turns { query { text: "How
	// about bar then?" query_id: ".../questions/zzz" } } } The user can call
	// /search API with a request like this: session: ".../sessions/xxx"
	// session_spec { query_id: ".../questions/zzz" } Then, the API stores the
	// search result, associated with the last turn. The stored search result can
	// be used by a subsequent /answer API call (with the session ID and the query
	// ID specified). Also, it is possible to call /search and /answer in parallel
	// with the same session ID & query ID.
	QueryId string `json:"queryId,omitempty"`
	// SearchResultPersistenceCount: The number of top search results to persist.
	// The persisted search results can be used for the subsequent /answer api
	// call. This field is similar to the `summary_result_count` field in
	// SearchRequest.ContentSearchSpec.SummarySpec.summary_result_count. At most 10
	// results for documents mode, or 50 for chunks mode.
	SearchResultPersistenceCount int64 `json:"searchResultPersistenceCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QueryId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QueryId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSearchRequestSpellCorrectionSpec: The
// specification for query spell correction.
type GoogleCloudDiscoveryengineV1betaSearchRequestSpellCorrectionSpec struct {
	// Mode: The mode under which spell correction replaces the original search
	// query. Defaults to Mode.AUTO.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Unspecified spell correction mode. In this case,
	// server behavior defaults to Mode.AUTO.
	//   "SUGGESTION_ONLY" - Search API tries to find a spelling suggestion. If a
	// suggestion is found, it is put in the SearchResponse.corrected_query. The
	// spelling suggestion won't be used as the search query.
	//   "AUTO" - Automatic spell correction built by the Search API. Search will
	// be based on the corrected query if found.
	Mode string `json:"mode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Mode") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateMetadata: Metadata
// related to the progress of the
// CrawlRateManagementService.SetDedicatedCrawlRate operation. This will be
// returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateResponse: Response
// message for CrawlRateManagementService.SetDedicatedCrawlRate method. It
// simply returns the state of the response, and an error message if the state
// is FAILED.
type GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateResponse struct {
	// Error: Errors from service when handling the request.
	Error *GoogleRpcStatus `json:"error,omitempty"`
	// State: Output only. The state of the response.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - The state is unspecified.
	//   "SUCCEEDED" - The state is successful.
	//   "FAILED" - The state is failed.
	State string `json:"state,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 GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaSetDedicatedCrawlRateResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaSingleRegionKey: Metadata for
// single-regional CMEKs.
type GoogleCloudDiscoveryengineV1betaSingleRegionKey struct {
	// KmsKey: Required. Single-regional kms key resource name which will be used
	// to encrypt resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KmsKey") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KmsKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSiteVerificationInfo: Verification
// information for target sites in advanced site search.
type GoogleCloudDiscoveryengineV1betaSiteVerificationInfo struct {
	// SiteVerificationState: Site verification state indicating the ownership and
	// validity.
	//
	// Possible values:
	//   "SITE_VERIFICATION_STATE_UNSPECIFIED" - Defaults to VERIFIED.
	//   "VERIFIED" - Site ownership verified.
	//   "UNVERIFIED" - Site ownership pending verification or verification failed.
	//   "EXEMPTED" - Site exempt from verification, e.g., a public website that
	// opens to all.
	SiteVerificationState string `json:"siteVerificationState,omitempty"`
	// VerifyTime: Latest site verification time.
	VerifyTime string `json:"verifyTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SiteVerificationState") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SiteVerificationState") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaSitemap: A sitemap for the SiteSearchEngine.
type GoogleCloudDiscoveryengineV1betaSitemap struct {
	// CreateTime: Output only. The sitemap's creation time.
	CreateTime string `json:"createTime,omitempty"`
	// Name: Output only. The fully qualified resource name of the sitemap.
	// `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine/sitemaps/
	// *` The `sitemap_id` suffix is system-generated.
	Name string `json:"name,omitempty"`
	// Uri: Public URI for the sitemap, e.g. `www.example.com/sitemap.xml`.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaTargetSite: A target site for the
// SiteSearchEngine.
type GoogleCloudDiscoveryengineV1betaTargetSite struct {
	// ExactMatch: Immutable. If set to false, a uri_pattern is generated to
	// include all pages whose address contains the provided_uri_pattern. If set to
	// true, an uri_pattern is generated to try to be an exact match of the
	// provided_uri_pattern or just the specific page if the provided_uri_pattern
	// is a specific one. provided_uri_pattern is always normalized to generate the
	// URI pattern to be used by the search engine.
	ExactMatch bool `json:"exactMatch,omitempty"`
	// FailureReason: Output only. Failure reason.
	FailureReason *GoogleCloudDiscoveryengineV1betaTargetSiteFailureReason `json:"failureReason,omitempty"`
	// GeneratedUriPattern: Output only. This is system-generated based on the
	// provided_uri_pattern.
	GeneratedUriPattern string `json:"generatedUriPattern,omitempty"`
	// IndexingStatus: Output only. Indexing status.
	//
	// Possible values:
	//   "INDEXING_STATUS_UNSPECIFIED" - Defaults to SUCCEEDED.
	//   "PENDING" - The target site is in the update queue and will be picked up
	// by indexing pipeline.
	//   "FAILED" - The target site fails to be indexed.
	//   "SUCCEEDED" - The target site has been indexed.
	//   "DELETING" - The previously indexed target site has been marked to be
	// deleted. This is a transitioning state which will resulted in either: 1.
	// target site deleted if unindexing is successful; 2. state reverts to
	// SUCCEEDED if the unindexing fails.
	//   "CANCELLABLE" - The target site change is pending but cancellable.
	//   "CANCELLED" - The target site change is cancelled.
	IndexingStatus string `json:"indexingStatus,omitempty"`
	// Name: Output only. The fully qualified resource name of the target site.
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/siteSearchEngine/targetSites/{target_site}` The
	// `target_site_id` is system-generated.
	Name string `json:"name,omitempty"`
	// ProvidedUriPattern: Required. Input only. The user provided URI pattern from
	// which the `generated_uri_pattern` is generated.
	ProvidedUriPattern string `json:"providedUriPattern,omitempty"`
	// RootDomainUri: Output only. Root domain of the provided_uri_pattern.
	RootDomainUri string `json:"rootDomainUri,omitempty"`
	// SiteVerificationInfo: Output only. Site ownership and validity verification
	// status.
	SiteVerificationInfo *GoogleCloudDiscoveryengineV1betaSiteVerificationInfo `json:"siteVerificationInfo,omitempty"`
	// Type: The type of the target site, e.g., whether the site is to be included
	// or excluded.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - This value is unused. In this case, server behavior
	// defaults to Type.INCLUDE.
	//   "INCLUDE" - Include the target site.
	//   "EXCLUDE" - Exclude the target site.
	Type string `json:"type,omitempty"`
	// UpdateTime: Output only. The target site's last updated time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExactMatch") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaTargetSiteFailureReason: Site search
// indexing failure reasons.
type GoogleCloudDiscoveryengineV1betaTargetSiteFailureReason struct {
	// QuotaFailure: Failed due to insufficient quota.
	QuotaFailure *GoogleCloudDiscoveryengineV1betaTargetSiteFailureReasonQuotaFailure `json:"quotaFailure,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QuotaFailure") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QuotaFailure") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaTargetSiteFailureReasonQuotaFailure: Failed
// due to insufficient quota.
type GoogleCloudDiscoveryengineV1betaTargetSiteFailureReasonQuotaFailure struct {
	// TotalRequiredQuota: This number is an estimation on how much total quota
	// this project needs to successfully complete indexing.
	TotalRequiredQuota int64 `json:"totalRequiredQuota,omitempty,string"`
	// ForceSendFields is a list of field names (e.g. "TotalRequiredQuota") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TotalRequiredQuota") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaTrainCustomModelMetadata: Metadata related
// to the progress of the TrainCustomModel operation. This is returned by the
// google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaTrainCustomModelMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleCloudDiscoveryengineV1betaTrainCustomModelResponse: Response of the
// TrainCustomModelRequest. This message is returned by the
// google.longrunning.Operations.response field.
type GoogleCloudDiscoveryengineV1betaTrainCustomModelResponse struct {
	// ErrorConfig: Echoes the destination for the complete errors in the request
	// if set.
	ErrorConfig *GoogleCloudDiscoveryengineV1betaImportErrorConfig `json:"errorConfig,omitempty"`
	// ErrorSamples: A sample of errors encountered while processing the data.
	ErrorSamples []*GoogleRpcStatus `json:"errorSamples,omitempty"`
	// Metrics: The metrics of the trained model.
	Metrics map[string]float64 `json:"metrics,omitempty"`
	// ModelName: Fully qualified name of the CustomTuningModel.
	ModelName string `json:"modelName,omitempty"`
	// ModelStatus: The trained model status. Possible values are: * **bad-data**:
	// The training data quality is bad. * **no-improvement**: Tuning didn't
	// improve performance. Won't deploy. * **in-progress**: Model training job
	// creation is in progress. * **training**: Model is actively training. *
	// **evaluating**: The model is evaluating trained metrics. * **indexing**: The
	// model trained metrics are indexing. * **ready**: The model is ready for
	// serving.
	ModelStatus string `json:"modelStatus,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaTrainCustomModelResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaTrainCustomModelResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaTuneEngineMetadata: Metadata associated with
// a tune operation.
type GoogleCloudDiscoveryengineV1betaTuneEngineMetadata struct {
	// Engine: Required. The resource name of the engine that this tune applies to.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection_id}/engines/
	// {engine_id}`
	Engine string `json:"engine,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Engine") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Engine") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaTuneEngineMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaTuneEngineMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaTuneEngineResponse: Response associated with
// a tune operation.
type GoogleCloudDiscoveryengineV1betaTuneEngineResponse struct {
}

// GoogleCloudDiscoveryengineV1betaUpdateSchemaMetadata: Metadata for
// UpdateSchema LRO.
type GoogleCloudDiscoveryengineV1betaUpdateSchemaMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaUpdateSchemaMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaUpdateSchemaMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaUpdateTargetSiteMetadata: Metadata related
// to the progress of the SiteSearchEngineService.UpdateTargetSite operation.
// This will be returned by the google.longrunning.Operation.metadata field.
type GoogleCloudDiscoveryengineV1betaUpdateTargetSiteMetadata struct {
	// CreateTime: Operation create time.
	CreateTime string `json:"createTime,omitempty"`
	// UpdateTime: Operation last update time. If the operation is done, this is
	// also the finish time.
	UpdateTime string `json:"updateTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaUpdateTargetSiteMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaUpdateTargetSiteMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaUserInfo: Information of an end user.
type GoogleCloudDiscoveryengineV1betaUserInfo struct {
	// TimeZone: Optional. IANA time zone, e.g. Europe/Budapest.
	TimeZone string `json:"timeZone,omitempty"`
	// UserAgent: User agent as included in the HTTP header. The field must be a
	// UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an
	// `INVALID_ARGUMENT` error is returned. This should not be set when using the
	// client side event reporting with GTM or JavaScript tag in
	// UserEventService.CollectUserEvent or if UserEvent.direct_user_request is
	// set.
	UserAgent string `json:"userAgent,omitempty"`
	// UserId: Highly recommended for logged-in users. Unique identifier for
	// logged-in user, such as a user name. Don't set for anonymous users. Always
	// use a hashed value for this ID. Don't set the field to the same fixed ID for
	// different users. This mixes the event history of those users together, which
	// results in degraded model quality. The field must be a UTF-8 encoded string
	// with a length limit of 128 characters. Otherwise, an `INVALID_ARGUMENT`
	// error is returned.
	UserId string `json:"userId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TimeZone") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TimeZone") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaUserInfo) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaUserInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaUserLicense: User License information
// assigned by the admin.
type GoogleCloudDiscoveryengineV1betaUserLicense struct {
	// CreateTime: Output only. User created timestamp.
	CreateTime string `json:"createTime,omitempty"`
	// LastLoginTime: Output only. User last logged in time. If the user has not
	// logged in yet, this field will be empty.
	LastLoginTime string `json:"lastLoginTime,omitempty"`
	// LicenseAssignmentState: Output only. License assignment state of the user.
	// If the user is assigned with a license config, the user login will be
	// assigned with the license; If the user's license assignment state is
	// unassigned or unspecified, no license config will be associated to the user;
	//
	// Possible values:
	//   "LICENSE_ASSIGNMENT_STATE_UNSPECIFIED" - Default value.
	//   "ASSIGNED" - License assigned to the user.
	//   "UNASSIGNED" - No license assigned to the user. Deprecated, translated to
	// NO_LICENSE.
	//   "NO_LICENSE" - No license assigned to the user.
	//   "NO_LICENSE_ATTEMPTED_LOGIN" - User attempted to login but no license
	// assigned to the user. This state is only used for no user first time login
	// attempt but cannot get license assigned. Users already logged in but cannot
	// get license assigned will be assigned NO_LICENSE state(License could be
	// unassigned by admin).
	//   "BLOCKED" - User is blocked from assigning a license.
	LicenseAssignmentState string `json:"licenseAssignmentState,omitempty"`
	// LicenseConfig: Optional. The full resource name of the
	// Subscription(LicenseConfig) assigned to the user.
	LicenseConfig string `json:"licenseConfig,omitempty"`
	// UpdateTime: Output only. User update timestamp.
	UpdateTime string `json:"updateTime,omitempty"`
	// UserPrincipal: Required. Immutable. The user principal of the User, could be
	// email address or other prinical identifier. This field is immutable. Admin
	// assign licenses based on the user principal.
	UserPrincipal string `json:"userPrincipal,omitempty"`
	// UserProfile: Optional. The user profile. We user user full name(First name +
	// Last name) as user profile.
	UserProfile string `json:"userProfile,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaUserLicense) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaUserLicense
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaUserStore: Configures metadata that is used
// for End User entities.
type GoogleCloudDiscoveryengineV1betaUserStore struct {
	// DefaultLicenseConfig: Optional. The default subscription LicenseConfig for
	// the UserStore, if UserStore.enable_license_auto_register is true, new users
	// will automatically register under the default subscription. If default
	// LicenseConfig doesn't have remaining license seats left, new users will not
	// be assigned with license and will be blocked for Vertex AI Search features.
	// This is used if `license_assignment_tier_rules` is not configured.
	DefaultLicenseConfig string `json:"defaultLicenseConfig,omitempty"`
	// DisplayName: The display name of the User Store.
	DisplayName string `json:"displayName,omitempty"`
	// EnableExpiredLicenseAutoUpdate: Optional. Whether to enable license auto
	// update for users in this User Store. If true, users with expired licenses
	// will automatically be updated to use the default license config as long as
	// the default license config has seats left.
	EnableExpiredLicenseAutoUpdate bool `json:"enableExpiredLicenseAutoUpdate,omitempty"`
	// EnableLicenseAutoRegister: Optional. Whether to enable license auto register
	// for users in this User Store. If true, new users will automatically register
	// under the default license config as long as the default license config has
	// seats left.
	EnableLicenseAutoRegister bool `json:"enableLicenseAutoRegister,omitempty"`
	// Name: Immutable. The full resource name of the User Store, in the format of
	// `projects/{project}/locations/{location}/userStores/{user_store}`. This
	// field must be a UTF-8 encoded string with a length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultLicenseConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLicenseConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaUserStore) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaUserStore
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudDiscoveryengineV1betaWorkspaceConfig: Config to store data store
// type configuration for workspace data
type GoogleCloudDiscoveryengineV1betaWorkspaceConfig struct {
	// DasherCustomerId: Obfuscated Dasher customer ID.
	DasherCustomerId string `json:"dasherCustomerId,omitempty"`
	// SuperAdminEmailAddress: Optional. The super admin email address for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminEmailAddress string `json:"superAdminEmailAddress,omitempty"`
	// SuperAdminServiceAccount: Optional. The super admin service account for the
	// workspace that will be used for access token generation. For now we only use
	// it for Native Google Drive connector data ingestion.
	SuperAdminServiceAccount string `json:"superAdminServiceAccount,omitempty"`
	// Type: The Google Workspace data source.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Defaults to an unspecified Workspace type.
	//   "GOOGLE_DRIVE" - Workspace Data Store contains Drive data
	//   "GOOGLE_MAIL" - Workspace Data Store contains Mail data
	//   "GOOGLE_SITES" - Workspace Data Store contains Sites data
	//   "GOOGLE_CALENDAR" - Workspace Data Store contains Calendar data
	//   "GOOGLE_CHAT" - Workspace Data Store contains Chat data
	//   "GOOGLE_GROUPS" - Workspace Data Store contains Groups data
	//   "GOOGLE_KEEP" - Workspace Data Store contains Keep data
	//   "GOOGLE_PEOPLE" - Workspace Data Store contains People data
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DasherCustomerId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DasherCustomerId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudDiscoveryengineV1betaWorkspaceConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudDiscoveryengineV1betaWorkspaceConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaAccountAndRole: Account and role information.
type GoogleCloudNotebooklmV1alphaAccountAndRole struct {
	// Email: Required. The email address associated with the account.
	Email string `json:"email,omitempty"`
	// Role: Required. The role in the notebook.
	//
	// Possible values:
	//   "PROJECT_ROLE_UNKNOWN" - Unknown role.
	//   "PROJECT_ROLE_OWNER" - The user owns the project.
	//   "PROJECT_ROLE_WRITER" - The user has writer permissions on the project.
	//   "PROJECT_ROLE_READER" - The user has reader permissions on the project.
	//   "PROJECT_ROLE_NOT_SHARED" - The user has no access to the project.
	Role string `json:"role,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Email") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Email") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaAccountAndRole) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaAccountAndRole
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaAgentspaceMetadata: Metadata about an agentspace
// source.
type GoogleCloudNotebooklmV1alphaAgentspaceMetadata struct {
	// DocumentName: Output only. The full document name in Agentspace.
	DocumentName string `json:"documentName,omitempty"`
	// DocumentTitle: Output only. The title of the document.
	DocumentTitle string `json:"documentTitle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaAgentspaceMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaAgentspaceMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaAudioOverview: An audio overview of a notebook.
// This is a summary of the notebook in audio format.
type GoogleCloudNotebooklmV1alphaAudioOverview struct {
	// AudioOverviewId: Output only. Unique ID of the audio overview.
	AudioOverviewId string `json:"audioOverviewId,omitempty"`
	// GenerationOptions: The options used to generate the audio overview.
	GenerationOptions *GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions `json:"generationOptions,omitempty"`
	// LanguageCode: The language code of the generated audio overview. Use the BCP
	// 47 language code (e.g. "en", "es", "hi", etc.).
	LanguageCode string `json:"languageCode,omitempty"`
	// MimeType: The mime type of the audio overview.
	//
	// Possible values:
	//   "MIME_TYPE_UNKNOWN" - The mime type has not been set.
	//   "MIME_TYPE_WAV" - The mime type is audio/wav.
	//   "MIME_TYPE_MP4" - The mime type is audio/mp4.
	MimeType string `json:"mimeType,omitempty"`
	// Name: Identifier. The full resource name of the notebook. Format:
	// `projects/{project}/locations/{location}/notebooks/{notebook}/audioOverviews/
	// {audio_overview_id}`. This field must be a UTF-8 encoded string with a
	// length limit of 1024 characters.
	Name string `json:"name,omitempty"`
	// Status: The status of the audio overview.
	//
	// Possible values:
	//   "AUDIO_OVERVIEW_STATUS_UNSPECIFIED" - The status has not been set.
	//   "AUDIO_OVERVIEW_STATUS_NOT_STARTED" - The audio overview has not started
	// being generated.
	//   "AUDIO_OVERVIEW_STATUS_IN_PROGRESS" - The audio overview is in the process
	// of being generated.
	//   "AUDIO_OVERVIEW_STATUS_COMPLETE" - The audio overview has been generated
	// and is available.
	//   "AUDIO_OVERVIEW_STATUS_FAILED" - The audio overview failed to be
	// generated.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioOverviewId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioOverviewId") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaAudioOverview) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaAudioOverview
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions: Options used
// during audio overview generation.
type GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions struct {
	// EpisodeFocus: What the hosts of the show should focus on.
	EpisodeFocus string `json:"episodeFocus,omitempty"`
	// LanguageCode: The language that the audio overview was requested in.
	LanguageCode string `json:"languageCode,omitempty"`
	// SourceIds: Optional. The sources in which the audio overview is grounded.
	SourceIds []*GoogleCloudNotebooklmV1alphaSourceId `json:"sourceIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EpisodeFocus") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EpisodeFocus") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest: Request for
// SourceService.BatchCreateSources method.
type GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest struct {
	// UserContents: Required. The UserContents to be uploaded.
	UserContents []*GoogleCloudNotebooklmV1alphaUserContent `json:"userContents,omitempty"`
	// ForceSendFields is a list of field names (e.g. "UserContents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "UserContents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse: Response for
// SourceService.BatchCreateSources method.
type GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse struct {
	// Sources: The Sources.
	Sources []*GoogleCloudNotebooklmV1alphaSource `json:"sources,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Sources") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Sources") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest: Request for
// NotebookService.BatchDeleteNotebooks method.
type GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest struct {
	// Names: Required. Full resource names of Notebook, such as
	// `projects/{project}/locations/{location}/notebooks/{notebook_id}`.
	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 GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest: Request for
// SourceService.BatchDeleteSourcesRequest method.
type GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest struct {
	// Names: Required. Names of sources to be deleted. Format:
	// projects/{project}/locations/{location}/notebooks/{notebook}/sources/{source}
	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 GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaCmekConfig: Customer-managed encryption
// configuration for Notebooks.
type GoogleCloudNotebooklmV1alphaCmekConfig struct {
	// KmsKey: Required. KMS key resource name which will be used to encrypt
	// resources
	// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId
	// }`.
	KmsKey string `json:"kmsKey,omitempty"`
	// ForceSendFields is a list of field names (e.g. "KmsKey") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "KmsKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaCmekConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaCmekConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest: Request for
// AudioOverviewService.CreateAudioOverview method.
type GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest struct {
	// GenerationOptions: Options for the audio overview generation.
	GenerationOptions *GoogleCloudNotebooklmV1alphaAudioOverviewGenerationOptions `json:"generationOptions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GenerationOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GenerationOptions") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse: Response for
// AudioOverviewService.CreateAudioOverview method.
type GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse struct {
	// AudioOverview: The generated audio overview.
	AudioOverview *GoogleCloudNotebooklmV1alphaAudioOverview `json:"audioOverview,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "AudioOverview") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioOverview") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReason: Failure reason containing details
// about why a source failed to ingest.
type GoogleCloudNotebooklmV1alphaFailureReason struct {
	// AudioTranscriptionError: An audio file transcription specific error.
	AudioTranscriptionError *GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionError `json:"audioTranscriptionError,omitempty"`
	// DomainBlocked: Error if the user tries to add a source from a blocked
	// domain.
	DomainBlocked *GoogleCloudNotebooklmV1alphaFailureReasonDomainBlocked `json:"domainBlocked,omitempty"`
	// GoogleDriveError: A google drive specific error.
	GoogleDriveError *GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveError `json:"googleDriveError,omitempty"`
	// IngestionError: Indicates an error occurred while ingesting the source.
	IngestionError *GoogleCloudNotebooklmV1alphaFailureReasonIngestionError `json:"ingestionError,omitempty"`
	// PaywallError: Indicates that the source is paywalled and cannot be ingested.
	PaywallError *GoogleCloudNotebooklmV1alphaFailureReasonPaywallError `json:"paywallError,omitempty"`
	// SourceEmpty: Indicates that the source is empty.
	SourceEmpty *GoogleCloudNotebooklmV1alphaFailureReasonSourceEmpty `json:"sourceEmpty,omitempty"`
	// SourceLimitExceeded: Error if the user tries to update beyond their limits.
	SourceLimitExceeded *GoogleCloudNotebooklmV1alphaFailureReasonSourceLimitExceeded `json:"sourceLimitExceeded,omitempty"`
	// SourceTooLong: Indicates source word count exceeded the user's limit.
	SourceTooLong *GoogleCloudNotebooklmV1alphaFailureReasonSourceTooLong `json:"sourceTooLong,omitempty"`
	// SourceUnreachable: Indicates that the source is unreachable.
	SourceUnreachable *GoogleCloudNotebooklmV1alphaFailureReasonSourceUnreachable `json:"sourceUnreachable,omitempty"`
	// Unknown: Indicates an unknown error occurred.
	Unknown *GoogleCloudNotebooklmV1alphaFailureReasonUnknown `json:"unknown,omitempty"`
	// UploadError: Indicates an error occurred while uploading the source.
	UploadError *GoogleCloudNotebooklmV1alphaFailureReasonUploadError `json:"uploadError,omitempty"`
	// YoutubeError: A youtube specific error.
	YoutubeError *GoogleCloudNotebooklmV1alphaFailureReasonYoutubeError `json:"youtubeError,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioTranscriptionError") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioTranscriptionError") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReason) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReason
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionError: An audio
// file transcription specific error.
type GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionError struct {
	// LanguageDetectionFailed: Could not detect language of the file (it may not
	// be speech).
	LanguageDetectionFailed *GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorLanguageDetectionFailed `json:"languageDetectionFailed,omitempty"`
	// NoAudioDetected: No audio was detected in the input file (it may have been a
	// video).
	NoAudioDetected *GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorNoAudioDetected `json:"noAudioDetected,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LanguageDetectionFailed") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LanguageDetectionFailed") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorLanguageDetec
// tionFailed: Could not detect language of the file (it may not be speech).
type GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorLanguageDetectionFailed struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorNoAudioDetect
// ed: No audio was detected in the input file.
type GoogleCloudNotebooklmV1alphaFailureReasonAudioTranscriptionErrorNoAudioDetected struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonDomainBlocked: Error to indicate
// that the source was removed because the domain was blocked.
type GoogleCloudNotebooklmV1alphaFailureReasonDomainBlocked struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveError: A google drive
// specific error.
type GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveError struct {
	// DownloadPrevented: The user was prevented from downloading the file.
	DownloadPrevented *GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveErrorDownloadPrevented `json:"downloadPrevented,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DownloadPrevented") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DownloadPrevented") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveErrorDownloadPrevented:
// The user was prevented from downloading the file.
type GoogleCloudNotebooklmV1alphaFailureReasonGoogleDriveErrorDownloadPrevented struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonIngestionError: Indicates an error
// occurred while ingesting the source.
type GoogleCloudNotebooklmV1alphaFailureReasonIngestionError struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonPaywallError: Indicates that the
// source is paywalled and cannot be ingested.
type GoogleCloudNotebooklmV1alphaFailureReasonPaywallError struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonSourceEmpty: Indicates that the
// source is empty.
type GoogleCloudNotebooklmV1alphaFailureReasonSourceEmpty struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonSourceLimitExceeded: Indicates that
// the user does not have space for this source.
type GoogleCloudNotebooklmV1alphaFailureReasonSourceLimitExceeded struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonSourceTooLong: Indicates source
// word count exceeded the user's limit.
type GoogleCloudNotebooklmV1alphaFailureReasonSourceTooLong struct {
	// WordCount: The number of words in the source.
	WordCount int64 `json:"wordCount,omitempty"`
	// WordLimit: The word count limit for the current user at the time of the
	// upload.
	WordLimit int64 `json:"wordLimit,omitempty"`
	// ForceSendFields is a list of field names (e.g. "WordCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "WordCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReasonSourceTooLong) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReasonSourceTooLong
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonSourceUnreachable: Indicates that
// the source is unreachable. This is primarily used for sources that are added
// via URL.
type GoogleCloudNotebooklmV1alphaFailureReasonSourceUnreachable struct {
	// ErrorDetails: Describes why the source is unreachable.
	//
	// Possible values:
	//   "ERROR_REASON_UNSPECIFIED" - Default
	//   "ERROR_REASON_INVALID_URL" - The source URL is invalid.
	//   "ERROR_REASON_NOT_ACCESSIBLE" - The source URL is not accessible.
	//   "ERROR_REASON_NOT_REACHABLE" - The source URL is not reachable.
	//   "ERROR_REASON_URL_NOT_FOUND" - The source URL returned 404.
	//   "ERROR_REASON_TRANSIENT_ERROR" - The source URL not reachable due to a
	// transient network error or host timeout etc.
	//   "ERROR_REASON_FETCH_FAILED" - The source URL could not be fetched due to
	// an internal error.
	//   "ERROR_REASON_NOT_SUPPORTED" - The URL is not yet supported. Examples
	// include: the fetched content exceeds the trawler fetch max size, the fetched
	// content is a type we do not yet support, etc.
	ErrorDetails string `json:"errorDetails,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorDetails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorDetails") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReasonSourceUnreachable) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReasonSourceUnreachable
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonUnknown: Indicates an unknown error
// occurred.
type GoogleCloudNotebooklmV1alphaFailureReasonUnknown struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonUploadError: Indicates an error
// occurred while uploading the source.
type GoogleCloudNotebooklmV1alphaFailureReasonUploadError struct {
}

// GoogleCloudNotebooklmV1alphaFailureReasonYoutubeError: A youtube specific
// error.
type GoogleCloudNotebooklmV1alphaFailureReasonYoutubeError struct {
	// VideoDeleted: Error to indicate that the source was removed because the
	// video was deleted.
	VideoDeleted *GoogleCloudNotebooklmV1alphaFailureReasonYoutubeErrorVideoDeleted `json:"videoDeleted,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VideoDeleted") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VideoDeleted") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaFailureReasonYoutubeError) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaFailureReasonYoutubeError
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaFailureReasonYoutubeErrorVideoDeleted: Error to
// indicate that the source was removed because the video was deleted.
type GoogleCloudNotebooklmV1alphaFailureReasonYoutubeErrorVideoDeleted struct {
}

// GoogleCloudNotebooklmV1alphaGoogleDocsSourceMetadata: Metadata about a
// google doc source.
type GoogleCloudNotebooklmV1alphaGoogleDocsSourceMetadata struct {
	// DocumentId: Output only. The document id of the google doc.
	DocumentId string `json:"documentId,omitempty"`
	// RevisionId: Output only. Revision id for the doc.
	RevisionId string `json:"revisionId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaGoogleDocsSourceMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaGoogleDocsSourceMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse: Response
// for NotebookService.ListRecentlyViewedNotebooks method.
type GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse struct {
	// NextPageToken: The page token, provide this to retrieve the subsequent page.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Notebooks: The list of recently viewed notebooks.
	Notebooks []*GoogleCloudNotebooklmV1alphaNotebook `json:"notebooks,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 GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaNotebook: Notebook is a resource where users can
// store their content (as sources) and interacts with the content.
type GoogleCloudNotebooklmV1alphaNotebook struct {
	// CmekConfig: Output only. CMEK-related information for the Notebook.
	CmekConfig *GoogleCloudNotebooklmV1alphaCmekConfig `json:"cmekConfig,omitempty"`
	// Emoji: Output only. The emoji of the notebook.
	Emoji string `json:"emoji,omitempty"`
	// Metadata: Output only. The metadata of the notebook.
	Metadata *GoogleCloudNotebooklmV1alphaNotebookMetadata `json:"metadata,omitempty"`
	// Name: Identifier. The identifier of the notebook. Format:
	// `projects/{project}/locations/{location}/notebooks/{notebook_id}`. This
	// field must be a UTF-8 encoded string.
	Name string `json:"name,omitempty"`
	// NotebookId: Output only. Notebook id, which is the last segment of the
	// notebook's resource name.
	NotebookId string `json:"notebookId,omitempty"`
	// Sources: Output only. List of sources in the notebook. This is an output
	// only field.
	Sources []*GoogleCloudNotebooklmV1alphaSource `json:"sources,omitempty"`
	// Title: Optional. The title of the notebook.
	Title string `json:"title,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "CmekConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CmekConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaNotebook) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaNotebook
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaNotebookMetadata: Metadata for a notebook.
type GoogleCloudNotebooklmV1alphaNotebookMetadata struct {
	// CreateTime: The time at which this project was created.
	CreateTime string `json:"createTime,omitempty"`
	// IsShareable: True if the project is shareable.
	IsShareable bool `json:"isShareable,omitempty"`
	// IsShared: True if this project is currently shared with other people, false
	// otherwise.
	IsShared bool `json:"isShared,omitempty"`
	// LastViewed: A timestamp indicating the time that the current in session user
	// has last viewed the project.
	LastViewed string `json:"lastViewed,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CreateTime") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CreateTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaNotebookMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaNotebookMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaShareNotebookRequest: Request for
// NotebookService.ShareNotebook method.
type GoogleCloudNotebooklmV1alphaShareNotebookRequest struct {
	// AccountAndRoles: Required. The list of accounts and roles to share the
	// notebook with.
	AccountAndRoles []*GoogleCloudNotebooklmV1alphaAccountAndRole `json:"accountAndRoles,omitempty"`
	// NotifyViaEmail: Required. Whether to notify the shared users via email.
	NotifyViaEmail bool `json:"notifyViaEmail,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AccountAndRoles") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AccountAndRoles") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaShareNotebookRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaShareNotebookRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaShareNotebookResponse: Response for
// NotebookService.ShareNotebook method.
type GoogleCloudNotebooklmV1alphaShareNotebookResponse struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// GoogleCloudNotebooklmV1alphaSource: Source represents a single source of
// content.
type GoogleCloudNotebooklmV1alphaSource struct {
	// Metadata: Output only. Metadata about the source.
	Metadata *GoogleCloudNotebooklmV1alphaSourceMetadata `json:"metadata,omitempty"`
	// Name: Identifier. The full resource name of the source. Format:
	// `projects/{project}/locations/{location}/notebooks/{notebook}/sources/{source
	// _id}`. This field must be a UTF-8 encoded string with a length limit of 1024
	// characters.
	Name string `json:"name,omitempty"`
	// Settings: Output only. Status of the source, and any failure reasons.
	Settings *GoogleCloudNotebooklmV1alphaSourceSettings `json:"settings,omitempty"`
	// SourceId: Optional. Output only. Source id, which is the last segment of the
	// source's resource name.
	SourceId *GoogleCloudNotebooklmV1alphaSourceId `json:"sourceId,omitempty"`
	// Title: Optional. Title of the source.
	Title string `json:"title,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "Metadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Metadata") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaSource) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaSource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaSourceId: SourceId is the last segment of the
// source's resource name.
type GoogleCloudNotebooklmV1alphaSourceId struct {
	// Id: The id of the source.
	Id string `json:"id,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 GoogleCloudNotebooklmV1alphaSourceId) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaSourceId
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaSourceMetadata: Represents the metadata of a
// source and some additional information.
type GoogleCloudNotebooklmV1alphaSourceMetadata struct {
	// AgentspaceMetadata: Metadata for an agentspace source.
	AgentspaceMetadata *GoogleCloudNotebooklmV1alphaAgentspaceMetadata `json:"agentspaceMetadata,omitempty"`
	// GoogleDocsMetadata: Metadata for a google doc source.
	GoogleDocsMetadata *GoogleCloudNotebooklmV1alphaGoogleDocsSourceMetadata `json:"googleDocsMetadata,omitempty"`
	// SourceAddedTimestamp: The timestamp the source was added.
	SourceAddedTimestamp string `json:"sourceAddedTimestamp,omitempty"`
	// TokenCount: The number of tokens in the source.
	TokenCount int64 `json:"tokenCount,omitempty"`
	// WordCount: The word count of the source.
	WordCount int64 `json:"wordCount,omitempty"`
	// YoutubeMetadata: Metadata for a youtube video source.
	YoutubeMetadata *GoogleCloudNotebooklmV1alphaYoutubeMetadata `json:"youtubeMetadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentspaceMetadata") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentspaceMetadata") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaSourceMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaSourceMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaSourceSettings: Allows extension of Source
// Settings in the BatchCreateSources (Formerly AddSource request).
type GoogleCloudNotebooklmV1alphaSourceSettings struct {
	// FailureReason: Failure reason containing details about why a source failed
	// to ingest.
	FailureReason *GoogleCloudNotebooklmV1alphaFailureReason `json:"failureReason,omitempty"`
	// Status: Status of the source.
	//
	// Possible values:
	//   "SOURCE_STATUS_UNSPECIFIED" - Unspecified status.
	//   "SOURCE_STATUS_PENDING" - The source is pending addition.
	//   "SOURCE_STATUS_COMPLETE" - Source addition is complete and successful.
	//   "SOURCE_STATUS_ERROR" - Source addition has permanently failed.
	//   "SOURCE_STATUS_PENDING_DELETION" - The source is pending deletion.
	//   "SOURCE_STATUS_TENTATIVE" - The user is attempting to add a source, but we
	// have not yet uploaded it or checked user limits. Does not count towards the
	// user's source limit.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailureReason") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailureReason") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaSourceSettings) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaSourceSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUploadSourceFileRequest: Request for the
// SourceService.UploadSourceFile method.
type GoogleCloudNotebooklmV1alphaUploadSourceFileRequest struct {
	// Blob: Information about the file being uploaded.
	Blob *GdataMedia `json:"blob,omitempty"`
	// MediaRequestInfo: Media upload request metadata.
	MediaRequestInfo *ApiservingMediaRequestInfo `json:"mediaRequestInfo,omitempty"`
	// SourceId: The source id of the associated file. If not set, a source id will
	// be generated and a new tentative source will be created.
	SourceId string `json:"sourceId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Blob") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Blob") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUploadSourceFileRequest) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUploadSourceFileRequest
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUploadSourceFileResponse: Response for the
// SourceService.UploadSourceFile method.
type GoogleCloudNotebooklmV1alphaUploadSourceFileResponse struct {
	// MediaResponseInfo: Media upload response metadata.
	MediaResponseInfo *ApiservingMediaResponseInfo `json:"mediaResponseInfo,omitempty"`
	// SourceId: The source id of the uploaded source.
	SourceId *GoogleCloudNotebooklmV1alphaSourceId `json:"sourceId,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
	// ForceSendFields is a list of field names (e.g. "MediaResponseInfo") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MediaResponseInfo") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUploadSourceFileResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUploadSourceFileResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContent: The "Content" messages refer to
// data the user wants to upload.
type GoogleCloudNotebooklmV1alphaUserContent struct {
	// AgentspaceContent: Agentspace content uploaded as source.
	AgentspaceContent *GoogleCloudNotebooklmV1alphaUserContentAgentspaceContent `json:"agentspaceContent,omitempty"`
	// GoogleDriveContent: The content from Google Drive.
	GoogleDriveContent *GoogleCloudNotebooklmV1alphaUserContentGoogleDriveContent `json:"googleDriveContent,omitempty"`
	// TextContent: The text content uploaded as source.
	TextContent *GoogleCloudNotebooklmV1alphaUserContentTextContent `json:"textContent,omitempty"`
	// VideoContent: The video content uploaded as source.
	VideoContent *GoogleCloudNotebooklmV1alphaUserContentVideoContent `json:"videoContent,omitempty"`
	// WebContent: The web content uploaded as source.
	WebContent *GoogleCloudNotebooklmV1alphaUserContentWebContent `json:"webContent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentspaceContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentspaceContent") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContentAgentspaceContent: Agentspace content
// uploaded as source.
type GoogleCloudNotebooklmV1alphaUserContentAgentspaceContent struct {
	// DocumentName: Optional. The full resource name of the Agentspace document.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {data_store}/branches/{branch}/documents/{document_id}`.
	DocumentName string `json:"documentName,omitempty"`
	// EngineName: Optional. Engine to verify the permission of the document.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}`.
	EngineName string `json:"engineName,omitempty"`
	// IdeaforgeIdeaName: Optional. Resource name of the idea forge instance.
	// Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}/sessions/{session}/ideaForgeInstances/{instance}`
	IdeaforgeIdeaName string `json:"ideaforgeIdeaName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContentAgentspaceContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContentAgentspaceContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContentGoogleDriveContent: The content from
// Google Drive.
type GoogleCloudNotebooklmV1alphaUserContentGoogleDriveContent struct {
	// DocumentId: The document id of the selected document.
	DocumentId string `json:"documentId,omitempty"`
	// MimeType: The mime type of the selected document. This can be used to
	// differentiate type of content selected in the drive picker. Use
	// application/vnd.google-apps.document for Google Docs or
	// application/vnd.google-apps.presentation for Google Slides.
	MimeType string `json:"mimeType,omitempty"`
	// SourceName: The name to be displayed for the source.
	SourceName string `json:"sourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DocumentId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DocumentId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContentGoogleDriveContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContentGoogleDriveContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContentTextContent: The text content
// uploaded as source.
type GoogleCloudNotebooklmV1alphaUserContentTextContent struct {
	// Content: The name to be displayed for the source.
	Content string `json:"content,omitempty"`
	// SourceName: The display name of the text source.
	SourceName string `json:"sourceName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Content") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContentTextContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContentTextContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContentVideoContent: Video content uploaded
// as source.
type GoogleCloudNotebooklmV1alphaUserContentVideoContent struct {
	// YoutubeUrl: The youtube url of the video content.
	YoutubeUrl string `json:"youtubeUrl,omitempty"`
	// ForceSendFields is a list of field names (e.g. "YoutubeUrl") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "YoutubeUrl") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContentVideoContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContentVideoContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaUserContentWebContent: The web content uploaded
// as source.
type GoogleCloudNotebooklmV1alphaUserContentWebContent struct {
	// SourceName: The name to be displayed for the source.
	SourceName string `json:"sourceName,omitempty"`
	// Url: If URL is supplied, will fetch the webpage in the backend.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SourceName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SourceName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaUserContentWebContent) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaUserContentWebContent
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleCloudNotebooklmV1alphaYoutubeMetadata: Metadata about a youtube video
// source.
type GoogleCloudNotebooklmV1alphaYoutubeMetadata struct {
	// ChannelName: Output only. The channel name of the youtube video.
	ChannelName string `json:"channelName,omitempty"`
	// VideoId: Output only. The id of the youtube video.
	VideoId string `json:"videoId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelName") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelName") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleCloudNotebooklmV1alphaYoutubeMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleCloudNotebooklmV1alphaYoutubeMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleLongrunningCancelOperationRequest: The request message for
// Operations.CancelOperation.
type GoogleLongrunningCancelOperationRequest struct {
}

// GoogleLongrunningListOperationsResponse: The response message for
// Operations.ListOperations.
type GoogleLongrunningListOperationsResponse struct {
	// NextPageToken: The standard List next-page token.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Operations: A list of operations that matches the specified filter in the
	// request.
	Operations []*GoogleLongrunningOperation `json:"operations,omitempty"`
	// Unreachable: Unordered list. Unreachable resources. Populated when the
	// request sets `ListOperationsRequest.return_partial_success` and reads across
	// collections e.g. when attempting to list all resources across all supported
	// locations.
	Unreachable []string `json:"unreachable,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 GoogleLongrunningListOperationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleLongrunningListOperationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleLongrunningOperation: This resource represents a long-running
// operation that is the result of a network API call.
type GoogleLongrunningOperation 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 *GoogleRpcStatus `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 GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleLongrunningOperation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleMonitoringV3Point: A single data point in a time series.
type GoogleMonitoringV3Point struct {
	// Interval: The time interval to which the data point applies. For `GAUGE`
	// metrics, the start time is optional, but if it is supplied, it must equal
	// the end time. For `DELTA` metrics, the start and end time should specify a
	// non-zero interval, with subsequent points specifying contiguous and
	// non-overlapping intervals. For `CUMULATIVE` metrics, the start and end time
	// should specify a non-zero interval, with subsequent points specifying the
	// same start time and increasing end times, until an event resets the
	// cumulative value to zero and sets a new start time for the following points.
	Interval *GoogleMonitoringV3TimeInterval `json:"interval,omitempty"`
	// Value: The value of the data point.
	Value *GoogleMonitoringV3TypedValue `json:"value,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Interval") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Interval") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleMonitoringV3Point) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleMonitoringV3Point
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleMonitoringV3TimeInterval: A time interval extending just after a start
// time through an end time. If the start time is the same as the end time,
// then the interval represents a single point in time.
type GoogleMonitoringV3TimeInterval struct {
	// EndTime: Required. The end of the time interval.
	EndTime string `json:"endTime,omitempty"`
	// StartTime: Optional. The beginning of the time interval. The default value
	// for the start time is the end time. The start time must not be later than
	// the end time.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndTime") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleMonitoringV3TimeInterval) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleMonitoringV3TimeInterval
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleMonitoringV3TimeSeries: A collection of data points that describes the
// time-varying values of a metric. A time series is identified by a
// combination of a fully-specified monitored resource and a fully-specified
// metric. This type is used for both listing and creating time series.
type GoogleMonitoringV3TimeSeries struct {
	// Description: Input only. A detailed description of the time series that will
	// be associated with the google.api.MetricDescriptor for the metric. Once set,
	// this field cannot be changed through CreateTimeSeries.
	Description string `json:"description,omitempty"`
	// Metadata: Output only. The associated monitored resource metadata. When
	// reading a time series, this field will include metadata labels that are
	// explicitly named in the reduction. When creating a time series, this field
	// is ignored.
	Metadata *GoogleApiMonitoredResourceMetadata `json:"metadata,omitempty"`
	// Metric: The associated metric. A fully-specified metric used to identify the
	// time series.
	Metric *GoogleApiMetric `json:"metric,omitempty"`
	// MetricKind: The metric kind of the time series. When listing time series,
	// this metric kind might be different from the metric kind of the associated
	// metric if this time series is an alignment or reduction of other time
	// series. When creating a time series, this field is optional. If present, it
	// must be the same as the metric kind of the associated metric. If the
	// associated metric's descriptor must be auto-created, then this field
	// specifies the metric kind of the new descriptor and must be either `GAUGE`
	// (the default) or `CUMULATIVE`.
	//
	// Possible values:
	//   "METRIC_KIND_UNSPECIFIED" - Do not use this default value.
	//   "GAUGE" - An instantaneous measurement of a value.
	//   "DELTA" - The change in a value during a time interval.
	//   "CUMULATIVE" - A value accumulated over a time interval. Cumulative
	// measurements in a time series should have the same start time and increasing
	// end times, until an event resets the cumulative value to zero and sets a new
	// start time for the following points.
	MetricKind string `json:"metricKind,omitempty"`
	// Points: The data points of this time series. When listing time series,
	// points are returned in reverse time order. When creating a time series, this
	// field must contain exactly one point and the point's type must be the same
	// as the value type of the associated metric. If the associated metric's
	// descriptor must be auto-created, then the value type of the descriptor is
	// determined by the point's type, which must be `BOOL`, `INT64`, `DOUBLE`, or
	// `DISTRIBUTION`.
	Points []*GoogleMonitoringV3Point `json:"points,omitempty"`
	// Resource: The associated monitored resource. Custom metrics can use only
	// certain monitored resource types in their time series data. For more
	// information, see Monitored resources for custom metrics
	// (https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
	Resource *GoogleApiMonitoredResource `json:"resource,omitempty"`
	// Unit: The units in which the metric value is reported. It is only applicable
	// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
	// defines the representation of the stored metric values. This field can only
	// be changed through CreateTimeSeries when it is empty.
	Unit string `json:"unit,omitempty"`
	// ValueType: The value type of the time series. When listing time series, this
	// value type might be different from the value type of the associated metric
	// if this time series is an alignment or reduction of other time series. When
	// creating a time series, this field is optional. If present, it must be the
	// same as the type of the data in the `points` field.
	//
	// Possible values:
	//   "VALUE_TYPE_UNSPECIFIED" - Do not use this default value.
	//   "BOOL" - The value is a boolean. This value type can be used only if the
	// metric kind is `GAUGE`.
	//   "INT64" - The value is a signed 64-bit integer.
	//   "DOUBLE" - The value is a double precision floating point number.
	//   "STRING" - The value is a text string. This value type can be used only if
	// the metric kind is `GAUGE`.
	//   "DISTRIBUTION" - The value is a `Distribution`.
	//   "MONEY" - The value is money.
	ValueType string `json:"valueType,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 GoogleMonitoringV3TimeSeries) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleMonitoringV3TimeSeries
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleMonitoringV3TypedValue: A single strongly-typed value.
type GoogleMonitoringV3TypedValue struct {
	// BoolValue: A Boolean value: `true` or `false`.
	BoolValue bool `json:"boolValue,omitempty"`
	// DistributionValue: A distribution value.
	DistributionValue *GoogleApiDistribution `json:"distributionValue,omitempty"`
	// DoubleValue: A 64-bit double-precision floating-point number. Its magnitude
	// is approximately ±10±300 and it has 16 significant digits of precision.
	DoubleValue float64 `json:"doubleValue,omitempty"`
	// Int64Value: A 64-bit integer. Its range is approximately ±9.2x1018.
	Int64Value int64 `json:"int64Value,omitempty,string"`
	// StringValue: A variable-length string value.
	StringValue string `json:"stringValue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoolValue") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoolValue") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleMonitoringV3TypedValue) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleMonitoringV3TypedValue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

func (s *GoogleMonitoringV3TypedValue) UnmarshalJSON(data []byte) error {
	type NoMethod GoogleMonitoringV3TypedValue
	var s1 struct {
		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
		*NoMethod
	}
	s1.NoMethod = (*NoMethod)(s)
	if err := json.Unmarshal(data, &s1); err != nil {
		return err
	}
	s.DoubleValue = float64(s1.DoubleValue)
	return nil
}

// GoogleProtobufEmpty: 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 GoogleProtobufEmpty struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// GoogleRpcStatus: 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 GoogleRpcStatus 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 GoogleRpcStatus) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleRpcStatus
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleTypeDate: Represents a whole or partial calendar date, such as a
// birthday. The time of day and time zone are either specified elsewhere or
// are insignificant. The date is relative to the Gregorian Calendar. This can
// represent one of the following: * A full date, with non-zero year, month,
// and day values. * A month and day, with a zero year (for example, an
// anniversary). * A year on its own, with a zero month and a zero day. * A
// year and month, with a zero day (for example, a credit card expiration
// date). Related types: * google.type.TimeOfDay * google.type.DateTime *
// google.protobuf.Timestamp
type GoogleTypeDate struct {
	// Day: Day of a month. Must be from 1 to 31 and valid for the year and month,
	// or 0 to specify a year by itself or a year and month where the day isn't
	// significant.
	Day int64 `json:"day,omitempty"`
	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year without
	// a month and day.
	Month int64 `json:"month,omitempty"`
	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a date
	// without a year.
	Year int64 `json:"year,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Day") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Day") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleTypeDate) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleTypeDate
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleTypeDateTime: Represents civil time (or occasionally physical time).
// This type can represent a civil time in one of a few possible ways: * When
// utc_offset is set and time_zone is unset: a civil time on a calendar day
// with a particular offset from UTC. * When time_zone is set and utc_offset is
// unset: a civil time on a calendar day in a particular time zone. * When
// neither time_zone nor utc_offset is set: a civil time on a calendar day in
// local time. The date is relative to the Proleptic Gregorian Calendar. If
// year, month, or day are 0, the DateTime is considered not to have a specific
// year, month, or day respectively. This type may also be used to represent a
// physical time if all the date and time fields are set and either case of the
// `time_offset` oneof is set. Consider using `Timestamp` message for physical
// time instead. If your use case also would like to store the user's timezone,
// that can be done in another field. This type is more flexible than some
// applications may want. Make sure to document and validate your application's
// limitations.
type GoogleTypeDateTime struct {
	// Day: Optional. Day of month. Must be from 1 to 31 and valid for the year and
	// month, or 0 if specifying a datetime without a day.
	Day int64 `json:"day,omitempty"`
	// Hours: Optional. Hours of day in 24 hour format. Should be from 0 to 23,
	// defaults to 0 (midnight). An API may choose to allow the value "24:00:00"
	// for scenarios like business closing time.
	Hours int64 `json:"hours,omitempty"`
	// Minutes: Optional. Minutes of hour of day. Must be from 0 to 59, defaults to
	// 0.
	Minutes int64 `json:"minutes,omitempty"`
	// Month: Optional. Month of year. Must be from 1 to 12, or 0 if specifying a
	// datetime without a month.
	Month int64 `json:"month,omitempty"`
	// Nanos: Optional. Fractions of seconds in nanoseconds. Must be from 0 to
	// 999,999,999, defaults to 0.
	Nanos int64 `json:"nanos,omitempty"`
	// Seconds: Optional. Seconds of minutes of the time. Must normally be from 0
	// to 59, defaults to 0. An API may allow the value 60 if it allows
	// leap-seconds.
	Seconds int64 `json:"seconds,omitempty"`
	// TimeZone: Time zone.
	TimeZone *GoogleTypeTimeZone `json:"timeZone,omitempty"`
	// UtcOffset: UTC offset. Must be whole seconds, between -18 hours and +18
	// hours. For example, a UTC offset of -4:00 would be represented as { seconds:
	// -14400 }.
	UtcOffset string `json:"utcOffset,omitempty"`
	// Year: Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a
	// datetime without a year.
	Year int64 `json:"year,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Day") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Day") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

func (s GoogleTypeDateTime) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleTypeDateTime
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleTypeExpr: Represents a textual expression in the Common Expression
// Language (CEL) syntax. CEL is a C-like expression language. The syntax and
// semantics of CEL are documented at https://github.com/google/cel-spec.
// Example (Comparison): title: "Summary size limit" description: "Determines
// if a summary is less than 100 chars" expression: "document.summary.size() <
// 100" Example (Equality): title: "Requestor is owner" description:
// "Determines if requestor is the document owner" expression: "document.owner
// == request.auth.claims.email" Example (Logic): title: "Public documents"
// description: "Determine whether the document should be publicly visible"
// expression: "document.type != 'private' && document.type != 'internal'"
// Example (Data Manipulation): title: "Notification string" description:
// "Create a notification string with a timestamp." expression: "'New message
// received at ' + string(document.create_time)" The exact variables and
// functions that may be referenced within an expression are determined by the
// service that evaluates it. See the service documentation for additional
// information.
type GoogleTypeExpr struct {
	// Description: Optional. Description of the expression. This is a longer text
	// which describes the expression, e.g. when hovered over it in a UI.
	Description string `json:"description,omitempty"`
	// Expression: Textual representation of an expression in Common Expression
	// Language syntax.
	Expression string `json:"expression,omitempty"`
	// Location: Optional. String indicating the location of the expression for
	// error reporting, e.g. a file name and a position in the file.
	Location string `json:"location,omitempty"`
	// Title: Optional. Title for the expression, i.e. a short string describing
	// its purpose. This can be used e.g. in UIs which allow to enter the
	// expression.
	Title string `json:"title,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 GoogleTypeExpr) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleTypeExpr
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GoogleTypeTimeZone: Represents a time zone from the IANA Time Zone Database
// (https://www.iana.org/time-zones).
type GoogleTypeTimeZone struct {
	// Id: IANA Time Zone Database time zone. For example "America/New_York".
	Id string `json:"id,omitempty"`
	// Version: Optional. IANA Time Zone Database version number. For example
	// "2019a".
	Version string `json:"version,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 GoogleTypeTimeZone) MarshalJSON() ([]byte, error) {
	type NoMethod GoogleTypeTimeZone
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

type MediaDownloadCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Download: Downloads a file from the session.
//
//   - name: The resource name of the Session. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/sessions/{session}`.
func (r *MediaService) Download(name string) *MediaDownloadCall {
	c := &MediaDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// FileId sets the optional parameter "fileId": Required. The ID of the file to
// be downloaded.
func (c *MediaDownloadCall) FileId(fileId string) *MediaDownloadCall {
	c.urlParams_.Set("fileId", fileId)
	return c
}

// ViewId sets the optional parameter "viewId": The ID of the view to be
// downloaded.
func (c *MediaDownloadCall) ViewId(viewId string) *MediaDownloadCall {
	c.urlParams_.Set("viewId", viewId)
	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 *MediaDownloadCall) Fields(s ...googleapi.Field) *MediaDownloadCall {
	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 *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do and Download methods.
func (c *MediaDownloadCall) Context(ctx context.Context) *MediaDownloadCall {
	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 *MediaDownloadCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *MediaDownloadCall) 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, "v1alpha/{+name}:downloadFile")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.media.download", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Download fetches the API endpoint's "media" value, instead of the normal
// API response value. If the returned error is nil, the Response is guaranteed to
// have a 2xx status code. Callers must close the Response.Body as usual.
func (c *MediaDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("media")
	if err != nil {
		return nil, err
	}
	if err := googleapi.CheckResponse(res); err != nil {
		res.Body.Close()
		return nil, gensupport.WrapError(err)
	}
	return res, nil
}

// Do executes the "discoveryengine.media.download" call.
// Any non-2xx status code is an error. Response headers are in either
// *GdataMedia.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 *MediaDownloadCall) Do(opts ...googleapi.CallOption) (*GdataMedia, 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 := &GdataMedia{
		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", "discoveryengine.media.download", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Project. Returns NOT_FOUND when the project is not yet created.
//
//   - name: Full resource name of a Project, such as
//     `projects/{project_id_or_number}`.
func (r *ProjectsService) Get(name string) *ProjectsGetCall {
	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
	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 *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
	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 *ProjectsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaProject.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 *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaProject, 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 := &GoogleCloudDiscoveryengineV1alphaProject{
		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", "discoveryengine.projects.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphaproject *GoogleCloudDiscoveryengineV1alphaProject
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates the editable settings of a Discovery Engine Project.
//
//   - name: Output only. Full resource name of the project, for example
//     `projects/{project}`. Note that when making requests, project number and
//     project id are both acceptable, but the server will always respond in
//     project number.
func (r *ProjectsService) Patch(name string, googleclouddiscoveryenginev1alphaproject *GoogleCloudDiscoveryengineV1alphaProject) *ProjectsPatchCall {
	c := &ProjectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaproject = googleclouddiscoveryenginev1alphaproject
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// update. Supported fields: * `customer_provided_config`
func (c *ProjectsPatchCall) UpdateMask(updateMask string) *ProjectsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsPatchCall) Fields(s ...googleapi.Field) *ProjectsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsPatchCall) Context(ctx context.Context) *ProjectsPatchCall {
	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 *ProjectsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaproject)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaProject.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 *ProjectsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaProject, 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 := &GoogleCloudDiscoveryengineV1alphaProject{
		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", "discoveryengine.projects.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsProvisionCall struct {
	s                                                        *Service
	name                                                     string
	googleclouddiscoveryenginev1alphaprovisionprojectrequest *GoogleCloudDiscoveryengineV1alphaProvisionProjectRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Provision: Provisions the project resource. During the process, related
// systems will get prepared and initialized. Caller must read the Terms for
// data use (https://cloud.google.com/retail/data-use-terms), and optionally
// specify in request to provide consent to that service terms.
//
//   - name: Full resource name of a Project, such as
//     `projects/{project_id_or_number}`.
func (r *ProjectsService) Provision(name string, googleclouddiscoveryenginev1alphaprovisionprojectrequest *GoogleCloudDiscoveryengineV1alphaProvisionProjectRequest) *ProjectsProvisionCall {
	c := &ProjectsProvisionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaprovisionprojectrequest = googleclouddiscoveryenginev1alphaprovisionprojectrequest
	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 *ProjectsProvisionCall) Fields(s ...googleapi.Field) *ProjectsProvisionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsProvisionCall) Context(ctx context.Context) *ProjectsProvisionCall {
	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 *ProjectsProvisionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsProvisionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaprovisionprojectrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:provision")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.provision", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.provision" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsProvisionCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.provision", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsReportConsentChangeCall struct {
	s                                                           *Service
	project                                                     string
	googleclouddiscoveryenginev1alphareportconsentchangerequest *GoogleCloudDiscoveryengineV1alphaReportConsentChangeRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// ReportConsentChange: Updates service terms for this project. This method can
// be used to retroactively accept the latest terms. Terms available for
// update: * Terms for data use
// (https://cloud.google.com/retail/data-use-terms)
//
//   - project: Full resource name of a Project, such as
//     `projects/{project_id_or_number}`.
func (r *ProjectsService) ReportConsentChange(project string, googleclouddiscoveryenginev1alphareportconsentchangerequest *GoogleCloudDiscoveryengineV1alphaReportConsentChangeRequest) *ProjectsReportConsentChangeCall {
	c := &ProjectsReportConsentChangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.project = project
	c.googleclouddiscoveryenginev1alphareportconsentchangerequest = googleclouddiscoveryenginev1alphareportconsentchangerequest
	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 *ProjectsReportConsentChangeCall) Fields(s ...googleapi.Field) *ProjectsReportConsentChangeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsReportConsentChangeCall) Context(ctx context.Context) *ProjectsReportConsentChangeCall {
	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 *ProjectsReportConsentChangeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsReportConsentChangeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphareportconsentchangerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+project}:reportConsentChange")
	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{
		"project": c.project,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.reportConsentChange", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.reportConsentChange" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaProject.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 *ProjectsReportConsentChangeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaProject, 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 := &GoogleCloudDiscoveryengineV1alphaProject{
		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", "discoveryengine.projects.reportConsentChange", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsEstimateDataSizeCall struct {
	s                                                        *Service
	location                                                 string
	googleclouddiscoveryenginev1alphaestimatedatasizerequest *GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// EstimateDataSize: Estimates the data size to be used by a customer.
//
//   - location: Full resource name of the location, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) EstimateDataSize(location string, googleclouddiscoveryenginev1alphaestimatedatasizerequest *GoogleCloudDiscoveryengineV1alphaEstimateDataSizeRequest) *ProjectsLocationsEstimateDataSizeCall {
	c := &ProjectsLocationsEstimateDataSizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.googleclouddiscoveryenginev1alphaestimatedatasizerequest = googleclouddiscoveryenginev1alphaestimatedatasizerequest
	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 *ProjectsLocationsEstimateDataSizeCall) Fields(s ...googleapi.Field) *ProjectsLocationsEstimateDataSizeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEstimateDataSizeCall) Context(ctx context.Context) *ProjectsLocationsEstimateDataSizeCall {
	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 *ProjectsLocationsEstimateDataSizeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEstimateDataSizeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaestimatedatasizerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+location}:estimateDataSize")
	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{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.estimateDataSize", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.estimateDataSize" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsEstimateDataSizeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.estimateDataSize", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsGetAclConfigCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetAclConfig: Gets the AclConfig.
//
//   - name: Resource name of AclConfig, such as
//     `projects/*/locations/*/aclConfig`. If the caller does not have permission
//     to access the AclConfig, regardless of whether or not it exists, a
//     PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsService) GetAclConfig(name string) *ProjectsLocationsGetAclConfigCall {
	c := &ProjectsLocationsGetAclConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsGetAclConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetAclConfigCall {
	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 *ProjectsLocationsGetAclConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetAclConfigCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGetAclConfigCall) Context(ctx context.Context) *ProjectsLocationsGetAclConfigCall {
	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 *ProjectsLocationsGetAclConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGetAclConfigCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.getAclConfig", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.getAclConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAclConfig.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 *ProjectsLocationsGetAclConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAclConfig, 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 := &GoogleCloudDiscoveryengineV1alphaAclConfig{
		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", "discoveryengine.projects.locations.getAclConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsGetCmekConfigCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetCmekConfig: Gets the CmekConfig.
//
//   - name: Resource name of CmekConfig, such as
//     `projects/*/locations/*/cmekConfig` or
//     `projects/*/locations/*/cmekConfigs/*`. If the caller does not have
//     permission to access the CmekConfig, regardless of whether or not it
//     exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsService) GetCmekConfig(name string) *ProjectsLocationsGetCmekConfigCall {
	c := &ProjectsLocationsGetCmekConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsGetCmekConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCmekConfigCall {
	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 *ProjectsLocationsGetCmekConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCmekConfigCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGetCmekConfigCall) Context(ctx context.Context) *ProjectsLocationsGetCmekConfigCall {
	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 *ProjectsLocationsGetCmekConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGetCmekConfigCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.getCmekConfig", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.getCmekConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCmekConfig.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 *ProjectsLocationsGetCmekConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCmekConfig, 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 := &GoogleCloudDiscoveryengineV1alphaCmekConfig{
		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", "discoveryengine.projects.locations.getCmekConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsGetConfigurablePricingUsageStatsCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetConfigurablePricingUsageStats: Gets configurable pricing usage stats.
//
//   - name: The name of the ConfigurablePricingUsageStats to retrieve. Format:
//     projects/{project}/locations/{location}/configurablePricingUsageStats.
func (r *ProjectsLocationsService) GetConfigurablePricingUsageStats(name string) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c := &ProjectsLocationsGetConfigurablePricingUsageStatsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// MetricTypes sets the optional parameter "metricTypes": The metric types to
// return usage for.
//
// Possible values:
//
//	"BILLING_METRIC_TYPE_UNSPECIFIED" - Default value.
//	"DAILY_MDN_QPM" - Daily median search request QPM.
//	"DAILY_MIN_QPM" - Daily min search request QPM.
//	"DAILY_MAX_QPM" - Daily max search request QPM.
//	"DAILY_SEARCH_REQUEST" - Daily search request total.
//	"TOTAL_STORAGE" - Total storage bytes for indexing core.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) MetricTypes(metricTypes ...string) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.SetMulti("metricTypes", append([]string{}, metricTypes...))
	return c
}

// TimeRangeEndDateDay sets the optional parameter "timeRange.endDate.day": Day
// of a month. Must be from 1 to 31 and valid for the year and month, or 0 to
// specify a year by itself or a year and month where the day isn't
// significant.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeEndDateDay(timeRangeEndDateDay int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.endDate.day", fmt.Sprint(timeRangeEndDateDay))
	return c
}

// TimeRangeEndDateMonth sets the optional parameter "timeRange.endDate.month":
// Month of a year. Must be from 1 to 12, or 0 to specify a year without a
// month and day.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeEndDateMonth(timeRangeEndDateMonth int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.endDate.month", fmt.Sprint(timeRangeEndDateMonth))
	return c
}

// TimeRangeEndDateYear sets the optional parameter "timeRange.endDate.year":
// Year of the date. Must be from 1 to 9999, or 0 to specify a date without a
// year.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeEndDateYear(timeRangeEndDateYear int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.endDate.year", fmt.Sprint(timeRangeEndDateYear))
	return c
}

// TimeRangeStartDateDay sets the optional parameter "timeRange.startDate.day":
// Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
// to specify a year by itself or a year and month where the day isn't
// significant.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeStartDateDay(timeRangeStartDateDay int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.startDate.day", fmt.Sprint(timeRangeStartDateDay))
	return c
}

// TimeRangeStartDateMonth sets the optional parameter
// "timeRange.startDate.month": Month of a year. Must be from 1 to 12, or 0 to
// specify a year without a month and day.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeStartDateMonth(timeRangeStartDateMonth int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.startDate.month", fmt.Sprint(timeRangeStartDateMonth))
	return c
}

// TimeRangeStartDateYear sets the optional parameter
// "timeRange.startDate.year": Year of the date. Must be from 1 to 9999, or 0
// to specify a date without a year.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) TimeRangeStartDateYear(timeRangeStartDateYear int64) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.urlParams_.Set("timeRange.startDate.year", fmt.Sprint(timeRangeStartDateYear))
	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 *ProjectsLocationsGetConfigurablePricingUsageStatsCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	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 *ProjectsLocationsGetConfigurablePricingUsageStatsCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) Context(ctx context.Context) *ProjectsLocationsGetConfigurablePricingUsageStatsCall {
	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 *ProjectsLocationsGetConfigurablePricingUsageStatsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGetConfigurablePricingUsageStatsCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.getConfigurablePricingUsageStats", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.getConfigurablePricingUsageStats" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStats.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 *ProjectsLocationsGetConfigurablePricingUsageStatsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStats, 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 := &GoogleCloudDiscoveryengineV1alphaConfigurablePricingUsageStats{
		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", "discoveryengine.projects.locations.getConfigurablePricingUsageStats", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsObtainCrawlRateCall struct {
	s                                                       *Service
	location                                                string
	googleclouddiscoveryenginev1alphaobtaincrawlraterequest *GoogleCloudDiscoveryengineV1alphaObtainCrawlRateRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// ObtainCrawlRate: Obtains the time series data of organic or dedicated crawl
// rate for monitoring. When dedicated crawl rate is not set, it will return
// vertex AI's organic crawl rate time series. Organic crawl means Google
// automatically crawl the internet at its own convenience. When dedicated
// crawl rate is set, it will return vertex AI's dedicated crawl rate time
// series.
//
//   - location: The location resource where crawl rate management will be
//     performed. Format: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) ObtainCrawlRate(location string, googleclouddiscoveryenginev1alphaobtaincrawlraterequest *GoogleCloudDiscoveryengineV1alphaObtainCrawlRateRequest) *ProjectsLocationsObtainCrawlRateCall {
	c := &ProjectsLocationsObtainCrawlRateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.googleclouddiscoveryenginev1alphaobtaincrawlraterequest = googleclouddiscoveryenginev1alphaobtaincrawlraterequest
	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 *ProjectsLocationsObtainCrawlRateCall) Fields(s ...googleapi.Field) *ProjectsLocationsObtainCrawlRateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsObtainCrawlRateCall) Context(ctx context.Context) *ProjectsLocationsObtainCrawlRateCall {
	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 *ProjectsLocationsObtainCrawlRateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsObtainCrawlRateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaobtaincrawlraterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+location}:obtainCrawlRate")
	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{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.obtainCrawlRate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.obtainCrawlRate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaObtainCrawlRateResponse.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 *ProjectsLocationsObtainCrawlRateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaObtainCrawlRateResponse, 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 := &GoogleCloudDiscoveryengineV1alphaObtainCrawlRateResponse{
		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", "discoveryengine.projects.locations.obtainCrawlRate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsRemoveDedicatedCrawlRateCall struct {
	s                                                                *Service
	location                                                         string
	googleclouddiscoveryenginev1alpharemovededicatedcrawlraterequest *GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// RemoveDedicatedCrawlRate: Removes the dedicated crawl rate for a
// craw_rate_scope. If the dedicated crawl rate was set, this will disable
// vertex AI's crawl bot from using the dedicated crawl rate for crawling. If
// the dedicated crawl rate was not set, this is a no-op.
//
//   - location: The location resource where crawl rate management will be
//     performed. Format: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) RemoveDedicatedCrawlRate(location string, googleclouddiscoveryenginev1alpharemovededicatedcrawlraterequest *GoogleCloudDiscoveryengineV1alphaRemoveDedicatedCrawlRateRequest) *ProjectsLocationsRemoveDedicatedCrawlRateCall {
	c := &ProjectsLocationsRemoveDedicatedCrawlRateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.googleclouddiscoveryenginev1alpharemovededicatedcrawlraterequest = googleclouddiscoveryenginev1alpharemovededicatedcrawlraterequest
	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 *ProjectsLocationsRemoveDedicatedCrawlRateCall) Fields(s ...googleapi.Field) *ProjectsLocationsRemoveDedicatedCrawlRateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsRemoveDedicatedCrawlRateCall) Context(ctx context.Context) *ProjectsLocationsRemoveDedicatedCrawlRateCall {
	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 *ProjectsLocationsRemoveDedicatedCrawlRateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsRemoveDedicatedCrawlRateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharemovededicatedcrawlraterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+location}:removeDedicatedCrawlRate")
	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{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.removeDedicatedCrawlRate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.removeDedicatedCrawlRate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsRemoveDedicatedCrawlRateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.removeDedicatedCrawlRate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSetDedicatedCrawlRateCall struct {
	s                                                             *Service
	location                                                      string
	googleclouddiscoveryenginev1alphasetdedicatedcrawlraterequest *GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// SetDedicatedCrawlRate: Sets the dedicated crawl rate for a crawl_rate_scope.
// If the dedicated crawl rate was not set, this will enable vertex AI's crawl
// bot to use the new dedicated crawl rate for crawling. If the dedicated crawl
// rate was set, vertex AI's crawl bot will try to update the rate to the new
// value. If the new value is too high, the crawl bot may crawl at a lower rate
// to avoid overloading the user's website.
//
//   - location: The location resource where crawl rate management will be
//     performed. Format: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) SetDedicatedCrawlRate(location string, googleclouddiscoveryenginev1alphasetdedicatedcrawlraterequest *GoogleCloudDiscoveryengineV1alphaSetDedicatedCrawlRateRequest) *ProjectsLocationsSetDedicatedCrawlRateCall {
	c := &ProjectsLocationsSetDedicatedCrawlRateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.googleclouddiscoveryenginev1alphasetdedicatedcrawlraterequest = googleclouddiscoveryenginev1alphasetdedicatedcrawlraterequest
	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 *ProjectsLocationsSetDedicatedCrawlRateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSetDedicatedCrawlRateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSetDedicatedCrawlRateCall) Context(ctx context.Context) *ProjectsLocationsSetDedicatedCrawlRateCall {
	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 *ProjectsLocationsSetDedicatedCrawlRateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSetDedicatedCrawlRateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasetdedicatedcrawlraterequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+location}:setDedicatedCrawlRate")
	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{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.setDedicatedCrawlRate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.setDedicatedCrawlRate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsSetDedicatedCrawlRateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.setDedicatedCrawlRate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSetUpDataConnectorCall struct {
	s                                                          *Service
	parent                                                     string
	googleclouddiscoveryenginev1alphasetupdataconnectorrequest *GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// SetUpDataConnector: Creates a Collection and sets up the DataConnector for
// it. To stop a DataConnector after setup, use the
// CollectionService.DeleteCollection method.
//
//   - parent: The parent of Collection, in the format of
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) SetUpDataConnector(parent string, googleclouddiscoveryenginev1alphasetupdataconnectorrequest *GoogleCloudDiscoveryengineV1alphaSetUpDataConnectorRequest) *ProjectsLocationsSetUpDataConnectorCall {
	c := &ProjectsLocationsSetUpDataConnectorCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasetupdataconnectorrequest = googleclouddiscoveryenginev1alphasetupdataconnectorrequest
	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 *ProjectsLocationsSetUpDataConnectorCall) Fields(s ...googleapi.Field) *ProjectsLocationsSetUpDataConnectorCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSetUpDataConnectorCall) Context(ctx context.Context) *ProjectsLocationsSetUpDataConnectorCall {
	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 *ProjectsLocationsSetUpDataConnectorCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSetUpDataConnectorCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasetupdataconnectorrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}:setUpDataConnector")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.setUpDataConnector", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.setUpDataConnector" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsSetUpDataConnectorCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.setUpDataConnector", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSetUpDataConnectorV2Call struct {
	s                                              *Service
	parent                                         string
	googleclouddiscoveryenginev1alphadataconnector *GoogleCloudDiscoveryengineV1alphaDataConnector
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// SetUpDataConnectorV2: Creates a Collection and sets up the DataConnector for
// it. To stop a DataConnector after setup, use the
// CollectionService.DeleteCollection method.
//
//   - parent: The parent of Collection, in the format of
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsService) SetUpDataConnectorV2(parent string, googleclouddiscoveryenginev1alphadataconnector *GoogleCloudDiscoveryengineV1alphaDataConnector) *ProjectsLocationsSetUpDataConnectorV2Call {
	c := &ProjectsLocationsSetUpDataConnectorV2Call{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphadataconnector = googleclouddiscoveryenginev1alphadataconnector
	return c
}

// CollectionDisplayName sets the optional parameter "collectionDisplayName":
// Required. The display name of the Collection. Should be human readable, used
// to display collections in the Console Dashboard. UTF-8 encoded string with
// limit of 1024 characters.
func (c *ProjectsLocationsSetUpDataConnectorV2Call) CollectionDisplayName(collectionDisplayName string) *ProjectsLocationsSetUpDataConnectorV2Call {
	c.urlParams_.Set("collectionDisplayName", collectionDisplayName)
	return c
}

// CollectionId sets the optional parameter "collectionId": Required. The ID to
// use for the Collection, which will become the final component of the
// Collection's resource name. A new Collection is created as part of the
// DataConnector setup. DataConnector is a singleton resource under Collection,
// managing all DataStores of the Collection. This field must conform to
// RFC-1034 (https://tools.ietf.org/html/rfc1034) standard with a length limit
// of 63 characters. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsSetUpDataConnectorV2Call) CollectionId(collectionId string) *ProjectsLocationsSetUpDataConnectorV2Call {
	c.urlParams_.Set("collectionId", collectionId)
	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 *ProjectsLocationsSetUpDataConnectorV2Call) Fields(s ...googleapi.Field) *ProjectsLocationsSetUpDataConnectorV2Call {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSetUpDataConnectorV2Call) Context(ctx context.Context) *ProjectsLocationsSetUpDataConnectorV2Call {
	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 *ProjectsLocationsSetUpDataConnectorV2Call) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSetUpDataConnectorV2Call) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadataconnector)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}:setUpDataConnectorV2")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.setUpDataConnectorV2", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.setUpDataConnectorV2" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsSetUpDataConnectorV2Call) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.setUpDataConnectorV2", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUpdateAclConfigCall struct {
	s                                          *Service
	name                                       string
	googleclouddiscoveryenginev1alphaaclconfig *GoogleCloudDiscoveryengineV1alphaAclConfig
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// UpdateAclConfig: Default ACL configuration for use in a location of a
// customer's project. Updates will only reflect to new data stores. Existing
// data stores will still use the old value.
//
//   - name: Immutable. The full resource name of the acl configuration. Format:
//     `projects/{project}/locations/{location}/aclConfig`. This field must be a
//     UTF-8 encoded string with a length limit of 1024 characters.
func (r *ProjectsLocationsService) UpdateAclConfig(name string, googleclouddiscoveryenginev1alphaaclconfig *GoogleCloudDiscoveryengineV1alphaAclConfig) *ProjectsLocationsUpdateAclConfigCall {
	c := &ProjectsLocationsUpdateAclConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaaclconfig = googleclouddiscoveryenginev1alphaaclconfig
	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 *ProjectsLocationsUpdateAclConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsUpdateAclConfigCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUpdateAclConfigCall) Context(ctx context.Context) *ProjectsLocationsUpdateAclConfigCall {
	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 *ProjectsLocationsUpdateAclConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUpdateAclConfigCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaaclconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.updateAclConfig", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.updateAclConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAclConfig.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 *ProjectsLocationsUpdateAclConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAclConfig, 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 := &GoogleCloudDiscoveryengineV1alphaAclConfig{
		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", "discoveryengine.projects.locations.updateAclConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUpdateCmekConfigCall struct {
	s                                           *Service
	name                                        string
	googleclouddiscoveryenginev1alphacmekconfig *GoogleCloudDiscoveryengineV1alphaCmekConfig
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// UpdateCmekConfig: Provisions a CMEK key for use in a location of a
// customer's project. This method will also conduct location validation on the
// provided cmekConfig to make sure the key is valid and can be used in the
// selected location.
//
//   - name: The name of the CmekConfig of the form
//     `projects/{project}/locations/{location}/cmekConfig` or
//     `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
func (r *ProjectsLocationsService) UpdateCmekConfig(name string, googleclouddiscoveryenginev1alphacmekconfig *GoogleCloudDiscoveryengineV1alphaCmekConfig) *ProjectsLocationsUpdateCmekConfigCall {
	c := &ProjectsLocationsUpdateCmekConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacmekconfig = googleclouddiscoveryenginev1alphacmekconfig
	return c
}

// SetDefault sets the optional parameter "setDefault": Set the following
// CmekConfig as the default to be used for child resources if one is not
// specified.
func (c *ProjectsLocationsUpdateCmekConfigCall) SetDefault(setDefault bool) *ProjectsLocationsUpdateCmekConfigCall {
	c.urlParams_.Set("setDefault", fmt.Sprint(setDefault))
	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 *ProjectsLocationsUpdateCmekConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsUpdateCmekConfigCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUpdateCmekConfigCall) Context(ctx context.Context) *ProjectsLocationsUpdateCmekConfigCall {
	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 *ProjectsLocationsUpdateCmekConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUpdateCmekConfigCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacmekconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.updateCmekConfig", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.updateCmekConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsUpdateCmekConfigCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.updateCmekConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCmekConfigsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: De-provisions a CmekConfig.
//
//   - name: The resource name of the CmekConfig to delete, such as
//     `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
func (r *ProjectsLocationsCmekConfigsService) Delete(name string) *ProjectsLocationsCmekConfigsDeleteCall {
	c := &ProjectsLocationsCmekConfigsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCmekConfigsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCmekConfigsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCmekConfigsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCmekConfigsDeleteCall {
	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 *ProjectsLocationsCmekConfigsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCmekConfigsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.cmekConfigs.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.cmekConfigs.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCmekConfigsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.cmekConfigs.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCmekConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the CmekConfig.
//
//   - name: Resource name of CmekConfig, such as
//     `projects/*/locations/*/cmekConfig` or
//     `projects/*/locations/*/cmekConfigs/*`. If the caller does not have
//     permission to access the CmekConfig, regardless of whether or not it
//     exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCmekConfigsService) Get(name string) *ProjectsLocationsCmekConfigsGetCall {
	c := &ProjectsLocationsCmekConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCmekConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCmekConfigsGetCall {
	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 *ProjectsLocationsCmekConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCmekConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCmekConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsCmekConfigsGetCall {
	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 *ProjectsLocationsCmekConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCmekConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.cmekConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.cmekConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCmekConfig.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 *ProjectsLocationsCmekConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCmekConfig, 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 := &GoogleCloudDiscoveryengineV1alphaCmekConfig{
		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", "discoveryengine.projects.locations.cmekConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCmekConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all the CmekConfigs with the project.
//
//   - parent: The parent location resource name, such as
//     `projects/{project}/locations/{location}`. If the caller does not have
//     permission to list CmekConfigs under this location, regardless of whether
//     or not a CmekConfig exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCmekConfigsService) List(parent string) *ProjectsLocationsCmekConfigsListCall {
	c := &ProjectsLocationsCmekConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	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 *ProjectsLocationsCmekConfigsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCmekConfigsListCall {
	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 *ProjectsLocationsCmekConfigsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCmekConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCmekConfigsListCall) Context(ctx context.Context) *ProjectsLocationsCmekConfigsListCall {
	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 *ProjectsLocationsCmekConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCmekConfigsListCall) 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, "v1alpha/{+parent}/cmekConfigs")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.cmekConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.cmekConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListCmekConfigsResponse.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 *ProjectsLocationsCmekConfigsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListCmekConfigsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListCmekConfigsResponse{
		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", "discoveryengine.projects.locations.cmekConfigs.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCmekConfigsPatchCall struct {
	s                                           *Service
	name                                        string
	googleclouddiscoveryenginev1alphacmekconfig *GoogleCloudDiscoveryengineV1alphaCmekConfig
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Patch: Provisions a CMEK key for use in a location of a customer's project.
// This method will also conduct location validation on the provided cmekConfig
// to make sure the key is valid and can be used in the selected location.
//
//   - name: The name of the CmekConfig of the form
//     `projects/{project}/locations/{location}/cmekConfig` or
//     `projects/{project}/locations/{location}/cmekConfigs/{cmek_config}`.
func (r *ProjectsLocationsCmekConfigsService) Patch(name string, googleclouddiscoveryenginev1alphacmekconfig *GoogleCloudDiscoveryengineV1alphaCmekConfig) *ProjectsLocationsCmekConfigsPatchCall {
	c := &ProjectsLocationsCmekConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacmekconfig = googleclouddiscoveryenginev1alphacmekconfig
	return c
}

// SetDefault sets the optional parameter "setDefault": Set the following
// CmekConfig as the default to be used for child resources if one is not
// specified.
func (c *ProjectsLocationsCmekConfigsPatchCall) SetDefault(setDefault bool) *ProjectsLocationsCmekConfigsPatchCall {
	c.urlParams_.Set("setDefault", fmt.Sprint(setDefault))
	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 *ProjectsLocationsCmekConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCmekConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCmekConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsCmekConfigsPatchCall {
	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 *ProjectsLocationsCmekConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCmekConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacmekconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.cmekConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.cmekConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCmekConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.cmekConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Collection.
//
//   - name: The full resource name of the Collection, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}`.
func (r *ProjectsLocationsCollectionsService) Delete(name string) *ProjectsLocationsCollectionsDeleteCall {
	c := &ProjectsLocationsCollectionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDeleteCall {
	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 *ProjectsLocationsCollectionsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Collection.
//
//   - name: The full resource name, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}`.
func (r *ProjectsLocationsCollectionsService) Get(name string) *ProjectsLocationsCollectionsGetCall {
	c := &ProjectsLocationsCollectionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsGetCall {
	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 *ProjectsLocationsCollectionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsGetCall {
	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 *ProjectsLocationsCollectionsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCollection.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 *ProjectsLocationsCollectionsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCollection, 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 := &GoogleCloudDiscoveryengineV1alphaCollection{
		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", "discoveryengine.projects.locations.collections.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsGetDataConnectorCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetDataConnector: Gets the DataConnector. DataConnector is a singleton
// resource for each Collection.
//
//   - name: Full resource name of DataConnector, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataCo
//     nnector`. If the caller does not have permission to access the
//     DataConnector, regardless of whether or not it exists, a PERMISSION_DENIED
//     error is returned. If the requested DataConnector does not exist, a
//     NOT_FOUND error is returned.
func (r *ProjectsLocationsCollectionsService) GetDataConnector(name string) *ProjectsLocationsCollectionsGetDataConnectorCall {
	c := &ProjectsLocationsCollectionsGetDataConnectorCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsGetDataConnectorCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsGetDataConnectorCall {
	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 *ProjectsLocationsCollectionsGetDataConnectorCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsGetDataConnectorCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsGetDataConnectorCall) Context(ctx context.Context) *ProjectsLocationsCollectionsGetDataConnectorCall {
	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 *ProjectsLocationsCollectionsGetDataConnectorCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsGetDataConnectorCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.getDataConnector", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.getDataConnector" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataConnector.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 *ProjectsLocationsCollectionsGetDataConnectorCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataConnector, 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 := &GoogleCloudDiscoveryengineV1alphaDataConnector{
		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", "discoveryengine.projects.locations.collections.getDataConnector", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Collections.
//
//   - parent: The parent data store resource name, in the format of
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsCollectionsService) List(parent string) *ProjectsLocationsCollectionsListCall {
	c := &ProjectsLocationsCollectionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter returned collections by
// associated data connector data sources. For example: `filter =
// 'data_source:jira confluence'`. If the filter is empty, we return all
// collections under a project and location.
func (c *ProjectsLocationsCollectionsListCall) Filter(filter string) *ProjectsLocationsCollectionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// Collections to return. The service may return fewer than this value. If
// unspecified, at most 100 Collections will be returned. The maximum value is
// 1000; values above 1000 will be coerced to 1000.
func (c *ProjectsLocationsCollectionsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous CollectionService.ListCollections call. Provide this to
// retrieve the subsequent page. When paginating, all other parameters provided
// to CollectionService.ListCollections must match the call that provided the
// page token.
func (c *ProjectsLocationsCollectionsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsListCall {
	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 *ProjectsLocationsCollectionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsListCall {
	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 *ProjectsLocationsCollectionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsListCall {
	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 *ProjectsLocationsCollectionsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsListCall) 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, "v1alpha/{+parent}/collections")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListCollectionsResponse.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 *ProjectsLocationsCollectionsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListCollectionsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListCollectionsResponse{
		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", "discoveryengine.projects.locations.collections.list", "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 *ProjectsLocationsCollectionsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListCollectionsResponse) 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 ProjectsLocationsCollectionsPatchCall struct {
	s                                           *Service
	name                                        string
	googleclouddiscoveryenginev1alphacollection *GoogleCloudDiscoveryengineV1alphaCollection
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Patch: Updates a Collection.
//
//   - name: Immutable. The full resource name of the Collection. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}`.
//     This field must be a UTF-8 encoded string with a length limit of 1024
//     characters.
func (r *ProjectsLocationsCollectionsService) Patch(name string, googleclouddiscoveryenginev1alphacollection *GoogleCloudDiscoveryengineV1alphaCollection) *ProjectsLocationsCollectionsPatchCall {
	c := &ProjectsLocationsCollectionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacollection = googleclouddiscoveryenginev1alphacollection
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// be updated.
func (c *ProjectsLocationsCollectionsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsPatchCall {
	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 *ProjectsLocationsCollectionsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacollection)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsUpdateDataConnectorCall struct {
	s                                              *Service
	name                                           string
	googleclouddiscoveryenginev1alphadataconnector *GoogleCloudDiscoveryengineV1alphaDataConnector
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// UpdateDataConnector: Updates a DataConnector.
//
//   - name: Output only. The full resource name of the Data Connector. Format:
//     `projects/*/locations/*/collections/*/dataConnector`.
func (r *ProjectsLocationsCollectionsService) UpdateDataConnector(name string, googleclouddiscoveryenginev1alphadataconnector *GoogleCloudDiscoveryengineV1alphaDataConnector) *ProjectsLocationsCollectionsUpdateDataConnectorCall {
	c := &ProjectsLocationsCollectionsUpdateDataConnectorCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadataconnector = googleclouddiscoveryenginev1alphadataconnector
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided DataConnector to update. Supported field paths include: -
// refresh_interval - params - auto_run_disabled - action_config -
// action_config.action_params - action_config.service_name -
// destination_configs - blocking_reasons - sync_mode -
// incremental_sync_disabled - incremental_refresh_interval Note: Support for
// these fields may vary depending on the connector type. For example, not all
// connectors support `destination_configs`. If an unsupported or unknown field
// path is provided, the request will return an INVALID_ARGUMENT error.
func (c *ProjectsLocationsCollectionsUpdateDataConnectorCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsUpdateDataConnectorCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsUpdateDataConnectorCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsUpdateDataConnectorCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsUpdateDataConnectorCall) Context(ctx context.Context) *ProjectsLocationsCollectionsUpdateDataConnectorCall {
	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 *ProjectsLocationsCollectionsUpdateDataConnectorCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsUpdateDataConnectorCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadataconnector)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.updateDataConnector", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.updateDataConnector" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataConnector.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 *ProjectsLocationsCollectionsUpdateDataConnectorCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataConnector, 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 := &GoogleCloudDiscoveryengineV1alphaDataConnector{
		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", "discoveryengine.projects.locations.collections.updateDataConnector", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall struct {
	s                                                          *Service
	name                                                       string
	googleclouddiscoveryenginev1alphaacquireaccesstokenrequest *GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenRequest
	urlParams_                                                 gensupport.URLParams
	ctx_                                                       context.Context
	header_                                                    http.Header
}

// AcquireAccessToken: Uses the per-user refresh token minted with
// AcquireAndStoreRefreshToken to generate and return a new access token and
// its details. Takes the access token from cache if available. Rotates the
// stored refresh token if needed. Uses the end user identity to return the
// user specific access token. Does *not* return the credentials configured by
// the administrator. Used by action execution and UI.
//
// - name: The resource name of the connector for which a token is queried.
func (r *ProjectsLocationsCollectionsDataConnectorService) AcquireAccessToken(name string, googleclouddiscoveryenginev1alphaacquireaccesstokenrequest *GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenRequest) *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall {
	c := &ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaacquireaccesstokenrequest = googleclouddiscoveryenginev1alphaacquireaccesstokenrequest
	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 *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall {
	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 *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaacquireaccesstokenrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:acquireAccessToken")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.acquireAccessToken", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.acquireAccessToken" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenResponse.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 *ProjectsLocationsCollectionsDataConnectorAcquireAccessTokenCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAcquireAccessTokenResponse{
		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", "discoveryengine.projects.locations.collections.dataConnector.acquireAccessToken", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// CheckRefreshToken: Deprecated: Checks the existence of a refresh token for
// the EUC user for a given connection and returns its details. Use
// AcquireAccessToken instead and then check the validity of the returned token
// by asking the 3rd party system. There's no way to know for sure if a refresh
// token is valid without asking the 3rd party system.
//
// - name: The resource name of the connector for which a token is queried.
func (r *ProjectsLocationsCollectionsDataConnectorService) CheckRefreshToken(name string) *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall {
	c := &ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall {
	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 *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall {
	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 *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) 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, "v1alpha/{+name}:checkRefreshToken")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.checkRefreshToken", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.checkRefreshToken" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCheckRefreshTokenResponse.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 *ProjectsLocationsCollectionsDataConnectorCheckRefreshTokenCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCheckRefreshTokenResponse, 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 := &GoogleCloudDiscoveryengineV1alphaCheckRefreshTokenResponse{
		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", "discoveryengine.projects.locations.collections.dataConnector.checkRefreshToken", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetConnectorSecret: Get the secret for the associated connector.
//
// - name: The full resource name of the associated data connector.
func (r *ProjectsLocationsCollectionsDataConnectorService) GetConnectorSecret(name string) *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall {
	c := &ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall {
	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 *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall {
	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 *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) 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, "v1alpha/{+name}:getConnectorSecret")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.getConnectorSecret", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.getConnectorSecret" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse.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 *ProjectsLocationsCollectionsDataConnectorGetConnectorSecretCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse, 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 := &GoogleCloudDiscoveryengineV1alphaGetConnectorSecretResponse{
		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", "discoveryengine.projects.locations.collections.dataConnector.getConnectorSecret", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall struct {
	s                                                         *Service
	parent                                                    string
	googleclouddiscoveryenginev1alphastartconnectorrunrequest *GoogleCloudDiscoveryengineV1alphaStartConnectorRunRequest
	urlParams_                                                gensupport.URLParams
	ctx_                                                      context.Context
	header_                                                   http.Header
}

// StartConnectorRun: Starts an immediate synchronization process for a
// DataConnector. Third Party Connector Users must specify which entities
// should be synced. FHIR Connectors must provide a timestamp to indicate the
// point in time from which data should be synced.
//
//   - parent: Connector name of the form
//     projects/{project}/locations/{location}/collections/
//     {collection_id}/dataConnector.
func (r *ProjectsLocationsCollectionsDataConnectorService) StartConnectorRun(parent string, googleclouddiscoveryenginev1alphastartconnectorrunrequest *GoogleCloudDiscoveryengineV1alphaStartConnectorRunRequest) *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall {
	c := &ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphastartconnectorrunrequest = googleclouddiscoveryenginev1alphastartconnectorrunrequest
	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 *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall {
	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 *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphastartconnectorrunrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}:startConnectorRun")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.startConnectorRun", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.startConnectorRun" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConnectorRun.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 *ProjectsLocationsCollectionsDataConnectorStartConnectorRunCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConnectorRun, 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 := &GoogleCloudDiscoveryengineV1alphaConnectorRun{
		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", "discoveryengine.projects.locations.collections.dataConnector.startConnectorRun", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists the ConnectorRuns of a DataConnector.
//
//   - parent: The parent DataConnector resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataCo
//     nnector`. If the caller does not have permission to list ConnectorRuns
//     under this DataConnector, regardless of whether or not this DataConnector
//     exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCollectionsDataConnectorConnectorRunsService) List(parent string) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	c := &ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. If unspecified, defaults to 10. The
// maximum value is 50; values above 50 will be coerced to 50. If this field is
// negative, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListConnectorRuns` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListConnectorRuns` must match the call that provided the page token.
func (c *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	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 *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	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 *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall {
	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 *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) 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, "v1alpha/{+parent}/connectorRuns")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.connectorRuns.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.connectorRuns.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse.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 *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse{
		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", "discoveryengine.projects.locations.collections.dataConnector.connectorRuns.list", "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 *ProjectsLocationsCollectionsDataConnectorConnectorRunsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListConnectorRunsResponse) 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 ProjectsLocationsCollectionsDataConnectorOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataConnectorOperationsService) Get(name string) *ProjectsLocationsCollectionsDataConnectorOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataConnectorOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataConnectorOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataConnectorOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataConnector.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataConnectorOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataConnectorOperationsService) List(name string) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c := &ProjectsLocationsCollectionsDataConnectorOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	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 *ProjectsLocationsCollectionsDataConnectorOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataConnectorOperationsListCall {
	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 *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataConnectorOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataConnector.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataConnector.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataConnector.operations.list", "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 *ProjectsLocationsCollectionsDataConnectorOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresCompleteQueryCall struct {
	s            *Service
	dataStore    string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// CompleteQuery: Completes the specified user input with keyword suggestions.
//
//   - dataStore: The parent data store resource name for which the completion is
//     performed, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store`.
func (r *ProjectsLocationsCollectionsDataStoresService) CompleteQuery(dataStore string) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c := &ProjectsLocationsCollectionsDataStoresCompleteQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.dataStore = dataStore
	return c
}

// IncludeTailSuggestions sets the optional parameter "includeTailSuggestions":
// Indicates if tail suggestions should be returned if there are no suggestions
// that match the full query. Even if set to true, if there are suggestions
// that match the full query, those are returned and no tail suggestions are
// returned.
func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) IncludeTailSuggestions(includeTailSuggestions bool) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c.urlParams_.Set("includeTailSuggestions", fmt.Sprint(includeTailSuggestions))
	return c
}

// Query sets the optional parameter "query": Required. The typeahead input
// used to fetch suggestions. Maximum length is 128 characters.
func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) Query(query string) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c.urlParams_.Set("query", query)
	return c
}

// QueryModel sets the optional parameter "queryModel": Specifies the
// autocomplete data model. This overrides any model specified in the
// Configuration > Autocomplete section of the Cloud console. Currently
// supported values: * `document` - Using suggestions generated from
// user-imported documents. * `search-history` - Using suggestions generated
// from the past history of SearchService.Search API calls. Do not use it when
// there is no traffic for Search API. * `user-event` - Using suggestions
// generated from user-imported search events. * `document-completable` - Using
// suggestions taken directly from user-imported document fields marked as
// completable. Default values: * `document` is the default model for regular
// dataStores. * `search-history` is the default model for site search
// dataStores.
func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) QueryModel(queryModel string) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c.urlParams_.Set("queryModel", queryModel)
	return c
}

// UserPseudoId sets the optional parameter "userPseudoId": A unique identifier
// for tracking visitors. For example, this could be implemented with an HTTP
// cookie, which should be able to uniquely identify a visitor on a single
// device. This unique identifier should not change if the visitor logs in or
// out of the website. This field should NOT have a fixed value such as
// `unknown_visitor`. This should be the same identifier as
// UserEvent.user_pseudo_id and SearchRequest.user_pseudo_id. The field must be
// a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) UserPseudoId(userPseudoId string) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c.urlParams_.Set("userPseudoId", userPseudoId)
	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 *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	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 *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCompleteQueryCall {
	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 *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) 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, "v1alpha/{+dataStore}:completeQuery")
	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{
		"dataStore": c.dataStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.completeQuery", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.completeQuery" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse.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 *ProjectsLocationsCollectionsDataStoresCompleteQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.completeQuery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresCreateCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Create: Creates a DataStore. DataStore is for storing Documents. To serve
// these documents for Search, or Recommendation use case, an Engine needs to
// be created separately.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}`.
func (r *ProjectsLocationsCollectionsDataStoresService) Create(parent string, googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphadatastore = googleclouddiscoveryenginev1alphadatastore
	return c
}

// CmekConfigName sets the optional parameter "cmekConfigName": Resource name
// of the CmekConfig to use for protecting this DataStore.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) CmekConfigName(cmekConfigName string) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("cmekConfigName", cmekConfigName)
	return c
}

// CreateAdvancedSiteSearch sets the optional parameter
// "createAdvancedSiteSearch": A boolean flag indicating whether user want to
// directly create an advanced data store for site search. If the data store is
// not configured as site search (GENERIC vertical and PUBLIC_WEBSITE
// content_config), this flag will be ignored.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) CreateAdvancedSiteSearch(createAdvancedSiteSearch bool) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("createAdvancedSiteSearch", fmt.Sprint(createAdvancedSiteSearch))
	return c
}

// DataStoreId sets the optional parameter "dataStoreId": Required. The ID to
// use for the DataStore, which will become the final component of the
// DataStore's resource name. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 63
// characters. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) DataStoreId(dataStoreId string) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("dataStoreId", dataStoreId)
	return c
}

// DisableCmek sets the optional parameter "disableCmek": DataStore without
// CMEK protections. If a default CmekConfig is set for the project, setting
// this field will override the default CmekConfig as well.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) DisableCmek(disableCmek bool) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("disableCmek", fmt.Sprint(disableCmek))
	return c
}

// SkipDefaultSchemaCreation sets the optional parameter
// "skipDefaultSchemaCreation": A boolean flag indicating whether to skip the
// default schema creation for the data store. Only enable this flag if you are
// certain that the default schema is incompatible with your use case. If set
// to true, you must manually create a schema for the data store before any
// documents can be ingested. This flag cannot be specified if
// `data_store.starting_schema` is specified.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) SkipDefaultSchemaCreation(skipDefaultSchemaCreation bool) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("skipDefaultSchemaCreation", fmt.Sprint(skipDefaultSchemaCreation))
	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 *ProjectsLocationsCollectionsDataStoresCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadatastore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/dataStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a DataStore.
//
//   - name: Full resource name of DataStore, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. If the caller does not have permission to delete
//     the DataStore, regardless of whether or not it exists, a PERMISSION_DENIED
//     error is returned. If the DataStore to delete does not exist, a NOT_FOUND
//     error is returned.
func (r *ProjectsLocationsCollectionsDataStoresService) Delete(name string) *ProjectsLocationsCollectionsDataStoresDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a DataStore.
//
//   - name: Full resource name of DataStore, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. If the caller does not have permission to access
//     the DataStore, regardless of whether or not it exists, a PERMISSION_DENIED
//     error is returned. If the requested DataStore does not exist, a NOT_FOUND
//     error is returned.
func (r *ProjectsLocationsCollectionsDataStoresService) Get(name string) *ProjectsLocationsCollectionsDataStoresGetCall {
	c := &ProjectsLocationsCollectionsDataStoresGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresGetCall {
	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 *ProjectsLocationsCollectionsDataStoresGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresGetCall {
	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 *ProjectsLocationsCollectionsDataStoresGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataStore.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 *ProjectsLocationsCollectionsDataStoresGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataStore, 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 := &GoogleCloudDiscoveryengineV1alphaDataStore{
		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", "discoveryengine.projects.locations.collections.dataStores.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetDocumentProcessingConfig: Gets a DocumentProcessingConfig.
//
//   - name: Full DocumentProcessingConfig resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/documentProcessingConfig`.
func (r *ProjectsLocationsCollectionsDataStoresService) GetDocumentProcessingConfig(name string) *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall {
	c := &ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall {
	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 *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall {
	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 *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.getDocumentProcessingConfig", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.getDocumentProcessingConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig.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 *ProjectsLocationsCollectionsDataStoresGetDocumentProcessingConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig{
		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", "discoveryengine.projects.locations.collections.dataStores.getDocumentProcessingConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetSiteSearchEngine: Gets the SiteSearchEngine.
//
//   - name: Resource name of SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. If the caller does not have permission
//     to access the [SiteSearchEngine], regardless of whether or not it exists,
//     a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCollectionsDataStoresService) GetSiteSearchEngine(name string) *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall {
	c := &ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall {
	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 *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall {
	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 *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSiteSearchEngine.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 *ProjectsLocationsCollectionsDataStoresGetSiteSearchEngineCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSiteSearchEngine, 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 := &GoogleCloudDiscoveryengineV1alphaSiteSearchEngine{
		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", "discoveryengine.projects.locations.collections.dataStores.getSiteSearchEngine", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all the DataStores associated with the project.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}`. If
//     the caller does not have permission to list DataStores under this
//     location, regardless of whether or not this data store exists, a
//     PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCollectionsDataStoresService) List(parent string) *ProjectsLocationsCollectionsDataStoresListCall {
	c := &ProjectsLocationsCollectionsDataStoresListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter by solution type . For
// example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'`
func (c *ProjectsLocationsCollectionsDataStoresListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// DataStores to return. If unspecified, defaults to 10. The maximum allowed
// value is 50. Values above 50 will be coerced to 50. If this field is
// negative, an INVALID_ARGUMENT is returned.
func (c *ProjectsLocationsCollectionsDataStoresListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListDataStoresResponse.next_page_token, received from a previous
// DataStoreService.ListDataStores call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// DataStoreService.ListDataStores must match the call that provided the page
// token. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsDataStoresListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresListCall {
	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 *ProjectsLocationsCollectionsDataStoresListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresListCall {
	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 *ProjectsLocationsCollectionsDataStoresListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresListCall {
	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 *ProjectsLocationsCollectionsDataStoresListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresListCall) 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, "v1alpha/{+parent}/dataStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListDataStoresResponse.ServerResponse.Heade
// r 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 *ProjectsLocationsCollectionsDataStoresListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListDataStoresResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListDataStoresResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.list", "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 *ProjectsLocationsCollectionsDataStoresListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListDataStoresResponse) 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 ProjectsLocationsCollectionsDataStoresPatchCall struct {
	s                                          *Service
	name                                       string
	googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Patch: Updates a DataStore
//
//   - name: Immutable. Identifier. The full resource name of the data store.
//     Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. This field must be a UTF-8 encoded string with a
//     length limit of 1024 characters.
func (r *ProjectsLocationsCollectionsDataStoresService) Patch(name string, googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore) *ProjectsLocationsCollectionsDataStoresPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadatastore = googleclouddiscoveryenginev1alphadatastore
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided DataStore to update. If an unsupported or unknown field is
// provided, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsDataStoresPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadatastore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataStore.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 *ProjectsLocationsCollectionsDataStoresPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataStore, 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 := &GoogleCloudDiscoveryengineV1alphaDataStore{
		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", "discoveryengine.projects.locations.collections.dataStores.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresTrainCustomModelCall struct {
	s                                                        *Service
	dataStore                                                string
	googleclouddiscoveryenginev1alphatraincustommodelrequest *GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// TrainCustomModel: Trains a custom model.
//
//   - dataStore: The resource name of the Data Store, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store`. This field is used to identify the data store where to
//     train the models.
func (r *ProjectsLocationsCollectionsDataStoresService) TrainCustomModel(dataStore string, googleclouddiscoveryenginev1alphatraincustommodelrequest *GoogleCloudDiscoveryengineV1alphaTrainCustomModelRequest) *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall {
	c := &ProjectsLocationsCollectionsDataStoresTrainCustomModelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.dataStore = dataStore
	c.googleclouddiscoveryenginev1alphatraincustommodelrequest = googleclouddiscoveryenginev1alphatraincustommodelrequest
	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 *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall {
	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 *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatraincustommodelrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+dataStore}:trainCustomModel")
	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{
		"dataStore": c.dataStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.trainCustomModel", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.trainCustomModel" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresTrainCustomModelCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.trainCustomModel", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall struct {
	s                                                         *Service
	name                                                      string
	googleclouddiscoveryenginev1alphadocumentprocessingconfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig
	urlParams_                                                gensupport.URLParams
	ctx_                                                      context.Context
	header_                                                   http.Header
}

// UpdateDocumentProcessingConfig: Updates the DocumentProcessingConfig.
// DocumentProcessingConfig is a singleon resource of DataStore. It's empty
// when DataStore is created. The first call to this method will set up
// DocumentProcessingConfig.
//
//   - name: The full resource name of the Document Processing Config. Format:
//     `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig
//     `.
func (r *ProjectsLocationsCollectionsDataStoresService) UpdateDocumentProcessingConfig(name string, googleclouddiscoveryenginev1alphadocumentprocessingconfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig) *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall {
	c := &ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadocumentprocessingconfig = googleclouddiscoveryenginev1alphadocumentprocessingconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided DocumentProcessingConfig to update. The following are the
// only supported fields: * DocumentProcessingConfig.ocr_config If not set, all
// supported fields are updated.
func (c *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall {
	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 *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocumentprocessingconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.updateDocumentProcessingConfig", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.updateDocumentProcessingConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig.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 *ProjectsLocationsCollectionsDataStoresUpdateDocumentProcessingConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig{
		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", "discoveryengine.projects.locations.collections.dataStores.updateDocumentProcessingConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// BatchGetDocumentsMetadata: Gets index freshness metadata for Documents.
// Supported for website search only.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsCollectionsDataStoresBranchesService) BatchGetDocumentsMetadata(parent string) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// MatcherFhirMatcherFhirResources sets the optional parameter
// "matcher.fhirMatcher.fhirResources": Required. The FHIR resources to match
// by. Format:
// projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_s
// tore}/fhir/{resource_type}/{fhir_resource_id}
func (c *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) MatcherFhirMatcherFhirResources(matcherFhirMatcherFhirResources ...string) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.urlParams_.SetMulti("matcher.fhirMatcher.fhirResources", append([]string{}, matcherFhirMatcherFhirResources...))
	return c
}

// MatcherUrisMatcherUris sets the optional parameter
// "matcher.urisMatcher.uris": The exact URIs to match by.
func (c *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) MatcherUrisMatcherUris(matcherUrisMatcherUris ...string) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.urlParams_.SetMulti("matcher.urisMatcher.uris", append([]string{}, matcherUrisMatcherUris...))
	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 *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) 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, "v1alpha/{+parent}/batchGetDocumentsMetadata")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.batchGetDocumentsMetadata", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.batchGetDocumentsMetadata" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse.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 *ProjectsLocationsCollectionsDataStoresBranchesBatchGetDocumentsMetadataCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse, 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 := &GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.batchGetDocumentsMetadata", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Retrieves a Branch.
//
//   - name: The name of the branch to retrieve. Format:
//     `projects/*/locations/global/dataStores/default_data_store/branches/some_br
//     anch_id`. "default_branch" can be used as a special branch_id, it returns
//     the default branch that has been set for the document.
func (r *ProjectsLocationsCollectionsDataStoresBranchesService) Get(name string) *ProjectsLocationsCollectionsDataStoresBranchesGetCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// View sets the optional parameter "view": The view to apply to the returned
// Branch. Defaults to Branch.BranchView.BASIC if unspecified.
//
// Possible values:
//
//	"BRANCH_VIEW_UNSPECIFIED" - The value when it's unspecified. This defaults
//
// to the BASIC view.
//
//	"BRANCH_VIEW_BASIC" - Includes basic metadata about the branch, but not
//
// statistical fields. See documentation of individual fields of Branch to know
// what is excluded.
//
//	"BRANCH_VIEW_FULL" - Includes all fields of a Branch.
func (c *ProjectsLocationsCollectionsDataStoresBranchesGetCall) View(view string) *ProjectsLocationsCollectionsDataStoresBranchesGetCall {
	c.urlParams_.Set("view", view)
	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 *ProjectsLocationsCollectionsDataStoresBranchesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaBranch.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 *ProjectsLocationsCollectionsDataStoresBranchesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaBranch, 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 := &GoogleCloudDiscoveryengineV1alphaBranch{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Branchs under the specified parent DataStore.
//
// - parent: The parent data store resource name.
func (r *ProjectsLocationsCollectionsDataStoresBranchesService) List(parent string) *ProjectsLocationsCollectionsDataStoresBranchesListCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// View sets the optional parameter "view": The view to apply to the returned
// Branch. Defaults to Branch.BranchView.BASIC if unspecified.
//
// Possible values:
//
//	"BRANCH_VIEW_UNSPECIFIED" - The value when it's unspecified. This defaults
//
// to the BASIC view.
//
//	"BRANCH_VIEW_BASIC" - Includes basic metadata about the branch, but not
//
// statistical fields. See documentation of individual fields of Branch to know
// what is excluded.
//
//	"BRANCH_VIEW_FULL" - Includes all fields of a Branch.
func (c *ProjectsLocationsCollectionsDataStoresBranchesListCall) View(view string) *ProjectsLocationsCollectionsDataStoresBranchesListCall {
	c.urlParams_.Set("view", view)
	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 *ProjectsLocationsCollectionsDataStoresBranchesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesListCall) 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, "v1alpha/{+parent}/branches")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListBranchesResponse.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 *ProjectsLocationsCollectionsDataStoresBranchesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListBranchesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListBranchesResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall struct {
	s                                         *Service
	parent                                    string
	googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Create: Creates a Document.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Create(parent string, googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphadocument = googleclouddiscoveryenginev1alphadocument
	return c
}

// DocumentId sets the optional parameter "documentId": Required. The ID to use
// for the Document, which becomes the final component of the Document.name. If
// the caller does not have permission to create the Document, regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned. This
// field must be unique among all Documents with the same parent. Otherwise, an
// `ALREADY_EXISTS` error is returned. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 128
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) DocumentId(documentId string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall {
	c.urlParams_.Set("documentId", documentId)
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocument)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to delete the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the Document to
//     delete does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Delete(name string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to access the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the requested
//     Document does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Get(name string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetProcessedDocument: Gets the parsed layout information for a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to access the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the requested
//     Document does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) GetProcessedDocument(name string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// ImageId sets the optional parameter "imageId": Specifies config for
// IMAGE_BYTES.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) ImageId(imageId string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("imageId", imageId)
	return c
}

// ProcessedDocumentFormat sets the optional parameter
// "processedDocumentFormat": What format output should be. If unspecified,
// defaults to JSON.
//
// Possible values:
//
//	"PROCESSED_DOCUMENT_FORMAT_UNSPECIFIED" - Default value.
//	"JSON" - Output format is a JSON string representation of processed
//
// document.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) ProcessedDocumentFormat(processedDocumentFormat string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("processedDocumentFormat", processedDocumentFormat)
	return c
}

// ProcessedDocumentType sets the optional parameter "processedDocumentType":
// Required. What type of processing to return.
//
// Possible values:
//
//	"PROCESSED_DOCUMENT_TYPE_UNSPECIFIED" - Default value.
//	"PARSED_DOCUMENT" - Available for all data store parsing configs.
//	"CHUNKED_DOCUMENT" - Only available if ChunkingConfig is enabled on the
//
// data store.
//
//	"IMAGE_CONVERTED_DOCUMENT" - Returns the converted Image bytes (as JPEG or
//
// PNG) if available.
//
//	"IMAGE_BYTES" - Return image bytes in base64 encoded format if image_id of
//
// a document is provided, only supported for enabling shareholder-structure in
// layout parsing config for now.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) ProcessedDocumentType(processedDocumentType string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("processedDocumentType", processedDocumentType)
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) 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, "v1alpha/{+name}:getProcessedDocument")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.getProcessedDocument", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.getProcessedDocument" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaProcessedDocument.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsGetProcessedDocumentCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaProcessedDocument, 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 := &GoogleCloudDiscoveryengineV1alphaProcessedDocument{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.getProcessedDocument", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall struct {
	s                                                       *Service
	parent                                                  string
	googleclouddiscoveryenginev1alphaimportdocumentsrequest *GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Import: Bulk import of multiple Documents. Request processing may be
// synchronous. Non-existing items are created. Note: It is possible for a
// subset of the Documents to be successfully updated.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`. Requires create/update permission.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Import(parent string, googleclouddiscoveryenginev1alphaimportdocumentsrequest *GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportdocumentsrequest = googleclouddiscoveryenginev1alphaimportdocumentsrequest
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportdocumentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Documents.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`. Use `default_branch` as the branch ID,
//     to list documents under the default branch. If the caller does not have
//     permission to list Documents under this branch, regardless of whether or
//     not this branch exists, a `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) List(parent string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of Documents
// to return. If unspecified, defaults to 100. The maximum allowed value is
// 1000. Values above 1000 are set to 1000. If this field is negative, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListDocumentsResponse.next_page_token, received from a previous
// DocumentService.ListDocuments call. Provide this to retrieve the subsequent
// page. When paginating, all other parameters provided to
// DocumentService.ListDocuments must match the call that provided the page
// token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) 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, "v1alpha/{+parent}/documents")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListDocumentsResponse.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListDocumentsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListDocumentsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.list", "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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListDocumentsResponse) 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 ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall struct {
	s                                         *Service
	name                                      string
	googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Patch: Updates a Document.
//
//   - name: Immutable. The full resource name of the document. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document_id}`. This field must
//     be a UTF-8 encoded string with a length limit of 1024 characters.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Patch(name string, googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadocument = googleclouddiscoveryenginev1alphadocument
	return c
}

// AllowMissing sets the optional parameter "allowMissing": If set to `true`
// and the Document is not found, a new Document is be created.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided imported 'document' to update. If not set, by default
// updates all fields.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocument)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall struct {
	s                                                      *Service
	parent                                                 string
	googleclouddiscoveryenginev1alphapurgedocumentsrequest *GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// Purge: Permanently deletes all selected Documents in a branch. This process
// is asynchronous. Depending on the number of Documents to be deleted, this
// operation can take hours to complete. Before the delete operation completes,
// some Documents might still be returned by DocumentService.GetDocument or
// DocumentService.ListDocuments. To get a list of the Documents to be deleted,
// set PurgeDocumentsRequest.force to false.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgedocumentsrequest *GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgedocumentsrequest = googleclouddiscoveryenginev1alphapurgedocumentsrequest
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgedocumentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Document.
//
//   - name: Full resource name of Chunk, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}`. If
//     the caller does not have permission to access the Chunk, regardless of
//     whether or not it exists, a `PERMISSION_DENIED` error is returned. If the
//     requested Chunk does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService) Get(name string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaChunk.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaChunk, 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 := &GoogleCloudDiscoveryengineV1alphaChunk{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Chunks.
//
//   - parent: The parent document resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to list Chunks under this document, regardless of
//     whether or not this document exists, a `PERMISSION_DENIED` error is
//     returned.
func (r *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksService) List(parent string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of Chunks to
// return. If unspecified, defaults to 100. The maximum allowed value is 1000.
// Values above 1000 will be coerced to 1000. If this field is negative, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListChunksResponse.next_page_token, received from a previous
// ChunkService.ListChunks call. Provide this to retrieve the subsequent page.
// When paginating, all other parameters provided to ChunkService.ListChunks
// must match the call that provided the page token. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) 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, "v1alpha/{+parent}/chunks")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListChunksResponse.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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListChunksResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListChunksResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.documents.chunks.list", "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 *ProjectsLocationsCollectionsDataStoresBranchesDocumentsChunksListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListChunksResponse) 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 ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall struct {
	s                                       *Service
	name                                    string
	googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Cancel: Starts asynchronous cancellation on a long-running operation. The
// server makes a best effort to cancel the operation, but success is not
// guaranteed. If the server doesn't support this method, it returns
// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
// other methods to check whether the cancellation succeeded or whether the
// operation completed despite cancellation. On successful cancellation, the
// operation is not deleted; instead, it becomes an operation with an
// Operation.error value with a google.rpc.Status.code of `1`, corresponding to
// `Code.CANCELLED`.
//
// - name: The name of the operation resource to be cancelled.
func (r *ProjectsLocationsCollectionsDataStoresBranchesOperationsService) Cancel(name string, googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest) *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlelongrunningcanceloperationrequest = googlelongrunningcanceloperationrequest
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlelongrunningcanceloperationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:cancel")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.operations.cancel", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.operations.cancel" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.operations.cancel", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresBranchesOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresBranchesOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.branches.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.branches.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.branches.operations.list", "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 *ProjectsLocationsCollectionsDataStoresBranchesOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall struct {
	s                                                             *Service
	completionConfig                                              string
	googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// CompleteQuery: Completes the user input with advanced keyword suggestions.
//
//   - completionConfig: The completion_config of the parent dataStore or engine
//     resource name for which the completion is performed, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/*/co
//     mpletionConfig`
//     `projects/*/locations/global/collections/default_collection/engines/*/compl
//     etionConfig`.
func (r *ProjectsLocationsCollectionsDataStoresCompletionConfigService) CompleteQuery(completionConfig string, googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest) *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall {
	c := &ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.completionConfig = completionConfig
	c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest = googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest
	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 *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall {
	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 *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+completionConfig}:completeQuery")
	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{
		"completionConfig": c.completionConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.completionConfig.completeQuery", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.completionConfig.completeQuery" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse.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 *ProjectsLocationsCollectionsDataStoresCompletionConfigCompleteQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.completionConfig.completeQuery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall struct {
	s                                                                   *Service
	parent                                                              string
	googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Import: Imports CompletionSuggestions for a DataStore.
//
//   - parent: The parent data store resource name for which to import customer
//     autocomplete suggestions. Follows pattern
//     `projects/*/locations/*/collections/*/dataStores/*`.
func (r *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService) Import(parent string, googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall {
	c := &ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest = googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest
	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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall {
	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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/completionSuggestions:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall struct {
	s                                                                  *Service
	parent                                                             string
	googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Purge: Permanently deletes all CompletionSuggestions for a DataStore.
//
//   - parent: The parent data store resource name for which to purge completion
//     suggestions. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall {
	c := &ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest = googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest
	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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall {
	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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/completionSuggestions:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresCompletionSuggestionsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.completionSuggestions.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresControlsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Control. By default 1000 controls are allowed for a data
// store. A request can be submitted to adjust this limit. If the Control to
// create already exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsDataStoresControlsService) Create(parent string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsCollectionsDataStoresControlsCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresControlsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// ControlId sets the optional parameter "controlId": Required. The ID to use
// for the Control, which will become the final component of the Control's
// resource name. This value must be within 1-63 characters. Valid characters
// are /a-z-_/.
func (c *ProjectsLocationsCollectionsDataStoresControlsCreateCall) ControlId(controlId string) *ProjectsLocationsCollectionsDataStoresControlsCreateCall {
	c.urlParams_.Set("controlId", controlId)
	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 *ProjectsLocationsCollectionsDataStoresControlsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresControlsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresControlsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresControlsCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresControlsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.controls.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.controls.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsDataStoresControlsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.dataStores.controls.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresControlsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Control. If the Control to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Control to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsCollectionsDataStoresControlsService) Delete(name string) *ProjectsLocationsCollectionsDataStoresControlsDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresControlsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresControlsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresControlsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresControlsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresControlsDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresControlsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.controls.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.controls.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsDataStoresControlsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.dataStores.controls.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresControlsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Control.
//
//   - name: The resource name of the Control to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsCollectionsDataStoresControlsService) Get(name string) *ProjectsLocationsCollectionsDataStoresControlsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresControlsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresControlsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresControlsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresControlsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresControlsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresControlsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresControlsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.controls.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.controls.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsDataStoresControlsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.dataStores.controls.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresControlsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Controls by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsDataStoresControlsService) List(parent string) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	c := &ProjectsLocationsCollectionsDataStoresControlsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. Supported features: * List all the products under the parent branch
// if filter is unset. Currently this field is unsupported.
func (c *ProjectsLocationsCollectionsDataStoresControlsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsDataStoresControlsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListControls` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsCollectionsDataStoresControlsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresControlsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresControlsListCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresControlsListCall) 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, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.controls.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.controls.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListControlsResponse.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 *ProjectsLocationsCollectionsDataStoresControlsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListControlsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListControlsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.controls.list", "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 *ProjectsLocationsCollectionsDataStoresControlsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListControlsResponse) 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 ProjectsLocationsCollectionsDataStoresControlsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Control. Control action type cannot be changed. If the
// Control to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/*/locations/global/dataStore/*/controls/*`.
func (r *ProjectsLocationsCollectionsDataStoresControlsService) Patch(name string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsCollectionsDataStoresControlsPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresControlsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Control to update. The following are NOT supported: *
// Control.name * Control.solution_type If not set or empty, all supported
// fields are updated.
func (c *ProjectsLocationsCollectionsDataStoresControlsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresControlsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresControlsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresControlsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresControlsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresControlsPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresControlsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresControlsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.controls.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.controls.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsDataStoresControlsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.dataStores.controls.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresConversationsConverseCall struct {
	s                                                            *Service
	name                                                         string
	googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Converse: Converses a conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`. Use
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/-` to activate auto session mode, which
//     automatically creates a new conversation inside a ConverseConversation
//     session.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) Converse(name string, googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest) *ProjectsLocationsCollectionsDataStoresConversationsConverseCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsConverseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconverseconversationrequest = googleclouddiscoveryenginev1alphaconverseconversationrequest
	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 *ProjectsLocationsCollectionsDataStoresConversationsConverseCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsConverseCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsConverseCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsConverseCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsConverseCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsConverseCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconverseconversationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:converse")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.converse", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.converse" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConverseConversationResponse.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 *ProjectsLocationsCollectionsDataStoresConversationsConverseCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConverseConversationResponse, 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 := &GoogleCloudDiscoveryengineV1alphaConverseConversationResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.converse", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresConversationsCreateCall struct {
	s                                             *Service
	parent                                        string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Create: Creates a Conversation. If the Conversation to create already
// exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) Create(parent string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsCollectionsDataStoresConversationsCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	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 *ProjectsLocationsCollectionsDataStoresConversationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsDataStoresConversationsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresConversationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Conversation. If the Conversation to delete does not
// exist, a NOT_FOUND error is returned.
//
//   - name: The resource name of the Conversation to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) Delete(name string) *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsDataStoresConversationsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresConversationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresConversationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresConversationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresConversationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsDataStoresConversationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresConversationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Conversations by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) List(parent string) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. The supported features are: user_pseudo_id, state. Example:
// "user_pseudo_id = some_id"
func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `conversation_name` Example: "update_time desc" "create_time"
func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) OrderBy(orderBy string) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListConversations` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsListCall) 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, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListConversationsResponse.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 *ProjectsLocationsCollectionsDataStoresConversationsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListConversationsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListConversationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.list", "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 *ProjectsLocationsCollectionsDataStoresConversationsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListConversationsResponse) 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 ProjectsLocationsCollectionsDataStoresConversationsPatchCall struct {
	s                                             *Service
	name                                          string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Patch: Updates a Conversation. Conversation action type cannot be changed.
// If the Conversation to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/dataStore/*/c
//     onversations/*` or
//     `projects/{project}/locations/global/collections/{collection}/engines/*/con
//     versations/*`.
func (r *ProjectsLocationsCollectionsDataStoresConversationsService) Patch(name string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsCollectionsDataStoresConversationsPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresConversationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Conversation to update. The following are NOT supported: *
// Conversation.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresConversationsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresConversationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresConversationsPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.conversations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.conversations.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsDataStoresConversationsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.dataStores.conversations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresCustomModelsListCall struct {
	s            *Service
	dataStore    string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of all the custom models.
//
//   - dataStore: The resource name of the parent Data Store, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store`. This field is used to identify the data store where to
//     fetch the models from.
func (r *ProjectsLocationsCollectionsDataStoresCustomModelsService) List(dataStore string) *ProjectsLocationsCollectionsDataStoresCustomModelsListCall {
	c := &ProjectsLocationsCollectionsDataStoresCustomModelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.dataStore = dataStore
	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 *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresCustomModelsListCall {
	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 *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresCustomModelsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresCustomModelsListCall {
	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 *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) 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, "v1alpha/{+dataStore}/customModels")
	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{
		"dataStore": c.dataStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.customModels.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.customModels.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListCustomModelsResponse.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 *ProjectsLocationsCollectionsDataStoresCustomModelsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListCustomModelsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListCustomModelsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.customModels.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresModelsOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.models.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.models.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresModelsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.models.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresModelsOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresModelsOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresModelsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.models.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.models.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.models.operations.list", "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 *ProjectsLocationsCollectionsDataStoresModelsOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.operations.list", "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 *ProjectsLocationsCollectionsDataStoresOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresSchemasCreateCall struct {
	s                                       *Service
	parent                                  string
	googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Create: Creates a Schema.
//
//   - parent: The parent data store resource name, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsCollectionsDataStoresSchemasService) Create(parent string, googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema) *ProjectsLocationsCollectionsDataStoresSchemasCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaschema = googleclouddiscoveryenginev1alphaschema
	return c
}

// SchemaId sets the optional parameter "schemaId": Required. The ID to use for
// the Schema, which becomes the final component of the Schema.name. This field
// should conform to RFC-1034 (https://tools.ietf.org/html/rfc1034) standard
// with a length limit of 63 characters.
func (c *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) SchemaId(schemaId string) *ProjectsLocationsCollectionsDataStoresSchemasCreateCall {
	c.urlParams_.Set("schemaId", schemaId)
	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 *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaschema)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/schemas")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSchemasCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSchemasDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Schema.
//
//   - name: The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`.
func (r *ProjectsLocationsCollectionsDataStoresSchemasService) Delete(name string) *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSchemasDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSchemasGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Schema.
//
//   - name: The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`.
func (r *ProjectsLocationsCollectionsDataStoresSchemasService) Get(name string) *ProjectsLocationsCollectionsDataStoresSchemasGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSchemasGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSchemasGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSchema.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 *ProjectsLocationsCollectionsDataStoresSchemasGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSchema, 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 := &GoogleCloudDiscoveryengineV1alphaSchema{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSchemasListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Schemas.
//
//   - parent: The parent data store resource name, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsCollectionsDataStoresSchemasService) List(parent string) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// Schemas to return. The service may return fewer than this value. If
// unspecified, at most 100 Schemas are returned. The maximum value is 1000;
// values above 1000 are set to 1000.
func (c *ProjectsLocationsCollectionsDataStoresSchemasListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous SchemaService.ListSchemas call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// SchemaService.ListSchemas must match the call that provided the page token.
func (c *ProjectsLocationsCollectionsDataStoresSchemasListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasListCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasListCall) 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, "v1alpha/{+parent}/schemas")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSchemasResponse.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 *ProjectsLocationsCollectionsDataStoresSchemasListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSchemasResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSchemasResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.list", "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 *ProjectsLocationsCollectionsDataStoresSchemasListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSchemasResponse) 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 ProjectsLocationsCollectionsDataStoresSchemasPatchCall struct {
	s                                       *Service
	name                                    string
	googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Patch: Updates a Schema.
//
//   - name: Immutable. The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`. This field must be a UTF-8 encoded
//     string with a length limit of 1024 characters.
func (r *ProjectsLocationsCollectionsDataStoresSchemasService) Patch(name string, googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema) *ProjectsLocationsCollectionsDataStoresSchemasPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaschema = googleclouddiscoveryenginev1alphaschema
	return c
}

// AllowMissing sets the optional parameter "allowMissing": If set to true, and
// the Schema is not found, a new Schema is created. In this situation,
// `update_mask` is ignored.
func (c *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsCollectionsDataStoresSchemasPatchCall {
	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
	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 *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaschema)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSchemasPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresSchemasOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresSchemasOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.schemas.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.schemas.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.schemas.operations.list", "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 *ProjectsLocationsCollectionsDataStoresSchemasOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// Answer: Answer query method.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) Answer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:answer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.answer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.answer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.answer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresServingConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a ServingConfig. Returns a NotFound error if the ServingConfig
// does not exist.
//
//   - name: The resource name of the ServingConfig to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) Get(name string) *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsCollectionsDataStoresServingConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresServingConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all ServingConfigs linked to this dataStore.
//
//   - parent: Full resource name of the parent resource. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}`.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) List(parent string) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 100. If a value greater than 100 is
// provided, at most 100 results are returned.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListServingConfigs` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) 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, "v1alpha/{+parent}/servingConfigs")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.list", "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 *ProjectsLocationsCollectionsDataStoresServingConfigsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse) 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 ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall struct {
	s                                              *Service
	name                                           string
	googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Patch: Updates a ServingConfig. Returns a NOT_FOUND error if the
// ServingConfig does not exist.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) Patch(name string, googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig) *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaservingconfig = googleclouddiscoveryenginev1alphaservingconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided ServingConfig to update. The following are NOT supported: *
// ServingConfig.name If not set, all supported fields are updated.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaservingconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsCollectionsDataStoresServingConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall struct {
	s                                                 *Service
	servingConfig                                     string
	googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Recommend: Makes a recommendation, which requires a contextual user event.
//
//   - servingConfig: Full resource name of a ServingConfig:
//     `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or
//     `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*`
//     One default serving config is created along with your recommendation
//     engine creation. The engine ID is used as the ID of the default serving
//     config. For example, for Engine
//     `projects/*/locations/global/collections/*/engines/my-engine`, you can use
//     `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs
//     /my-engine` for your RecommendationService.Recommend requests.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) Recommend(servingConfig string, googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest) *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alpharecommendrequest = googleclouddiscoveryenginev1alpharecommendrequest
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharecommendrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:recommend")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaRecommendResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsRecommendCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaRecommendResponse, 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 := &GoogleCloudDiscoveryengineV1alphaRecommendResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.recommend", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Search: Performs a search.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) Search(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}: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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// SearchLite: Performs a search. Similar to the SearchService.Search method,
// but a lite version that allows API key for authentication, where OAuth and
// IAM checks are not required. Only public website search is supported by this
// method. If data stores and engines not associated with public website search
// are specified, a `FAILED_PRECONDITION` error is returned. This method can be
// used for easy onboarding without having to implement an authentication
// backend. However, it is strongly recommended to use SearchService.Search
// instead with required OAuth and IAM checks to provide better data security.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) SearchLite(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:searchLite")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.searchLite", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.searchLite" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.searchLite", "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 *ProjectsLocationsCollectionsDataStoresServingConfigsSearchLiteCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// StreamAnswer: Answer query method (streaming). It takes one
// AnswerQueryRequest and returns multiple AnswerQueryResponse messages in a
// stream.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsCollectionsDataStoresServingConfigsService) StreamAnswer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall {
	c := &ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall {
	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 *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:streamAnswer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.streamAnswer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.servingConfigs.streamAnswer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsCollectionsDataStoresServingConfigsStreamAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.servingConfigs.streamAnswer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSessionsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Session. If the Session to create already exists, an
// ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsService) Create(parent string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsCollectionsDataStoresSessionsCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	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 *ProjectsLocationsCollectionsDataStoresSessionsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsDataStoresSessionsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSessionsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Session. If the Session to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Session to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsService) Delete(name string) *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsDataStoresSessionsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSessionsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Session.
//
//   - name: The resource name of the Session to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsService) Get(name string) *ProjectsLocationsCollectionsDataStoresSessionsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// IncludeAnswerDetails sets the optional parameter "includeAnswerDetails": If
// set to true, the full session including all answer details will be returned.
func (c *ProjectsLocationsCollectionsDataStoresSessionsGetCall) IncludeAnswerDetails(includeAnswerDetails bool) *ProjectsLocationsCollectionsDataStoresSessionsGetCall {
	c.urlParams_.Set("includeAnswerDetails", fmt.Sprint(includeAnswerDetails))
	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 *ProjectsLocationsCollectionsDataStoresSessionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSessionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsDataStoresSessionsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSessionsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Sessions by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsService) List(parent string) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A comma-separated list of
// fields to filter by, in EBNF grammar. The supported fields are: *
// `user_pseudo_id` * `state` * `display_name` * `starred` * `is_pinned` *
// `labels` * `create_time` * `update_time` Examples: * `user_pseudo_id =
// some_id` * `display_name = "some_name" * `starred = true` * `is_pinned=true
// AND (NOT labels:hidden)` * `create_time > "1970-01-01T12:00:00Z"
func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `session_name` * `is_pinned` Example: * `update_time desc` * `create_time` *
// `is_pinned desc,update_time desc`: list sessions by is_pinned first, then by
// update_time.
func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) OrderBy(orderBy string) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListSessions` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsListCall) 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, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSessionsResponse.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 *ProjectsLocationsCollectionsDataStoresSessionsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSessionsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSessionsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.list", "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 *ProjectsLocationsCollectionsDataStoresSessionsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSessionsResponse) 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 ProjectsLocationsCollectionsDataStoresSessionsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Session. Session action type cannot be changed. If the
// Session to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/engines/{engi
//     ne}/sessions/*`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsService) Patch(name string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsCollectionsDataStoresSessionsPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Session to update. The following are NOT supported: *
// Session.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsDataStoresSessionsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsDataStoresSessionsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Answer.
//
//   - name: The resource name of the Answer to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine_id}/sessions/{session_id}/answers/{answer_id}`.
func (r *ProjectsLocationsCollectionsDataStoresSessionsAnswersService) Get(name string) *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.sessions.answers.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.sessions.answers.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswer.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 *ProjectsLocationsCollectionsDataStoresSessionsAnswersGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswer, 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 := &GoogleCloudDiscoveryengineV1alphaAnswer{
		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", "discoveryengine.projects.locations.collections.dataStores.sessions.answers.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall struct {
	s                                                              *Service
	parent                                                         string
	googleclouddiscoveryenginev1alphabatchverifytargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchVerifyTargetSitesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// BatchVerifyTargetSites: Verify target sites' ownership and validity. This
// API sends all the target sites under site search engine for verification.
//
//   - parent: The parent resource shared by all TargetSites being verified.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) BatchVerifyTargetSites(parent string, googleclouddiscoveryenginev1alphabatchverifytargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchVerifyTargetSitesRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphabatchverifytargetsitesrequest = googleclouddiscoveryenginev1alphabatchverifytargetsitesrequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphabatchverifytargetsitesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}:batchVerifyTargetSites")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineBatchVerifyTargetSitesCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.batchVerifyTargetSites", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall struct {
	s                                                                 *Service
	siteSearchEngine                                                  string
	googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// DisableAdvancedSiteSearch: Downgrade from advanced site search to basic site
// search.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/dataStores/{data_store_id}/siteSea
//     rchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) DisableAdvancedSiteSearch(siteSearchEngine string, googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest = googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:disableAdvancedSiteSearch")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.disableAdvancedSiteSearch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall struct {
	s                                                                *Service
	siteSearchEngine                                                 string
	googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// EnableAdvancedSiteSearch: Upgrade from basic site search to advanced site
// search.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/dataStores/{data_store_id}/siteSea
//     rchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) EnableAdvancedSiteSearch(siteSearchEngine string, googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest = googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:enableAdvancedSiteSearch")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.enableAdvancedSiteSearch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall struct {
	s                *Service
	siteSearchEngine string
	urlParams_       gensupport.URLParams
	ifNoneMatch_     string
	ctx_             context.Context
	header_          http.Header
}

// FetchDomainVerificationStatus: Returns list of target sites with its domain
// verification status. This method can only be called under data store with
// BASIC_SITE_SEARCH state at the moment.
//
//   - siteSearchEngine: The site search engine resource under which we fetch all
//     the domain verification status.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) FetchDomainVerificationStatus(siteSearchEngine string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. If unspecified, server will pick an
// appropriate default. The maximum value is 1000; values above 1000 will be
// coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is
// returned.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `FetchDomainVerificationStatus` call. Provide this to
// retrieve the subsequent page. When paginating, all other parameters provided
// to `FetchDomainVerificationStatus` must match the call that provided the
// page token.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) 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, "v1alpha/{+siteSearchEngine}:fetchDomainVerificationStatus")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse, 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 := &GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.fetchDomainVerificationStatus", "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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineFetchDomainVerificationStatusCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaFetchDomainVerificationStatusResponse) 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 ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall struct {
	s                *Service
	siteSearchEngine string
	urlParams_       gensupport.URLParams
	ifNoneMatch_     string
	ctx_             context.Context
	header_          http.Header
}

// GetUriPatternDocumentData: Gets the URI Pattern to Document data mapping for
// an Advanced Site Search DataStore.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) GetUriPatternDocumentData(siteSearchEngine string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) 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, "v1alpha/{+siteSearchEngine}:getUriPatternDocumentData")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.getUriPatternDocumentData", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.getUriPatternDocumentData" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaGetUriPatternDocumentDataResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineGetUriPatternDocumentDataCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaGetUriPatternDocumentDataResponse, 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 := &GoogleCloudDiscoveryengineV1alphaGetUriPatternDocumentDataResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.getUriPatternDocumentData", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall struct {
	s                                                   *Service
	siteSearchEngine                                    string
	googleclouddiscoveryenginev1alpharecrawlurisrequest *GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// RecrawlUris: Request on-demand recrawl for a list of URIs.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) RecrawlUris(siteSearchEngine string, googleclouddiscoveryenginev1alpharecrawlurisrequest *GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alpharecrawlurisrequest = googleclouddiscoveryenginev1alpharecrawlurisrequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharecrawlurisrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:recrawlUris")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineRecrawlUrisCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.recrawlUris", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall struct {
	s                                                                 *Service
	siteSearchEngine                                                  string
	googleclouddiscoveryenginev1alphaseturipatterndocumentdatarequest *GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// SetUriPatternDocumentData: Sets the URI Pattern to Document data mapping for
// an Advanced Site Search DataStore.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineService) SetUriPatternDocumentData(siteSearchEngine string, googleclouddiscoveryenginev1alphaseturipatterndocumentdatarequest *GoogleCloudDiscoveryengineV1alphaSetUriPatternDocumentDataRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alphaseturipatterndocumentdatarequest = googleclouddiscoveryenginev1alphaseturipatterndocumentdatarequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaseturipatterndocumentdatarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:setUriPatternDocumentData")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.setUriPatternDocumentData", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.setUriPatternDocumentData" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSetUriPatternDocumentDataCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.setUriPatternDocumentData", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.operations.list", "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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphasitemap *GoogleCloudDiscoveryengineV1alphaSitemap
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Sitemap.
//
//   - parent: Parent resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService) Create(parent string, googleclouddiscoveryenginev1alphasitemap *GoogleCloudDiscoveryengineV1alphaSitemap) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasitemap = googleclouddiscoveryenginev1alphasitemap
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasitemap)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sitemaps")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Sitemap.
//
//   - name: Full resource name of Sitemap, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/sitemaps/{sitemap}`. If the caller does
//     not have permission to access the Sitemap, regardless of whether or not it
//     exists, a PERMISSION_DENIED error is returned. If the requested Sitemap
//     does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService) Delete(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Fetch: Fetch Sitemaps in a DataStore.
//
//   - parent: Parent resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsService) Fetch(parent string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// MatcherUrisMatcherUris sets the optional parameter
// "matcher.urisMatcher.uris": The Sitemap uris.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) MatcherUrisMatcherUris(matcherUrisMatcherUris ...string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall {
	c.urlParams_.SetMulti("matcher.urisMatcher.uris", append([]string{}, matcherUrisMatcherUris...))
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) 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, "v1alpha/{+parent}/sitemaps:fetch")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.fetch", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.fetch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineSitemapsFetchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.sitemaps.fetch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall struct {
	s                                                              *Service
	parent                                                         string
	googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// BatchCreate: Creates TargetSite in a batch.
//
//   - parent: The parent resource shared by all TargetSites being created.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. The parent field in the
//     CreateBookRequest messages must either be empty or match this field.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) BatchCreate(parent string, googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest = googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/targetSites:batchCreate")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.batchCreate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall struct {
	s                                           *Service
	parent                                      string
	googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Create: Creates a TargetSite.
//
//   - parent: Parent resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) Create(parent string, googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphatargetsite = googleclouddiscoveryenginev1alphatargetsite
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatargetsite)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/targetSites")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a TargetSite.
//
//   - name: Full resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}`. If the caller
//     does not have permission to access the TargetSite, regardless of whether
//     or not it exists, a PERMISSION_DENIED error is returned. If the requested
//     TargetSite does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) Delete(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a TargetSite.
//
//   - name: Full resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}`. If the caller
//     does not have permission to access the TargetSite, regardless of whether
//     or not it exists, a PERMISSION_DENIED error is returned. If the requested
//     TargetSite does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) Get(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaTargetSite.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaTargetSite, 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 := &GoogleCloudDiscoveryengineV1alphaTargetSite{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of TargetSites.
//
//   - parent: The parent site search engine resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. If the caller does not have permission
//     to list TargetSites under this site search engine, regardless of whether
//     or not this branch exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) List(parent string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. If unspecified, server will pick an
// appropriate default. The maximum value is 1000; values above 1000 will be
// coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is
// returned.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListTargetSites` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListTargetSites` must match the call that provided the page token.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) 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, "v1alpha/{+parent}/targetSites")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.list", "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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse) 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 ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall struct {
	s                                           *Service
	name                                        string
	googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Patch: Updates a TargetSite.
//
//   - name: Output only. The fully qualified resource name of the target site.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}` The
//     `target_site_id` is system-generated.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesService) Patch(name string, googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphatargetsite = googleclouddiscoveryenginev1alphatargetsite
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatargetsite)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService) Get(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsService) List(name string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c := &ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall {
	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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.dataStores.siteSearchEngine.targetSites.operations.list", "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 *ProjectsLocationsCollectionsDataStoresSiteSearchEngineTargetSitesOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall struct {
	s                                                                       *Service
	parent                                                                  string
	googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest
	urlParams_                                                              gensupport.URLParams
	ctx_                                                                    context.Context
	header_                                                                 http.Header
}

// Import: Imports all SuggestionDenyListEntry for a DataStore.
//
//   - parent: The parent data store resource name for which to import denylist
//     entries. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService) Import(parent string, googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall {
	c := &ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest = googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest
	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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall {
	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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/suggestionDenyListEntries:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall struct {
	s                                                                      *Service
	parent                                                                 string
	googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest
	urlParams_                                                             gensupport.URLParams
	ctx_                                                                   context.Context
	header_                                                                http.Header
}

// Purge: Permanently deletes all SuggestionDenyListEntry for a DataStore.
//
//   - parent: The parent data store resource name for which to import denylist
//     entries. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesService) Purge(parent string, googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall {
	c := &ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest = googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest
	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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall {
	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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/suggestionDenyListEntries:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresSuggestionDenyListEntriesPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.suggestionDenyListEntries.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresUserEventsCollectCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Collect: Writes a single user event from the browser. This uses a GET
// request to due to browser restriction of POST-ing to a third-party domain.
// This method is used only by the Discovery Engine API JavaScript pixel and
// Google Tag Manager. Users should not call this method directly.
//
//   - parent: The parent resource name. If the collect user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the collect user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsCollectionsDataStoresUserEventsService) Collect(parent string) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	c := &ProjectsLocationsCollectionsDataStoresUserEventsCollectCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Ets sets the optional parameter "ets": The event timestamp in milliseconds.
// This prevents browser caching of otherwise identical get requests. The name
// is abbreviated to reduce the payload bytes.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Ets(ets int64) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("ets", fmt.Sprint(ets))
	return c
}

// Uri sets the optional parameter "uri": The URL including cgi-parameters but
// excluding the hash fragment with a length limit of 5,000 characters. This is
// often more useful than the referer URL, because many browsers only send the
// domain for third-party requests.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Uri(uri string) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("uri", uri)
	return c
}

// UserEvent sets the optional parameter "userEvent": Required. URL encoded
// UserEvent proto with a length limit of 2,000,000 characters.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) UserEvent(userEvent string) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("userEvent", userEvent)
	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 *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	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 *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall {
	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 *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) 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, "v1alpha/{+parent}/userEvents:collect")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.userEvents.collect", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.userEvents.collect" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleApiHttpBody.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 *ProjectsLocationsCollectionsDataStoresUserEventsCollectCall) Do(opts ...googleapi.CallOption) (*GoogleApiHttpBody, 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 := &GoogleApiHttpBody{
		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", "discoveryengine.projects.locations.collections.dataStores.userEvents.collect", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresUserEventsImportCall struct {
	s                                                        *Service
	parent                                                   string
	googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Import: Bulk import of user events. Request processing might be synchronous.
// Events that already exist are skipped. Use this method for backfilling
// historical user events. Operation.response is of type ImportResponse. Note
// that it is possible for a subset of the items to be successfully inserted.
// Operation.metadata is of type ImportMetadata.
//
//   - parent: Parent DataStore resource name, of the form
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsCollectionsDataStoresUserEventsService) Import(parent string, googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest) *ProjectsLocationsCollectionsDataStoresUserEventsImportCall {
	c := &ProjectsLocationsCollectionsDataStoresUserEventsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportusereventsrequest = googleclouddiscoveryenginev1alphaimportusereventsrequest
	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 *ProjectsLocationsCollectionsDataStoresUserEventsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresUserEventsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsImportCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresUserEventsImportCall {
	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 *ProjectsLocationsCollectionsDataStoresUserEventsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresUserEventsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportusereventsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.userEvents.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.userEvents.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresUserEventsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.userEvents.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall struct {
	s                                                       *Service
	parent                                                  string
	googleclouddiscoveryenginev1alphapurgeusereventsrequest *GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Purge: Deletes permanently all user events specified by the filter provided.
// Depending on the number of events specified by the filter, this operation
// could take hours or days to complete. To test a filter, use the list command
// first.
//
//   - parent: The resource name of the catalog under which the events are
//     created. The format is
//     `projects/{project}/locations/global/collections/{collection}/dataStores/{d
//     ataStore}`.
func (r *ProjectsLocationsCollectionsDataStoresUserEventsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgeusereventsrequest *GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest) *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall {
	c := &ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgeusereventsrequest = googleclouddiscoveryenginev1alphapurgeusereventsrequest
	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 *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall {
	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 *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgeusereventsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.userEvents.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.userEvents.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsDataStoresUserEventsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.dataStores.userEvents.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresUserEventsWriteCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Write: Writes a single user event.
//
//   - parent: The parent resource name. If the write user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the write user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsCollectionsDataStoresUserEventsService) Write(parent string, googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent) *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall {
	c := &ProjectsLocationsCollectionsDataStoresUserEventsWriteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphauserevent = googleclouddiscoveryenginev1alphauserevent
	return c
}

// WriteAsync sets the optional parameter "writeAsync": If set to true, the
// user event is written asynchronously after validation, and the API responds
// without waiting for the write.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) WriteAsync(writeAsync bool) *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall {
	c.urlParams_.Set("writeAsync", fmt.Sprint(writeAsync))
	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 *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall {
	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 *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphauserevent)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:write")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.userEvents.write", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.userEvents.write" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserEvent.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 *ProjectsLocationsCollectionsDataStoresUserEventsWriteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserEvent, 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 := &GoogleCloudDiscoveryengineV1alphaUserEvent{
		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", "discoveryengine.projects.locations.collections.dataStores.userEvents.write", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a WidgetConfig.
//
//   - name: Full WidgetConfig resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/widgetConfigs/{widget_config_id}`.
func (r *ProjectsLocationsCollectionsDataStoresWidgetConfigsService) Get(name string) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	c := &ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// AcceptCache sets the optional parameter "acceptCache": Whether it's
// acceptable to load the widget config from cache. If set to true, recent
// changes on widget configs may take a few minutes to reflect on the end
// user's view. It's recommended to set to true for maturely developed widgets,
// as it improves widget performance. Set to false to see changes reflected in
// prod right away, if your widget is under development.
func (c *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) AcceptCache(acceptCache bool) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	c.urlParams_.Set("acceptCache", fmt.Sprint(acceptCache))
	return c
}

// GetWidgetConfigRequestOptionTurnOffCollectionComponents sets the optional
// parameter "getWidgetConfigRequestOption.turnOffCollectionComponents":
// Whether to turn off collection_components in WidgetConfig to reduce latency
// and data transmission.
func (c *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) GetWidgetConfigRequestOptionTurnOffCollectionComponents(getWidgetConfigRequestOptionTurnOffCollectionComponents bool) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	c.urlParams_.Set("getWidgetConfigRequestOption.turnOffCollectionComponents", fmt.Sprint(getWidgetConfigRequestOptionTurnOffCollectionComponents))
	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 *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall {
	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 *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.dataStores.widgetConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.dataStores.widgetConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaWidgetConfig.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 *ProjectsLocationsCollectionsDataStoresWidgetConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaWidgetConfig, 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 := &GoogleCloudDiscoveryengineV1alphaWidgetConfig{
		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", "discoveryengine.projects.locations.collections.dataStores.widgetConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesCreateCall struct {
	s                                       *Service
	parent                                  string
	googleclouddiscoveryenginev1alphaengine *GoogleCloudDiscoveryengineV1alphaEngine
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Create: Creates a Engine.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}`.
func (r *ProjectsLocationsCollectionsEnginesService) Create(parent string, googleclouddiscoveryenginev1alphaengine *GoogleCloudDiscoveryengineV1alphaEngine) *ProjectsLocationsCollectionsEnginesCreateCall {
	c := &ProjectsLocationsCollectionsEnginesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaengine = googleclouddiscoveryenginev1alphaengine
	return c
}

// EngineId sets the optional parameter "engineId": Required. The ID to use for
// the Engine, which will become the final component of the Engine's resource
// name. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 63
// characters. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsEnginesCreateCall) EngineId(engineId string) *ProjectsLocationsCollectionsEnginesCreateCall {
	c.urlParams_.Set("engineId", engineId)
	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 *ProjectsLocationsCollectionsEnginesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesCreateCall {
	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 *ProjectsLocationsCollectionsEnginesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaengine)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/engines")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsEnginesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.engines.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Engine.
//
//   - name: Full resource name of Engine, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`. If the caller does not have permission to delete the
//     Engine, regardless of whether or not it exists, a PERMISSION_DENIED error
//     is returned. If the Engine to delete does not exist, a NOT_FOUND error is
//     returned.
func (r *ProjectsLocationsCollectionsEnginesService) Delete(name string) *ProjectsLocationsCollectionsEnginesDeleteCall {
	c := &ProjectsLocationsCollectionsEnginesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesDeleteCall {
	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 *ProjectsLocationsCollectionsEnginesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsEnginesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.engines.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Engine.
//
//   - name: Full resource name of Engine, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) Get(name string) *ProjectsLocationsCollectionsEnginesGetCall {
	c := &ProjectsLocationsCollectionsEnginesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesGetCall {
	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 *ProjectsLocationsCollectionsEnginesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesGetCall {
	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 *ProjectsLocationsCollectionsEnginesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaEngine.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 *ProjectsLocationsCollectionsEnginesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaEngine, 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 := &GoogleCloudDiscoveryengineV1alphaEngine{
		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", "discoveryengine.projects.locations.collections.engines.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetWorkspaceSettings: Get Workspace settings for the end user.
//
//   - name: Full Engine resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) GetWorkspaceSettings(name string) *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall {
	c := &ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall {
	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 *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall {
	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 *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) 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, "v1alpha/{+name}:getWorkspaceSettings")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.getWorkspaceSettings", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.getWorkspaceSettings" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaWorkspaceSettings.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 *ProjectsLocationsCollectionsEnginesGetWorkspaceSettingsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaWorkspaceSettings, 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 := &GoogleCloudDiscoveryengineV1alphaWorkspaceSettings{
		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", "discoveryengine.projects.locations.collections.engines.getWorkspaceSettings", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all the Engines associated with the project.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) List(parent string) *ProjectsLocationsCollectionsEnginesListCall {
	c := &ProjectsLocationsCollectionsEnginesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter by solution type. For
// example: solution_type=SOLUTION_TYPE_SEARCH
func (c *ProjectsLocationsCollectionsEnginesListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Not supported.
func (c *ProjectsLocationsCollectionsEnginesListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": Not supported.
func (c *ProjectsLocationsCollectionsEnginesListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesListCall {
	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 *ProjectsLocationsCollectionsEnginesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesListCall {
	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 *ProjectsLocationsCollectionsEnginesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesListCall {
	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 *ProjectsLocationsCollectionsEnginesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesListCall) 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, "v1alpha/{+parent}/engines")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListEnginesResponse.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 *ProjectsLocationsCollectionsEnginesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListEnginesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListEnginesResponse{
		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", "discoveryengine.projects.locations.collections.engines.list", "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 *ProjectsLocationsCollectionsEnginesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListEnginesResponse) 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 ProjectsLocationsCollectionsEnginesPatchCall struct {
	s                                       *Service
	name                                    string
	googleclouddiscoveryenginev1alphaengine *GoogleCloudDiscoveryengineV1alphaEngine
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Patch: Updates an Engine
//
//   - name: Immutable. Identifier. The fully qualified resource name of the
//     engine. This field must be a UTF-8 encoded string with a length limit of
//     1024 characters. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}` engine should be 1-63 characters, and valid characters are
//     /a-z0-9*/. Otherwise, an INVALID_ARGUMENT error is returned.
func (r *ProjectsLocationsCollectionsEnginesService) Patch(name string, googleclouddiscoveryenginev1alphaengine *GoogleCloudDiscoveryengineV1alphaEngine) *ProjectsLocationsCollectionsEnginesPatchCall {
	c := &ProjectsLocationsCollectionsEnginesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaengine = googleclouddiscoveryenginev1alphaengine
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Engine to update. If an unsupported or unknown field is
// provided, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsCollectionsEnginesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesPatchCall {
	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 *ProjectsLocationsCollectionsEnginesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaengine)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaEngine.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 *ProjectsLocationsCollectionsEnginesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaEngine, 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 := &GoogleCloudDiscoveryengineV1alphaEngine{
		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", "discoveryengine.projects.locations.collections.engines.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesPauseCall struct {
	s                                                   *Service
	name                                                string
	googleclouddiscoveryenginev1alphapauseenginerequest *GoogleCloudDiscoveryengineV1alphaPauseEngineRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// Pause: Pauses the training of an existing engine. Only applicable if
// SolutionType is SOLUTION_TYPE_RECOMMENDATION.
//
//   - name: The name of the engine to pause. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) Pause(name string, googleclouddiscoveryenginev1alphapauseenginerequest *GoogleCloudDiscoveryengineV1alphaPauseEngineRequest) *ProjectsLocationsCollectionsEnginesPauseCall {
	c := &ProjectsLocationsCollectionsEnginesPauseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphapauseenginerequest = googleclouddiscoveryenginev1alphapauseenginerequest
	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 *ProjectsLocationsCollectionsEnginesPauseCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesPauseCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesPauseCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesPauseCall {
	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 *ProjectsLocationsCollectionsEnginesPauseCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesPauseCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapauseenginerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:pause")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.pause", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.pause" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaEngine.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 *ProjectsLocationsCollectionsEnginesPauseCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaEngine, 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 := &GoogleCloudDiscoveryengineV1alphaEngine{
		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", "discoveryengine.projects.locations.collections.engines.pause", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesResumeCall struct {
	s                                                    *Service
	name                                                 string
	googleclouddiscoveryenginev1alpharesumeenginerequest *GoogleCloudDiscoveryengineV1alphaResumeEngineRequest
	urlParams_                                           gensupport.URLParams
	ctx_                                                 context.Context
	header_                                              http.Header
}

// Resume: Resumes the training of an existing engine. Only applicable if
// SolutionType is SOLUTION_TYPE_RECOMMENDATION.
//
//   - name: The name of the engine to resume. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) Resume(name string, googleclouddiscoveryenginev1alpharesumeenginerequest *GoogleCloudDiscoveryengineV1alphaResumeEngineRequest) *ProjectsLocationsCollectionsEnginesResumeCall {
	c := &ProjectsLocationsCollectionsEnginesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alpharesumeenginerequest = googleclouddiscoveryenginev1alpharesumeenginerequest
	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 *ProjectsLocationsCollectionsEnginesResumeCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesResumeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesResumeCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesResumeCall {
	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 *ProjectsLocationsCollectionsEnginesResumeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesResumeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharesumeenginerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:resume")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.resume", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.resume" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaEngine.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 *ProjectsLocationsCollectionsEnginesResumeCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaEngine, 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 := &GoogleCloudDiscoveryengineV1alphaEngine{
		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", "discoveryengine.projects.locations.collections.engines.resume", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesTuneCall struct {
	s                                                  *Service
	name                                               string
	googleclouddiscoveryenginev1alphatuneenginerequest *GoogleCloudDiscoveryengineV1alphaTuneEngineRequest
	urlParams_                                         gensupport.URLParams
	ctx_                                               context.Context
	header_                                            http.Header
}

// Tune: Tunes an existing engine. Only applicable if SolutionType is
// SOLUTION_TYPE_RECOMMENDATION.
//
//   - name: The resource name of the engine to tune. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesService) Tune(name string, googleclouddiscoveryenginev1alphatuneenginerequest *GoogleCloudDiscoveryengineV1alphaTuneEngineRequest) *ProjectsLocationsCollectionsEnginesTuneCall {
	c := &ProjectsLocationsCollectionsEnginesTuneCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphatuneenginerequest = googleclouddiscoveryenginev1alphatuneenginerequest
	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 *ProjectsLocationsCollectionsEnginesTuneCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesTuneCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesTuneCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesTuneCall {
	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 *ProjectsLocationsCollectionsEnginesTuneCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesTuneCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatuneenginerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:tune")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.tune", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.tune" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsEnginesTuneCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.engines.tune", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall struct {
	s                                                     *Service
	analytics                                             string
	googleclouddiscoveryenginev1alphaexportmetricsrequest *GoogleCloudDiscoveryengineV1alphaExportMetricsRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// ExportMetrics: Exports metrics.
//
//   - analytics: The analytics resource name under the engine where the metrics
//     are created. The format is
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/analytics`.
func (r *ProjectsLocationsCollectionsEnginesAnalyticsService) ExportMetrics(analytics string, googleclouddiscoveryenginev1alphaexportmetricsrequest *GoogleCloudDiscoveryengineV1alphaExportMetricsRequest) *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall {
	c := &ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.analytics = analytics
	c.googleclouddiscoveryenginev1alphaexportmetricsrequest = googleclouddiscoveryenginev1alphaexportmetricsrequest
	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 *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall {
	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 *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaexportmetricsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+analytics}:exportMetrics")
	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{
		"analytics": c.analytics,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.analytics.exportMetrics", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.analytics.exportMetrics" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsEnginesAnalyticsExportMetricsCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.engines.analytics.exportMetrics", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesAssistantsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets an Assistant.
//
//   - name: Resource name of Assistant. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/assistants/{assistant}`.
func (r *ProjectsLocationsCollectionsEnginesAssistantsService) Get(name string) *ProjectsLocationsCollectionsEnginesAssistantsGetCall {
	c := &ProjectsLocationsCollectionsEnginesAssistantsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesAssistantsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesAssistantsGetCall {
	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 *ProjectsLocationsCollectionsEnginesAssistantsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesAssistantsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesAssistantsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesAssistantsGetCall {
	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 *ProjectsLocationsCollectionsEnginesAssistantsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesAssistantsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.assistants.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.assistants.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAssistant.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 *ProjectsLocationsCollectionsEnginesAssistantsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAssistant, 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 := &GoogleCloudDiscoveryengineV1alphaAssistant{
		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", "discoveryengine.projects.locations.collections.engines.assistants.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesAssistantsPatchCall struct {
	s                                          *Service
	name                                       string
	googleclouddiscoveryenginev1alphaassistant *GoogleCloudDiscoveryengineV1alphaAssistant
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Patch: Updates an Assistant
//
//   - name: Immutable. Resource name of the assistant. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/assistants/{assistant}` It must be a UTF-8 encoded string with a
//     length limit of 1024 characters.
func (r *ProjectsLocationsCollectionsEnginesAssistantsService) Patch(name string, googleclouddiscoveryenginev1alphaassistant *GoogleCloudDiscoveryengineV1alphaAssistant) *ProjectsLocationsCollectionsEnginesAssistantsPatchCall {
	c := &ProjectsLocationsCollectionsEnginesAssistantsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaassistant = googleclouddiscoveryenginev1alphaassistant
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// update.
func (c *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesAssistantsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesAssistantsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesAssistantsPatchCall {
	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 *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaassistant)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.assistants.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.assistants.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAssistant.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 *ProjectsLocationsCollectionsEnginesAssistantsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAssistant, 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 := &GoogleCloudDiscoveryengineV1alphaAssistant{
		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", "discoveryengine.projects.locations.collections.engines.assistants.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall struct {
	s                                                    *Service
	name                                                 string
	googleclouddiscoveryenginev1alphastreamassistrequest *GoogleCloudDiscoveryengineV1alphaStreamAssistRequest
	urlParams_                                           gensupport.URLParams
	ctx_                                                 context.Context
	header_                                              http.Header
}

// StreamAssist: Assists the user with a query in a streaming fashion.
//
//   - name: The resource name of the Assistant. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/assistants/{assistant}`.
func (r *ProjectsLocationsCollectionsEnginesAssistantsService) StreamAssist(name string, googleclouddiscoveryenginev1alphastreamassistrequest *GoogleCloudDiscoveryengineV1alphaStreamAssistRequest) *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall {
	c := &ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphastreamassistrequest = googleclouddiscoveryenginev1alphastreamassistrequest
	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 *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall {
	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 *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphastreamassistrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:streamAssist")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.assistants.streamAssist", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.assistants.streamAssist" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaStreamAssistResponse.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 *ProjectsLocationsCollectionsEnginesAssistantsStreamAssistCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaStreamAssistResponse, 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 := &GoogleCloudDiscoveryengineV1alphaStreamAssistResponse{
		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", "discoveryengine.projects.locations.collections.engines.assistants.streamAssist", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall struct {
	s                                                             *Service
	completionConfig                                              string
	googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// CompleteQuery: Completes the user input with advanced keyword suggestions.
//
//   - completionConfig: The completion_config of the parent dataStore or engine
//     resource name for which the completion is performed, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/*/co
//     mpletionConfig`
//     `projects/*/locations/global/collections/default_collection/engines/*/compl
//     etionConfig`.
func (r *ProjectsLocationsCollectionsEnginesCompletionConfigService) CompleteQuery(completionConfig string, googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest) *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall {
	c := &ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.completionConfig = completionConfig
	c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest = googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest
	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 *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall {
	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 *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+completionConfig}:completeQuery")
	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{
		"completionConfig": c.completionConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.completionConfig.completeQuery", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.completionConfig.completeQuery" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse.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 *ProjectsLocationsCollectionsEnginesCompletionConfigCompleteQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse{
		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", "discoveryengine.projects.locations.collections.engines.completionConfig.completeQuery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall struct {
	s                                                        *Service
	completionConfig                                         string
	googleclouddiscoveryenginev1alpharemovesuggestionrequest *GoogleCloudDiscoveryengineV1alphaRemoveSuggestionRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// RemoveSuggestion: Removes the search history suggestion in an engine for a
// user. This will remove the suggestion from being returned in the
// AdvancedCompleteQueryResponse.recent_search_suggestions for this user. If
// the user searches the same suggestion again, the new history will override
// and suggest this suggestion again.
//
//   - completionConfig: The completion_config of the parent engine resource name
//     for which the search history suggestion is to be removed, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/compl
//     etionConfig`.
func (r *ProjectsLocationsCollectionsEnginesCompletionConfigService) RemoveSuggestion(completionConfig string, googleclouddiscoveryenginev1alpharemovesuggestionrequest *GoogleCloudDiscoveryengineV1alphaRemoveSuggestionRequest) *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall {
	c := &ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.completionConfig = completionConfig
	c.googleclouddiscoveryenginev1alpharemovesuggestionrequest = googleclouddiscoveryenginev1alpharemovesuggestionrequest
	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 *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall {
	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 *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharemovesuggestionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+completionConfig}:removeSuggestion")
	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{
		"completionConfig": c.completionConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.completionConfig.removeSuggestion", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.completionConfig.removeSuggestion" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaRemoveSuggestionResponse.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 *ProjectsLocationsCollectionsEnginesCompletionConfigRemoveSuggestionCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaRemoveSuggestionResponse, 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 := &GoogleCloudDiscoveryengineV1alphaRemoveSuggestionResponse{
		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", "discoveryengine.projects.locations.collections.engines.completionConfig.removeSuggestion", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesControlsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Control. By default 1000 controls are allowed for a data
// store. A request can be submitted to adjust this limit. If the Control to
// create already exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesControlsService) Create(parent string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsCollectionsEnginesControlsCreateCall {
	c := &ProjectsLocationsCollectionsEnginesControlsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// ControlId sets the optional parameter "controlId": Required. The ID to use
// for the Control, which will become the final component of the Control's
// resource name. This value must be within 1-63 characters. Valid characters
// are /a-z-_/.
func (c *ProjectsLocationsCollectionsEnginesControlsCreateCall) ControlId(controlId string) *ProjectsLocationsCollectionsEnginesControlsCreateCall {
	c.urlParams_.Set("controlId", controlId)
	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 *ProjectsLocationsCollectionsEnginesControlsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesControlsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesControlsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesControlsCreateCall {
	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 *ProjectsLocationsCollectionsEnginesControlsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesControlsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.controls.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.controls.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsEnginesControlsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.engines.controls.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesControlsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Control. If the Control to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Control to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsCollectionsEnginesControlsService) Delete(name string) *ProjectsLocationsCollectionsEnginesControlsDeleteCall {
	c := &ProjectsLocationsCollectionsEnginesControlsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesControlsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesControlsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesControlsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesControlsDeleteCall {
	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 *ProjectsLocationsCollectionsEnginesControlsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesControlsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.controls.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.controls.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsEnginesControlsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.engines.controls.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesControlsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Control.
//
//   - name: The resource name of the Control to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsCollectionsEnginesControlsService) Get(name string) *ProjectsLocationsCollectionsEnginesControlsGetCall {
	c := &ProjectsLocationsCollectionsEnginesControlsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesControlsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesControlsGetCall {
	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 *ProjectsLocationsCollectionsEnginesControlsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesControlsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesControlsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesControlsGetCall {
	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 *ProjectsLocationsCollectionsEnginesControlsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesControlsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.controls.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.controls.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsEnginesControlsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.engines.controls.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesControlsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Controls by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsCollectionsEnginesControlsService) List(parent string) *ProjectsLocationsCollectionsEnginesControlsListCall {
	c := &ProjectsLocationsCollectionsEnginesControlsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. Supported features: * List all the products under the parent branch
// if filter is unset. Currently this field is unsupported.
func (c *ProjectsLocationsCollectionsEnginesControlsListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesControlsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsEnginesControlsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesControlsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListControls` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsCollectionsEnginesControlsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesControlsListCall {
	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 *ProjectsLocationsCollectionsEnginesControlsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesControlsListCall {
	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 *ProjectsLocationsCollectionsEnginesControlsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesControlsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesControlsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesControlsListCall {
	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 *ProjectsLocationsCollectionsEnginesControlsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesControlsListCall) 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, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.controls.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.controls.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListControlsResponse.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 *ProjectsLocationsCollectionsEnginesControlsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListControlsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListControlsResponse{
		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", "discoveryengine.projects.locations.collections.engines.controls.list", "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 *ProjectsLocationsCollectionsEnginesControlsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListControlsResponse) 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 ProjectsLocationsCollectionsEnginesControlsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Control. Control action type cannot be changed. If the
// Control to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/*/locations/global/dataStore/*/controls/*`.
func (r *ProjectsLocationsCollectionsEnginesControlsService) Patch(name string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsCollectionsEnginesControlsPatchCall {
	c := &ProjectsLocationsCollectionsEnginesControlsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Control to update. The following are NOT supported: *
// Control.name * Control.solution_type If not set or empty, all supported
// fields are updated.
func (c *ProjectsLocationsCollectionsEnginesControlsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesControlsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesControlsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesControlsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesControlsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesControlsPatchCall {
	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 *ProjectsLocationsCollectionsEnginesControlsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesControlsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.controls.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.controls.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsCollectionsEnginesControlsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.collections.engines.controls.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesConversationsConverseCall struct {
	s                                                            *Service
	name                                                         string
	googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Converse: Converses a conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`. Use
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/-` to activate auto session mode, which
//     automatically creates a new conversation inside a ConverseConversation
//     session.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) Converse(name string, googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest) *ProjectsLocationsCollectionsEnginesConversationsConverseCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsConverseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconverseconversationrequest = googleclouddiscoveryenginev1alphaconverseconversationrequest
	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 *ProjectsLocationsCollectionsEnginesConversationsConverseCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsConverseCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsConverseCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsConverseCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsConverseCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsConverseCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconverseconversationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:converse")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.converse", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.converse" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConverseConversationResponse.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 *ProjectsLocationsCollectionsEnginesConversationsConverseCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConverseConversationResponse, 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 := &GoogleCloudDiscoveryengineV1alphaConverseConversationResponse{
		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", "discoveryengine.projects.locations.collections.engines.conversations.converse", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesConversationsCreateCall struct {
	s                                             *Service
	parent                                        string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Create: Creates a Conversation. If the Conversation to create already
// exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) Create(parent string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsCollectionsEnginesConversationsCreateCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	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 *ProjectsLocationsCollectionsEnginesConversationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsCreateCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsEnginesConversationsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.engines.conversations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesConversationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Conversation. If the Conversation to delete does not
// exist, a NOT_FOUND error is returned.
//
//   - name: The resource name of the Conversation to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) Delete(name string) *ProjectsLocationsCollectionsEnginesConversationsDeleteCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesConversationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsDeleteCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsEnginesConversationsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.engines.conversations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesConversationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) Get(name string) *ProjectsLocationsCollectionsEnginesConversationsGetCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesConversationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsGetCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesConversationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsGetCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsEnginesConversationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.engines.conversations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesConversationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Conversations by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) List(parent string) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. The supported features are: user_pseudo_id, state. Example:
// "user_pseudo_id = some_id"
func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `conversation_name` Example: "update_time desc" "create_time"
func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) OrderBy(orderBy string) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListConversations` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsListCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsListCall) 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, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListConversationsResponse.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 *ProjectsLocationsCollectionsEnginesConversationsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListConversationsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListConversationsResponse{
		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", "discoveryengine.projects.locations.collections.engines.conversations.list", "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 *ProjectsLocationsCollectionsEnginesConversationsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListConversationsResponse) 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 ProjectsLocationsCollectionsEnginesConversationsPatchCall struct {
	s                                             *Service
	name                                          string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Patch: Updates a Conversation. Conversation action type cannot be changed.
// If the Conversation to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/dataStore/*/c
//     onversations/*` or
//     `projects/{project}/locations/global/collections/{collection}/engines/*/con
//     versations/*`.
func (r *ProjectsLocationsCollectionsEnginesConversationsService) Patch(name string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsCollectionsEnginesConversationsPatchCall {
	c := &ProjectsLocationsCollectionsEnginesConversationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Conversation to update. The following are NOT supported: *
// Conversation.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsCollectionsEnginesConversationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesConversationsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesConversationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesConversationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesConversationsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesConversationsPatchCall {
	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 *ProjectsLocationsCollectionsEnginesConversationsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesConversationsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.conversations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.conversations.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsCollectionsEnginesConversationsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.collections.engines.conversations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsEnginesOperationsService) Get(name string) *ProjectsLocationsCollectionsEnginesOperationsGetCall {
	c := &ProjectsLocationsCollectionsEnginesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesOperationsGetCall {
	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 *ProjectsLocationsCollectionsEnginesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesOperationsGetCall {
	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 *ProjectsLocationsCollectionsEnginesOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsEnginesOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.engines.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsEnginesOperationsService) List(name string) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c := &ProjectsLocationsCollectionsEnginesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsEnginesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	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 *ProjectsLocationsCollectionsEnginesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesOperationsListCall {
	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 *ProjectsLocationsCollectionsEnginesOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsEnginesOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.engines.operations.list", "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 *ProjectsLocationsCollectionsEnginesOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// Answer: Answer query method.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) Answer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:answer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.answer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.answer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.answer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesServingConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a ServingConfig. Returns a NotFound error if the ServingConfig
// does not exist.
//
//   - name: The resource name of the ServingConfig to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) Get(name string) *ProjectsLocationsCollectionsEnginesServingConfigsGetCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsGetCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesServingConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsGetCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsCollectionsEnginesServingConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesServingConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all ServingConfigs linked to this dataStore.
//
//   - parent: Full resource name of the parent resource. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}`.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) List(parent string) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 100. If a value greater than 100 is
// provided, at most 100 results are returned.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListServingConfigs` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsListCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsListCall) 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, "v1alpha/{+parent}/servingConfigs")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.list", "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 *ProjectsLocationsCollectionsEnginesServingConfigsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse) 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 ProjectsLocationsCollectionsEnginesServingConfigsPatchCall struct {
	s                                              *Service
	name                                           string
	googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Patch: Updates a ServingConfig. Returns a NOT_FOUND error if the
// ServingConfig does not exist.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) Patch(name string, googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig) *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaservingconfig = googleclouddiscoveryenginev1alphaservingconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided ServingConfig to update. The following are NOT supported: *
// ServingConfig.name If not set, all supported fields are updated.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaservingconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsCollectionsEnginesServingConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall struct {
	s                                                 *Service
	servingConfig                                     string
	googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Recommend: Makes a recommendation, which requires a contextual user event.
//
//   - servingConfig: Full resource name of a ServingConfig:
//     `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or
//     `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*`
//     One default serving config is created along with your recommendation
//     engine creation. The engine ID is used as the ID of the default serving
//     config. For example, for Engine
//     `projects/*/locations/global/collections/*/engines/my-engine`, you can use
//     `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs
//     /my-engine` for your RecommendationService.Recommend requests.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) Recommend(servingConfig string, googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest) *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alpharecommendrequest = googleclouddiscoveryenginev1alpharecommendrequest
	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 *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharecommendrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:recommend")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.recommend", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.recommend" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaRecommendResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsRecommendCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaRecommendResponse, 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 := &GoogleCloudDiscoveryengineV1alphaRecommendResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.recommend", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesServingConfigsSearchCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Search: Performs a search.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) Search(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}: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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// SearchLite: Performs a search. Similar to the SearchService.Search method,
// but a lite version that allows API key for authentication, where OAuth and
// IAM checks are not required. Only public website search is supported by this
// method. If data stores and engines not associated with public website search
// are specified, a `FAILED_PRECONDITION` error is returned. This method can be
// used for easy onboarding without having to implement an authentication
// backend. However, it is strongly recommended to use SearchService.Search
// instead with required OAuth and IAM checks to provide better data security.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) SearchLite(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:searchLite")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.searchLite", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.searchLite" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.searchLite", "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 *ProjectsLocationsCollectionsEnginesServingConfigsSearchLiteCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// StreamAnswer: Answer query method (streaming). It takes one
// AnswerQueryRequest and returns multiple AnswerQueryResponse messages in a
// stream.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsCollectionsEnginesServingConfigsService) StreamAnswer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall {
	c := &ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall {
	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 *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:streamAnswer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.servingConfigs.streamAnswer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.servingConfigs.streamAnswer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsCollectionsEnginesServingConfigsStreamAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.collections.engines.servingConfigs.streamAnswer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Session. If the Session to create already exists, an
// ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsEnginesSessionsService) Create(parent string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsCollectionsEnginesSessionsCreateCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	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 *ProjectsLocationsCollectionsEnginesSessionsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsCreateCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsCreateCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsEnginesSessionsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.engines.sessions.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Session. If the Session to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Session to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsCollectionsEnginesSessionsService) Delete(name string) *ProjectsLocationsCollectionsEnginesSessionsDeleteCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesSessionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsDeleteCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsCollectionsEnginesSessionsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.collections.engines.sessions.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Session.
//
//   - name: The resource name of the Session to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsCollectionsEnginesSessionsService) Get(name string) *ProjectsLocationsCollectionsEnginesSessionsGetCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// IncludeAnswerDetails sets the optional parameter "includeAnswerDetails": If
// set to true, the full session including all answer details will be returned.
func (c *ProjectsLocationsCollectionsEnginesSessionsGetCall) IncludeAnswerDetails(includeAnswerDetails bool) *ProjectsLocationsCollectionsEnginesSessionsGetCall {
	c.urlParams_.Set("includeAnswerDetails", fmt.Sprint(includeAnswerDetails))
	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 *ProjectsLocationsCollectionsEnginesSessionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsGetCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesSessionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsGetCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsEnginesSessionsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.engines.sessions.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Sessions by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsCollectionsEnginesSessionsService) List(parent string) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A comma-separated list of
// fields to filter by, in EBNF grammar. The supported fields are: *
// `user_pseudo_id` * `state` * `display_name` * `starred` * `is_pinned` *
// `labels` * `create_time` * `update_time` Examples: * `user_pseudo_id =
// some_id` * `display_name = "some_name" * `starred = true` * `is_pinned=true
// AND (NOT labels:hidden)` * `create_time > "1970-01-01T12:00:00Z"
func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `session_name` * `is_pinned` Example: * `update_time desc` * `create_time` *
// `is_pinned desc,update_time desc`: list sessions by is_pinned first, then by
// update_time.
func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) OrderBy(orderBy string) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListSessions` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsListCall) 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, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSessionsResponse.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 *ProjectsLocationsCollectionsEnginesSessionsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSessionsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSessionsResponse{
		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", "discoveryengine.projects.locations.collections.engines.sessions.list", "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 *ProjectsLocationsCollectionsEnginesSessionsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSessionsResponse) 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 ProjectsLocationsCollectionsEnginesSessionsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Session. Session action type cannot be changed. If the
// Session to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/engines/{engi
//     ne}/sessions/*`.
func (r *ProjectsLocationsCollectionsEnginesSessionsService) Patch(name string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsCollectionsEnginesSessionsPatchCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Session to update. The following are NOT supported: *
// Session.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsCollectionsEnginesSessionsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsCollectionsEnginesSessionsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsCollectionsEnginesSessionsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsPatchCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsPatchCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsCollectionsEnginesSessionsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.collections.engines.sessions.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Answer.
//
//   - name: The resource name of the Answer to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine_id}/sessions/{session_id}/answers/{answer_id}`.
func (r *ProjectsLocationsCollectionsEnginesSessionsAnswersService) Get(name string) *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.answers.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.answers.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswer.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 *ProjectsLocationsCollectionsEnginesSessionsAnswersGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswer, 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 := &GoogleCloudDiscoveryengineV1alphaAnswer{
		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", "discoveryengine.projects.locations.collections.engines.sessions.answers.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsEnginesSessionsFilesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists metadata for all files in the current session.
//
//   - parent: The resource name of the Session. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/sessions/{session}` Name of the session resource to which the file
//     belong.
func (r *ProjectsLocationsCollectionsEnginesSessionsFilesService) List(parent string) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	c := &ProjectsLocationsCollectionsEnginesSessionsFilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": The filter syntax consists of
// an expression language for constructing a predicate from one or more fields
// of the files being filtered. Filter expression is case-sensitive. Currently
// supported field names are: * upload_time * last_add_time * last_use_time *
// file_name * mime_type Some examples of filters would be: * "file_name =
// 'file_1'" * "file_name = 'file_1' AND mime_type = 'text/plain'" *
// "last_use_time > '2025-06-14T12:00:00Z'" For a full description of the
// filter format, please see https://google.aip.dev/160.
func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Filter(filter string) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Specifies the order in which
// files are returned. The value is a comma-separated string of fields to sort
// by. For ascending order - just the field name is used. For descending order
// - the field name is suffixed with ` desc`. Sorting is stable and applied
// sequentially according to the order of fields provided in the string.
// Supported fields for ordering: * `upload_time`: The time the file was
// uploaded. * `file_name`: The name of the file. * `mime_type`: The MIME type
// of the file. * `session_name`: The name of the session the file belongs to.
// Default Behavior: If the `order_by` field is not specified, files will be
// returned sorted by creation time in descending order. Examples: 1. Sort by
// file name in ascending order: `file_name` 2. Sort by upload time in
// descending order: `upload_time desc` 3. Sort by file name (ascending), then
// by content type (MIME type) (descending), and finally by upload time
// (ascending): `file_name, mime_type desc, upload_time`
func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) OrderBy(orderBy string) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of files
// to return. The service may return fewer than this value. If unspecified, at
// most 100 files will be returned. The maximum value is 1000; values above
// 1000 will be coerced to 1000. If user specifies a value less than or equal
// to 0 - the request will be rejected with an INVALID_ARGUMENT error.
func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token received
// from a previous `ListFiles` call. Provide this to retrieve the subsequent
// page. When paginating, all other parameters provided to `ListFiles` must
// match the call that provided the page token (except `page_size`, which may
// differ).
func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesSessionsFilesListCall {
	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 *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) 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, "v1alpha/{+parent}/files")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.sessions.files.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.sessions.files.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListFilesResponse.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 *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListFilesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListFilesResponse{
		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", "discoveryengine.projects.locations.collections.engines.sessions.files.list", "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 *ProjectsLocationsCollectionsEnginesSessionsFilesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListFilesResponse) 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 ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a WidgetConfig.
//
//   - name: Full WidgetConfig resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/widgetConfigs/{widget_config_id}`.
func (r *ProjectsLocationsCollectionsEnginesWidgetConfigsService) Get(name string) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	c := &ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// AcceptCache sets the optional parameter "acceptCache": Whether it's
// acceptable to load the widget config from cache. If set to true, recent
// changes on widget configs may take a few minutes to reflect on the end
// user's view. It's recommended to set to true for maturely developed widgets,
// as it improves widget performance. Set to false to see changes reflected in
// prod right away, if your widget is under development.
func (c *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) AcceptCache(acceptCache bool) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	c.urlParams_.Set("acceptCache", fmt.Sprint(acceptCache))
	return c
}

// GetWidgetConfigRequestOptionTurnOffCollectionComponents sets the optional
// parameter "getWidgetConfigRequestOption.turnOffCollectionComponents":
// Whether to turn off collection_components in WidgetConfig to reduce latency
// and data transmission.
func (c *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) GetWidgetConfigRequestOptionTurnOffCollectionComponents(getWidgetConfigRequestOptionTurnOffCollectionComponents bool) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	c.urlParams_.Set("getWidgetConfigRequestOption.turnOffCollectionComponents", fmt.Sprint(getWidgetConfigRequestOptionTurnOffCollectionComponents))
	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 *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	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 *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall {
	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 *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.engines.widgetConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.engines.widgetConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaWidgetConfig.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 *ProjectsLocationsCollectionsEnginesWidgetConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaWidgetConfig, 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 := &GoogleCloudDiscoveryengineV1alphaWidgetConfig{
		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", "discoveryengine.projects.locations.collections.engines.widgetConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsCollectionsOperationsService) Get(name string) *ProjectsLocationsCollectionsOperationsGetCall {
	c := &ProjectsLocationsCollectionsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsCollectionsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsOperationsGetCall {
	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 *ProjectsLocationsCollectionsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsCollectionsOperationsGetCall {
	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 *ProjectsLocationsCollectionsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsCollectionsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.collections.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsCollectionsOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsCollectionsOperationsService) List(name string) *ProjectsLocationsCollectionsOperationsListCall {
	c := &ProjectsLocationsCollectionsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsCollectionsOperationsListCall) Filter(filter string) *ProjectsLocationsCollectionsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsCollectionsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsCollectionsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsCollectionsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsCollectionsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsCollectionsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsCollectionsOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsCollectionsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsCollectionsOperationsListCall {
	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 *ProjectsLocationsCollectionsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsCollectionsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsCollectionsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsCollectionsOperationsListCall {
	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 *ProjectsLocationsCollectionsOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsCollectionsOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.collections.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.collections.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsCollectionsOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.collections.operations.list", "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 *ProjectsLocationsCollectionsOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsDataStoresCompleteQueryCall struct {
	s            *Service
	dataStore    string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// CompleteQuery: Completes the specified user input with keyword suggestions.
//
//   - dataStore: The parent data store resource name for which the completion is
//     performed, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store`.
func (r *ProjectsLocationsDataStoresService) CompleteQuery(dataStore string) *ProjectsLocationsDataStoresCompleteQueryCall {
	c := &ProjectsLocationsDataStoresCompleteQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.dataStore = dataStore
	return c
}

// IncludeTailSuggestions sets the optional parameter "includeTailSuggestions":
// Indicates if tail suggestions should be returned if there are no suggestions
// that match the full query. Even if set to true, if there are suggestions
// that match the full query, those are returned and no tail suggestions are
// returned.
func (c *ProjectsLocationsDataStoresCompleteQueryCall) IncludeTailSuggestions(includeTailSuggestions bool) *ProjectsLocationsDataStoresCompleteQueryCall {
	c.urlParams_.Set("includeTailSuggestions", fmt.Sprint(includeTailSuggestions))
	return c
}

// Query sets the optional parameter "query": Required. The typeahead input
// used to fetch suggestions. Maximum length is 128 characters.
func (c *ProjectsLocationsDataStoresCompleteQueryCall) Query(query string) *ProjectsLocationsDataStoresCompleteQueryCall {
	c.urlParams_.Set("query", query)
	return c
}

// QueryModel sets the optional parameter "queryModel": Specifies the
// autocomplete data model. This overrides any model specified in the
// Configuration > Autocomplete section of the Cloud console. Currently
// supported values: * `document` - Using suggestions generated from
// user-imported documents. * `search-history` - Using suggestions generated
// from the past history of SearchService.Search API calls. Do not use it when
// there is no traffic for Search API. * `user-event` - Using suggestions
// generated from user-imported search events. * `document-completable` - Using
// suggestions taken directly from user-imported document fields marked as
// completable. Default values: * `document` is the default model for regular
// dataStores. * `search-history` is the default model for site search
// dataStores.
func (c *ProjectsLocationsDataStoresCompleteQueryCall) QueryModel(queryModel string) *ProjectsLocationsDataStoresCompleteQueryCall {
	c.urlParams_.Set("queryModel", queryModel)
	return c
}

// UserPseudoId sets the optional parameter "userPseudoId": A unique identifier
// for tracking visitors. For example, this could be implemented with an HTTP
// cookie, which should be able to uniquely identify a visitor on a single
// device. This unique identifier should not change if the visitor logs in or
// out of the website. This field should NOT have a fixed value such as
// `unknown_visitor`. This should be the same identifier as
// UserEvent.user_pseudo_id and SearchRequest.user_pseudo_id. The field must be
// a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresCompleteQueryCall) UserPseudoId(userPseudoId string) *ProjectsLocationsDataStoresCompleteQueryCall {
	c.urlParams_.Set("userPseudoId", userPseudoId)
	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 *ProjectsLocationsDataStoresCompleteQueryCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresCompleteQueryCall {
	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 *ProjectsLocationsDataStoresCompleteQueryCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresCompleteQueryCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresCompleteQueryCall) Context(ctx context.Context) *ProjectsLocationsDataStoresCompleteQueryCall {
	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 *ProjectsLocationsDataStoresCompleteQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresCompleteQueryCall) 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, "v1alpha/{+dataStore}:completeQuery")
	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{
		"dataStore": c.dataStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.completeQuery", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.completeQuery" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse.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 *ProjectsLocationsDataStoresCompleteQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaCompleteQueryResponse{
		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", "discoveryengine.projects.locations.dataStores.completeQuery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresCreateCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Create: Creates a DataStore. DataStore is for storing Documents. To serve
// these documents for Search, or Recommendation use case, an Engine needs to
// be created separately.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}`.
func (r *ProjectsLocationsDataStoresService) Create(parent string, googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore) *ProjectsLocationsDataStoresCreateCall {
	c := &ProjectsLocationsDataStoresCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphadatastore = googleclouddiscoveryenginev1alphadatastore
	return c
}

// CmekConfigName sets the optional parameter "cmekConfigName": Resource name
// of the CmekConfig to use for protecting this DataStore.
func (c *ProjectsLocationsDataStoresCreateCall) CmekConfigName(cmekConfigName string) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("cmekConfigName", cmekConfigName)
	return c
}

// CreateAdvancedSiteSearch sets the optional parameter
// "createAdvancedSiteSearch": A boolean flag indicating whether user want to
// directly create an advanced data store for site search. If the data store is
// not configured as site search (GENERIC vertical and PUBLIC_WEBSITE
// content_config), this flag will be ignored.
func (c *ProjectsLocationsDataStoresCreateCall) CreateAdvancedSiteSearch(createAdvancedSiteSearch bool) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("createAdvancedSiteSearch", fmt.Sprint(createAdvancedSiteSearch))
	return c
}

// DataStoreId sets the optional parameter "dataStoreId": Required. The ID to
// use for the DataStore, which will become the final component of the
// DataStore's resource name. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 63
// characters. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsDataStoresCreateCall) DataStoreId(dataStoreId string) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("dataStoreId", dataStoreId)
	return c
}

// DisableCmek sets the optional parameter "disableCmek": DataStore without
// CMEK protections. If a default CmekConfig is set for the project, setting
// this field will override the default CmekConfig as well.
func (c *ProjectsLocationsDataStoresCreateCall) DisableCmek(disableCmek bool) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("disableCmek", fmt.Sprint(disableCmek))
	return c
}

// SkipDefaultSchemaCreation sets the optional parameter
// "skipDefaultSchemaCreation": A boolean flag indicating whether to skip the
// default schema creation for the data store. Only enable this flag if you are
// certain that the default schema is incompatible with your use case. If set
// to true, you must manually create a schema for the data store before any
// documents can be ingested. This flag cannot be specified if
// `data_store.starting_schema` is specified.
func (c *ProjectsLocationsDataStoresCreateCall) SkipDefaultSchemaCreation(skipDefaultSchemaCreation bool) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("skipDefaultSchemaCreation", fmt.Sprint(skipDefaultSchemaCreation))
	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 *ProjectsLocationsDataStoresCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresCreateCall {
	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 *ProjectsLocationsDataStoresCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadatastore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/dataStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a DataStore.
//
//   - name: Full resource name of DataStore, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. If the caller does not have permission to delete
//     the DataStore, regardless of whether or not it exists, a PERMISSION_DENIED
//     error is returned. If the DataStore to delete does not exist, a NOT_FOUND
//     error is returned.
func (r *ProjectsLocationsDataStoresService) Delete(name string) *ProjectsLocationsDataStoresDeleteCall {
	c := &ProjectsLocationsDataStoresDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresDeleteCall {
	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 *ProjectsLocationsDataStoresDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a DataStore.
//
//   - name: Full resource name of DataStore, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. If the caller does not have permission to access
//     the DataStore, regardless of whether or not it exists, a PERMISSION_DENIED
//     error is returned. If the requested DataStore does not exist, a NOT_FOUND
//     error is returned.
func (r *ProjectsLocationsDataStoresService) Get(name string) *ProjectsLocationsDataStoresGetCall {
	c := &ProjectsLocationsDataStoresGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresGetCall {
	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 *ProjectsLocationsDataStoresGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresGetCall {
	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 *ProjectsLocationsDataStoresGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataStore.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 *ProjectsLocationsDataStoresGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataStore, 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 := &GoogleCloudDiscoveryengineV1alphaDataStore{
		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", "discoveryengine.projects.locations.dataStores.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresGetDocumentProcessingConfigCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetDocumentProcessingConfig: Gets a DocumentProcessingConfig.
//
//   - name: Full DocumentProcessingConfig resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/documentProcessingConfig`.
func (r *ProjectsLocationsDataStoresService) GetDocumentProcessingConfig(name string) *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall {
	c := &ProjectsLocationsDataStoresGetDocumentProcessingConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall {
	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 *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) Context(ctx context.Context) *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall {
	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 *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.getDocumentProcessingConfig", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.getDocumentProcessingConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig.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 *ProjectsLocationsDataStoresGetDocumentProcessingConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig{
		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", "discoveryengine.projects.locations.dataStores.getDocumentProcessingConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresGetSiteSearchEngineCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetSiteSearchEngine: Gets the SiteSearchEngine.
//
//   - name: Resource name of SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. If the caller does not have permission
//     to access the [SiteSearchEngine], regardless of whether or not it exists,
//     a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsDataStoresService) GetSiteSearchEngine(name string) *ProjectsLocationsDataStoresGetSiteSearchEngineCall {
	c := &ProjectsLocationsDataStoresGetSiteSearchEngineCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresGetSiteSearchEngineCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresGetSiteSearchEngineCall {
	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 *ProjectsLocationsDataStoresGetSiteSearchEngineCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresGetSiteSearchEngineCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresGetSiteSearchEngineCall) Context(ctx context.Context) *ProjectsLocationsDataStoresGetSiteSearchEngineCall {
	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 *ProjectsLocationsDataStoresGetSiteSearchEngineCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresGetSiteSearchEngineCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.getSiteSearchEngine", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.getSiteSearchEngine" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSiteSearchEngine.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 *ProjectsLocationsDataStoresGetSiteSearchEngineCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSiteSearchEngine, 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 := &GoogleCloudDiscoveryengineV1alphaSiteSearchEngine{
		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", "discoveryengine.projects.locations.dataStores.getSiteSearchEngine", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all the DataStores associated with the project.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection_id}`. If
//     the caller does not have permission to list DataStores under this
//     location, regardless of whether or not this data store exists, a
//     PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsDataStoresService) List(parent string) *ProjectsLocationsDataStoresListCall {
	c := &ProjectsLocationsDataStoresListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter by solution type . For
// example: `filter = 'solution_type:SOLUTION_TYPE_SEARCH'`
func (c *ProjectsLocationsDataStoresListCall) Filter(filter string) *ProjectsLocationsDataStoresListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// DataStores to return. If unspecified, defaults to 10. The maximum allowed
// value is 50. Values above 50 will be coerced to 50. If this field is
// negative, an INVALID_ARGUMENT is returned.
func (c *ProjectsLocationsDataStoresListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListDataStoresResponse.next_page_token, received from a previous
// DataStoreService.ListDataStores call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// DataStoreService.ListDataStores must match the call that provided the page
// token. Otherwise, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsDataStoresListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresListCall {
	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 *ProjectsLocationsDataStoresListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresListCall {
	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 *ProjectsLocationsDataStoresListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresListCall {
	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 *ProjectsLocationsDataStoresListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresListCall) 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, "v1alpha/{+parent}/dataStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListDataStoresResponse.ServerResponse.Heade
// r 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 *ProjectsLocationsDataStoresListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListDataStoresResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListDataStoresResponse{
		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", "discoveryengine.projects.locations.dataStores.list", "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 *ProjectsLocationsDataStoresListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListDataStoresResponse) 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 ProjectsLocationsDataStoresPatchCall struct {
	s                                          *Service
	name                                       string
	googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Patch: Updates a DataStore
//
//   - name: Immutable. Identifier. The full resource name of the data store.
//     Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}`. This field must be a UTF-8 encoded string with a
//     length limit of 1024 characters.
func (r *ProjectsLocationsDataStoresService) Patch(name string, googleclouddiscoveryenginev1alphadatastore *GoogleCloudDiscoveryengineV1alphaDataStore) *ProjectsLocationsDataStoresPatchCall {
	c := &ProjectsLocationsDataStoresPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadatastore = googleclouddiscoveryenginev1alphadatastore
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided DataStore to update. If an unsupported or unknown field is
// provided, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsDataStoresPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresPatchCall {
	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 *ProjectsLocationsDataStoresPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadatastore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDataStore.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 *ProjectsLocationsDataStoresPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDataStore, 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 := &GoogleCloudDiscoveryengineV1alphaDataStore{
		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", "discoveryengine.projects.locations.dataStores.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall struct {
	s                                                         *Service
	name                                                      string
	googleclouddiscoveryenginev1alphadocumentprocessingconfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig
	urlParams_                                                gensupport.URLParams
	ctx_                                                      context.Context
	header_                                                   http.Header
}

// UpdateDocumentProcessingConfig: Updates the DocumentProcessingConfig.
// DocumentProcessingConfig is a singleon resource of DataStore. It's empty
// when DataStore is created. The first call to this method will set up
// DocumentProcessingConfig.
//
//   - name: The full resource name of the Document Processing Config. Format:
//     `projects/*/locations/*/collections/*/dataStores/*/documentProcessingConfig
//     `.
func (r *ProjectsLocationsDataStoresService) UpdateDocumentProcessingConfig(name string, googleclouddiscoveryenginev1alphadocumentprocessingconfig *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig) *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall {
	c := &ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadocumentprocessingconfig = googleclouddiscoveryenginev1alphadocumentprocessingconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided DocumentProcessingConfig to update. The following are the
// only supported fields: * DocumentProcessingConfig.ocr_config If not set, all
// supported fields are updated.
func (c *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) Context(ctx context.Context) *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall {
	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 *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocumentprocessingconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.updateDocumentProcessingConfig", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.updateDocumentProcessingConfig" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig.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 *ProjectsLocationsDataStoresUpdateDocumentProcessingConfigCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaDocumentProcessingConfig{
		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", "discoveryengine.projects.locations.dataStores.updateDocumentProcessingConfig", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// BatchGetDocumentsMetadata: Gets index freshness metadata for Documents.
// Supported for website search only.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsDataStoresBranchesService) BatchGetDocumentsMetadata(parent string) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c := &ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// MatcherFhirMatcherFhirResources sets the optional parameter
// "matcher.fhirMatcher.fhirResources": Required. The FHIR resources to match
// by. Format:
// projects/{project}/locations/{location}/datasets/{dataset}/fhirStores/{fhir_s
// tore}/fhir/{resource_type}/{fhir_resource_id}
func (c *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) MatcherFhirMatcherFhirResources(matcherFhirMatcherFhirResources ...string) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.urlParams_.SetMulti("matcher.fhirMatcher.fhirResources", append([]string{}, matcherFhirMatcherFhirResources...))
	return c
}

// MatcherUrisMatcherUris sets the optional parameter
// "matcher.urisMatcher.uris": The exact URIs to match by.
func (c *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) MatcherUrisMatcherUris(matcherUrisMatcherUris ...string) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.urlParams_.SetMulti("matcher.urisMatcher.uris", append([]string{}, matcherUrisMatcherUris...))
	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 *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	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 *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall {
	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 *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) 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, "v1alpha/{+parent}/batchGetDocumentsMetadata")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.batchGetDocumentsMetadata", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.batchGetDocumentsMetadata" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse.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 *ProjectsLocationsDataStoresBranchesBatchGetDocumentsMetadataCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse, 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 := &GoogleCloudDiscoveryengineV1alphaBatchGetDocumentsMetadataResponse{
		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", "discoveryengine.projects.locations.dataStores.branches.batchGetDocumentsMetadata", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Retrieves a Branch.
//
//   - name: The name of the branch to retrieve. Format:
//     `projects/*/locations/global/dataStores/default_data_store/branches/some_br
//     anch_id`. "default_branch" can be used as a special branch_id, it returns
//     the default branch that has been set for the document.
func (r *ProjectsLocationsDataStoresBranchesService) Get(name string) *ProjectsLocationsDataStoresBranchesGetCall {
	c := &ProjectsLocationsDataStoresBranchesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// View sets the optional parameter "view": The view to apply to the returned
// Branch. Defaults to Branch.BranchView.BASIC if unspecified.
//
// Possible values:
//
//	"BRANCH_VIEW_UNSPECIFIED" - The value when it's unspecified. This defaults
//
// to the BASIC view.
//
//	"BRANCH_VIEW_BASIC" - Includes basic metadata about the branch, but not
//
// statistical fields. See documentation of individual fields of Branch to know
// what is excluded.
//
//	"BRANCH_VIEW_FULL" - Includes all fields of a Branch.
func (c *ProjectsLocationsDataStoresBranchesGetCall) View(view string) *ProjectsLocationsDataStoresBranchesGetCall {
	c.urlParams_.Set("view", view)
	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 *ProjectsLocationsDataStoresBranchesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesGetCall {
	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 *ProjectsLocationsDataStoresBranchesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesGetCall {
	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 *ProjectsLocationsDataStoresBranchesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaBranch.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 *ProjectsLocationsDataStoresBranchesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaBranch, 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 := &GoogleCloudDiscoveryengineV1alphaBranch{
		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", "discoveryengine.projects.locations.dataStores.branches.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Branchs under the specified parent DataStore.
//
// - parent: The parent data store resource name.
func (r *ProjectsLocationsDataStoresBranchesService) List(parent string) *ProjectsLocationsDataStoresBranchesListCall {
	c := &ProjectsLocationsDataStoresBranchesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// View sets the optional parameter "view": The view to apply to the returned
// Branch. Defaults to Branch.BranchView.BASIC if unspecified.
//
// Possible values:
//
//	"BRANCH_VIEW_UNSPECIFIED" - The value when it's unspecified. This defaults
//
// to the BASIC view.
//
//	"BRANCH_VIEW_BASIC" - Includes basic metadata about the branch, but not
//
// statistical fields. See documentation of individual fields of Branch to know
// what is excluded.
//
//	"BRANCH_VIEW_FULL" - Includes all fields of a Branch.
func (c *ProjectsLocationsDataStoresBranchesListCall) View(view string) *ProjectsLocationsDataStoresBranchesListCall {
	c.urlParams_.Set("view", view)
	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 *ProjectsLocationsDataStoresBranchesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesListCall {
	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 *ProjectsLocationsDataStoresBranchesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesListCall {
	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 *ProjectsLocationsDataStoresBranchesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesListCall) 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, "v1alpha/{+parent}/branches")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListBranchesResponse.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 *ProjectsLocationsDataStoresBranchesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListBranchesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListBranchesResponse{
		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", "discoveryengine.projects.locations.dataStores.branches.list", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsCreateCall struct {
	s                                         *Service
	parent                                    string
	googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Create: Creates a Document.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Create(parent string, googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument) *ProjectsLocationsDataStoresBranchesDocumentsCreateCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphadocument = googleclouddiscoveryenginev1alphadocument
	return c
}

// DocumentId sets the optional parameter "documentId": Required. The ID to use
// for the Document, which becomes the final component of the Document.name. If
// the caller does not have permission to create the Document, regardless of
// whether or not it exists, a `PERMISSION_DENIED` error is returned. This
// field must be unique among all Documents with the same parent. Otherwise, an
// `ALREADY_EXISTS` error is returned. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 128
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) DocumentId(documentId string) *ProjectsLocationsDataStoresBranchesDocumentsCreateCall {
	c.urlParams_.Set("documentId", documentId)
	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 *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsCreateCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocument)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsDataStoresBranchesDocumentsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to delete the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the Document to
//     delete does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Delete(name string) *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsDataStoresBranchesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to access the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the requested
//     Document does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Get(name string) *ProjectsLocationsDataStoresBranchesDocumentsGetCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsGetCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesDocumentsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsGetCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsDataStoresBranchesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetProcessedDocument: Gets the parsed layout information for a Document.
//
//   - name: Full resource name of Document, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to access the Document, regardless of whether or not
//     it exists, a `PERMISSION_DENIED` error is returned. If the requested
//     Document does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) GetProcessedDocument(name string) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// ImageId sets the optional parameter "imageId": Specifies config for
// IMAGE_BYTES.
func (c *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) ImageId(imageId string) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("imageId", imageId)
	return c
}

// ProcessedDocumentFormat sets the optional parameter
// "processedDocumentFormat": What format output should be. If unspecified,
// defaults to JSON.
//
// Possible values:
//
//	"PROCESSED_DOCUMENT_FORMAT_UNSPECIFIED" - Default value.
//	"JSON" - Output format is a JSON string representation of processed
//
// document.
func (c *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) ProcessedDocumentFormat(processedDocumentFormat string) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("processedDocumentFormat", processedDocumentFormat)
	return c
}

// ProcessedDocumentType sets the optional parameter "processedDocumentType":
// Required. What type of processing to return.
//
// Possible values:
//
//	"PROCESSED_DOCUMENT_TYPE_UNSPECIFIED" - Default value.
//	"PARSED_DOCUMENT" - Available for all data store parsing configs.
//	"CHUNKED_DOCUMENT" - Only available if ChunkingConfig is enabled on the
//
// data store.
//
//	"IMAGE_CONVERTED_DOCUMENT" - Returns the converted Image bytes (as JPEG or
//
// PNG) if available.
//
//	"IMAGE_BYTES" - Return image bytes in base64 encoded format if image_id of
//
// a document is provided, only supported for enabling shareholder-structure in
// layout parsing config for now.
func (c *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) ProcessedDocumentType(processedDocumentType string) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.urlParams_.Set("processedDocumentType", processedDocumentType)
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) 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, "v1alpha/{+name}:getProcessedDocument")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.getProcessedDocument", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.getProcessedDocument" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaProcessedDocument.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 *ProjectsLocationsDataStoresBranchesDocumentsGetProcessedDocumentCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaProcessedDocument, 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 := &GoogleCloudDiscoveryengineV1alphaProcessedDocument{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.getProcessedDocument", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsImportCall struct {
	s                                                       *Service
	parent                                                  string
	googleclouddiscoveryenginev1alphaimportdocumentsrequest *GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Import: Bulk import of multiple Documents. Request processing may be
// synchronous. Non-existing items are created. Note: It is possible for a
// subset of the Documents to be successfully updated.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`. Requires create/update permission.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Import(parent string, googleclouddiscoveryenginev1alphaimportdocumentsrequest *GoogleCloudDiscoveryengineV1alphaImportDocumentsRequest) *ProjectsLocationsDataStoresBranchesDocumentsImportCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportdocumentsrequest = googleclouddiscoveryenginev1alphaimportdocumentsrequest
	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 *ProjectsLocationsDataStoresBranchesDocumentsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsImportCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsImportCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportdocumentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresBranchesDocumentsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Documents.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`. Use `default_branch` as the branch ID,
//     to list documents under the default branch. If the caller does not have
//     permission to list Documents under this branch, regardless of whether or
//     not this branch exists, a `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) List(parent string) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of Documents
// to return. If unspecified, defaults to 100. The maximum allowed value is
// 1000. Values above 1000 are set to 1000. If this field is negative, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresBranchesDocumentsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListDocumentsResponse.next_page_token, received from a previous
// DocumentService.ListDocuments call. Provide this to retrieve the subsequent
// page. When paginating, all other parameters provided to
// DocumentService.ListDocuments must match the call that provided the page
// token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresBranchesDocumentsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsListCall) 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, "v1alpha/{+parent}/documents")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListDocumentsResponse.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 *ProjectsLocationsDataStoresBranchesDocumentsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListDocumentsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListDocumentsResponse{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.list", "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 *ProjectsLocationsDataStoresBranchesDocumentsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListDocumentsResponse) 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 ProjectsLocationsDataStoresBranchesDocumentsPatchCall struct {
	s                                         *Service
	name                                      string
	googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument
	urlParams_                                gensupport.URLParams
	ctx_                                      context.Context
	header_                                   http.Header
}

// Patch: Updates a Document.
//
//   - name: Immutable. The full resource name of the document. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document_id}`. This field must
//     be a UTF-8 encoded string with a length limit of 1024 characters.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Patch(name string, googleclouddiscoveryenginev1alphadocument *GoogleCloudDiscoveryengineV1alphaDocument) *ProjectsLocationsDataStoresBranchesDocumentsPatchCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphadocument = googleclouddiscoveryenginev1alphadocument
	return c
}

// AllowMissing sets the optional parameter "allowMissing": If set to `true`
// and the Document is not found, a new Document is be created.
func (c *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided imported 'document' to update. If not set, by default
// updates all fields.
func (c *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsPatchCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadocument)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaDocument.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 *ProjectsLocationsDataStoresBranchesDocumentsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaDocument, 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 := &GoogleCloudDiscoveryengineV1alphaDocument{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsPurgeCall struct {
	s                                                      *Service
	parent                                                 string
	googleclouddiscoveryenginev1alphapurgedocumentsrequest *GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// Purge: Permanently deletes all selected Documents in a branch. This process
// is asynchronous. Depending on the number of Documents to be deleted, this
// operation can take hours to complete. Before the delete operation completes,
// some Documents might still be returned by DocumentService.GetDocument or
// DocumentService.ListDocuments. To get a list of the Documents to be deleted,
// set PurgeDocumentsRequest.force to false.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}`.
func (r *ProjectsLocationsDataStoresBranchesDocumentsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgedocumentsrequest *GoogleCloudDiscoveryengineV1alphaPurgeDocumentsRequest) *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgedocumentsrequest = googleclouddiscoveryenginev1alphapurgedocumentsrequest
	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 *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgedocumentsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/documents:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresBranchesDocumentsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Document.
//
//   - name: Full resource name of Chunk, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}/chunks/{chunk}`. If
//     the caller does not have permission to access the Chunk, regardless of
//     whether or not it exists, a `PERMISSION_DENIED` error is returned. If the
//     requested Chunk does not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsChunksService) Get(name string) *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.chunks.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.chunks.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaChunk.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 *ProjectsLocationsDataStoresBranchesDocumentsChunksGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaChunk, 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 := &GoogleCloudDiscoveryengineV1alphaChunk{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.chunks.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesDocumentsChunksListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Chunks.
//
//   - parent: The parent document resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/branches/{branch}/documents/{document}`. If the caller does
//     not have permission to list Chunks under this document, regardless of
//     whether or not this document exists, a `PERMISSION_DENIED` error is
//     returned.
func (r *ProjectsLocationsDataStoresBranchesDocumentsChunksService) List(parent string) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	c := &ProjectsLocationsDataStoresBranchesDocumentsChunksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of Chunks to
// return. If unspecified, defaults to 100. The maximum allowed value is 1000.
// Values above 1000 will be coerced to 1000. If this field is negative, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListChunksResponse.next_page_token, received from a previous
// ChunkService.ListChunks call. Provide this to retrieve the subsequent page.
// When paginating, all other parameters provided to ChunkService.ListChunks
// must match the call that provided the page token. Otherwise, an
// `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall {
	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 *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) 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, "v1alpha/{+parent}/chunks")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.documents.chunks.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.documents.chunks.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListChunksResponse.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 *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListChunksResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListChunksResponse{
		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", "discoveryengine.projects.locations.dataStores.branches.documents.chunks.list", "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 *ProjectsLocationsDataStoresBranchesDocumentsChunksListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListChunksResponse) 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 ProjectsLocationsDataStoresBranchesOperationsCancelCall struct {
	s                                       *Service
	name                                    string
	googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Cancel: Starts asynchronous cancellation on a long-running operation. The
// server makes a best effort to cancel the operation, but success is not
// guaranteed. If the server doesn't support this method, it returns
// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
// other methods to check whether the cancellation succeeded or whether the
// operation completed despite cancellation. On successful cancellation, the
// operation is not deleted; instead, it becomes an operation with an
// Operation.error value with a google.rpc.Status.code of `1`, corresponding to
// `Code.CANCELLED`.
//
// - name: The name of the operation resource to be cancelled.
func (r *ProjectsLocationsDataStoresBranchesOperationsService) Cancel(name string, googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest) *ProjectsLocationsDataStoresBranchesOperationsCancelCall {
	c := &ProjectsLocationsDataStoresBranchesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlelongrunningcanceloperationrequest = googlelongrunningcanceloperationrequest
	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 *ProjectsLocationsDataStoresBranchesOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesOperationsCancelCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesOperationsCancelCall {
	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 *ProjectsLocationsDataStoresBranchesOperationsCancelCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlelongrunningcanceloperationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:cancel")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.operations.cancel", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.operations.cancel" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsDataStoresBranchesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.dataStores.branches.operations.cancel", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsDataStoresBranchesOperationsService) Get(name string) *ProjectsLocationsDataStoresBranchesOperationsGetCall {
	c := &ProjectsLocationsDataStoresBranchesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresBranchesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesOperationsGetCall {
	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 *ProjectsLocationsDataStoresBranchesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesOperationsGetCall {
	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 *ProjectsLocationsDataStoresBranchesOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresBranchesOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.branches.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresBranchesOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsDataStoresBranchesOperationsService) List(name string) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c := &ProjectsLocationsDataStoresBranchesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) Filter(filter string) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsDataStoresBranchesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	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 *ProjectsLocationsDataStoresBranchesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresBranchesOperationsListCall {
	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 *ProjectsLocationsDataStoresBranchesOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresBranchesOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.branches.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.branches.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsDataStoresBranchesOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.dataStores.branches.operations.list", "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 *ProjectsLocationsDataStoresBranchesOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall struct {
	s                                                             *Service
	completionConfig                                              string
	googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// CompleteQuery: Completes the user input with advanced keyword suggestions.
//
//   - completionConfig: The completion_config of the parent dataStore or engine
//     resource name for which the completion is performed, such as
//     `projects/*/locations/global/collections/default_collection/dataStores/*/co
//     mpletionConfig`
//     `projects/*/locations/global/collections/default_collection/engines/*/compl
//     etionConfig`.
func (r *ProjectsLocationsDataStoresCompletionConfigService) CompleteQuery(completionConfig string, googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryRequest) *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall {
	c := &ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.completionConfig = completionConfig
	c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest = googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest
	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 *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall) Context(ctx context.Context) *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall {
	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 *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaadvancedcompletequeryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+completionConfig}:completeQuery")
	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{
		"completionConfig": c.completionConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.completionConfig.completeQuery", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.completionConfig.completeQuery" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse.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 *ProjectsLocationsDataStoresCompletionConfigCompleteQueryCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAdvancedCompleteQueryResponse{
		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", "discoveryengine.projects.locations.dataStores.completionConfig.completeQuery", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresCompletionSuggestionsImportCall struct {
	s                                                                   *Service
	parent                                                              string
	googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest
	urlParams_                                                          gensupport.URLParams
	ctx_                                                                context.Context
	header_                                                             http.Header
}

// Import: Imports CompletionSuggestions for a DataStore.
//
//   - parent: The parent data store resource name for which to import customer
//     autocomplete suggestions. Follows pattern
//     `projects/*/locations/*/collections/*/dataStores/*`.
func (r *ProjectsLocationsDataStoresCompletionSuggestionsService) Import(parent string, googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaImportCompletionSuggestionsRequest) *ProjectsLocationsDataStoresCompletionSuggestionsImportCall {
	c := &ProjectsLocationsDataStoresCompletionSuggestionsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest = googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest
	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 *ProjectsLocationsDataStoresCompletionSuggestionsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresCompletionSuggestionsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresCompletionSuggestionsImportCall) Context(ctx context.Context) *ProjectsLocationsDataStoresCompletionSuggestionsImportCall {
	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 *ProjectsLocationsDataStoresCompletionSuggestionsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresCompletionSuggestionsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportcompletionsuggestionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/completionSuggestions:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.completionSuggestions.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.completionSuggestions.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresCompletionSuggestionsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.completionSuggestions.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall struct {
	s                                                                  *Service
	parent                                                             string
	googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest
	urlParams_                                                         gensupport.URLParams
	ctx_                                                               context.Context
	header_                                                            http.Header
}

// Purge: Permanently deletes all CompletionSuggestions for a DataStore.
//
//   - parent: The parent data store resource name for which to purge completion
//     suggestions. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsDataStoresCompletionSuggestionsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest *GoogleCloudDiscoveryengineV1alphaPurgeCompletionSuggestionsRequest) *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall {
	c := &ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest = googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest
	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 *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall) Context(ctx context.Context) *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall {
	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 *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgecompletionsuggestionsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/completionSuggestions:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.completionSuggestions.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.completionSuggestions.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresCompletionSuggestionsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.completionSuggestions.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresControlsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Control. By default 1000 controls are allowed for a data
// store. A request can be submitted to adjust this limit. If the Control to
// create already exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsDataStoresControlsService) Create(parent string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsDataStoresControlsCreateCall {
	c := &ProjectsLocationsDataStoresControlsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// ControlId sets the optional parameter "controlId": Required. The ID to use
// for the Control, which will become the final component of the Control's
// resource name. This value must be within 1-63 characters. Valid characters
// are /a-z-_/.
func (c *ProjectsLocationsDataStoresControlsCreateCall) ControlId(controlId string) *ProjectsLocationsDataStoresControlsCreateCall {
	c.urlParams_.Set("controlId", controlId)
	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 *ProjectsLocationsDataStoresControlsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresControlsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresControlsCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresControlsCreateCall {
	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 *ProjectsLocationsDataStoresControlsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresControlsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.controls.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.controls.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsDataStoresControlsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.dataStores.controls.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresControlsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Control. If the Control to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Control to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsDataStoresControlsService) Delete(name string) *ProjectsLocationsDataStoresControlsDeleteCall {
	c := &ProjectsLocationsDataStoresControlsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresControlsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresControlsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresControlsDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresControlsDeleteCall {
	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 *ProjectsLocationsDataStoresControlsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresControlsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.controls.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.controls.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsDataStoresControlsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.dataStores.controls.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresControlsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Control.
//
//   - name: The resource name of the Control to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/controls/{control_id}`.
func (r *ProjectsLocationsDataStoresControlsService) Get(name string) *ProjectsLocationsDataStoresControlsGetCall {
	c := &ProjectsLocationsDataStoresControlsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresControlsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresControlsGetCall {
	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 *ProjectsLocationsDataStoresControlsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresControlsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresControlsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresControlsGetCall {
	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 *ProjectsLocationsDataStoresControlsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresControlsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.controls.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.controls.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsDataStoresControlsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.dataStores.controls.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresControlsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Controls by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}` or
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}`.
func (r *ProjectsLocationsDataStoresControlsService) List(parent string) *ProjectsLocationsDataStoresControlsListCall {
	c := &ProjectsLocationsDataStoresControlsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. Supported features: * List all the products under the parent branch
// if filter is unset. Currently this field is unsupported.
func (c *ProjectsLocationsDataStoresControlsListCall) Filter(filter string) *ProjectsLocationsDataStoresControlsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsDataStoresControlsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresControlsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListControls` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsDataStoresControlsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresControlsListCall {
	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 *ProjectsLocationsDataStoresControlsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresControlsListCall {
	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 *ProjectsLocationsDataStoresControlsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresControlsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresControlsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresControlsListCall {
	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 *ProjectsLocationsDataStoresControlsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresControlsListCall) 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, "v1alpha/{+parent}/controls")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.controls.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.controls.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListControlsResponse.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 *ProjectsLocationsDataStoresControlsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListControlsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListControlsResponse{
		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", "discoveryengine.projects.locations.dataStores.controls.list", "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 *ProjectsLocationsDataStoresControlsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListControlsResponse) 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 ProjectsLocationsDataStoresControlsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Control. Control action type cannot be changed. If the
// Control to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/*/locations/global/dataStore/*/controls/*`.
func (r *ProjectsLocationsDataStoresControlsService) Patch(name string, googleclouddiscoveryenginev1alphacontrol *GoogleCloudDiscoveryengineV1alphaControl) *ProjectsLocationsDataStoresControlsPatchCall {
	c := &ProjectsLocationsDataStoresControlsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphacontrol = googleclouddiscoveryenginev1alphacontrol
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Control to update. The following are NOT supported: *
// Control.name * Control.solution_type If not set or empty, all supported
// fields are updated.
func (c *ProjectsLocationsDataStoresControlsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresControlsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresControlsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresControlsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresControlsPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresControlsPatchCall {
	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 *ProjectsLocationsDataStoresControlsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresControlsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacontrol)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.controls.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.controls.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaControl.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 *ProjectsLocationsDataStoresControlsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaControl, 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 := &GoogleCloudDiscoveryengineV1alphaControl{
		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", "discoveryengine.projects.locations.dataStores.controls.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresConversationsConverseCall struct {
	s                                                            *Service
	name                                                         string
	googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest
	urlParams_                                                   gensupport.URLParams
	ctx_                                                         context.Context
	header_                                                      http.Header
}

// Converse: Converses a conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`. Use
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/-` to activate auto session mode, which
//     automatically creates a new conversation inside a ConverseConversation
//     session.
func (r *ProjectsLocationsDataStoresConversationsService) Converse(name string, googleclouddiscoveryenginev1alphaconverseconversationrequest *GoogleCloudDiscoveryengineV1alphaConverseConversationRequest) *ProjectsLocationsDataStoresConversationsConverseCall {
	c := &ProjectsLocationsDataStoresConversationsConverseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconverseconversationrequest = googleclouddiscoveryenginev1alphaconverseconversationrequest
	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 *ProjectsLocationsDataStoresConversationsConverseCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsConverseCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsConverseCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsConverseCall {
	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 *ProjectsLocationsDataStoresConversationsConverseCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsConverseCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconverseconversationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:converse")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.converse", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.converse" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConverseConversationResponse.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 *ProjectsLocationsDataStoresConversationsConverseCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConverseConversationResponse, 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 := &GoogleCloudDiscoveryengineV1alphaConverseConversationResponse{
		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", "discoveryengine.projects.locations.dataStores.conversations.converse", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresConversationsCreateCall struct {
	s                                             *Service
	parent                                        string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Create: Creates a Conversation. If the Conversation to create already
// exists, an ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsDataStoresConversationsService) Create(parent string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsDataStoresConversationsCreateCall {
	c := &ProjectsLocationsDataStoresConversationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	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 *ProjectsLocationsDataStoresConversationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsCreateCall {
	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 *ProjectsLocationsDataStoresConversationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsDataStoresConversationsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.dataStores.conversations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresConversationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Conversation. If the Conversation to delete does not
// exist, a NOT_FOUND error is returned.
//
//   - name: The resource name of the Conversation to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsDataStoresConversationsService) Delete(name string) *ProjectsLocationsDataStoresConversationsDeleteCall {
	c := &ProjectsLocationsDataStoresConversationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresConversationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsDeleteCall {
	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 *ProjectsLocationsDataStoresConversationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsDataStoresConversationsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.dataStores.conversations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresConversationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Conversation.
//
//   - name: The resource name of the Conversation to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/conversations/{conversation_id}`.
func (r *ProjectsLocationsDataStoresConversationsService) Get(name string) *ProjectsLocationsDataStoresConversationsGetCall {
	c := &ProjectsLocationsDataStoresConversationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresConversationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsGetCall {
	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 *ProjectsLocationsDataStoresConversationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresConversationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsGetCall {
	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 *ProjectsLocationsDataStoresConversationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsDataStoresConversationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.dataStores.conversations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresConversationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Conversations by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsDataStoresConversationsService) List(parent string) *ProjectsLocationsDataStoresConversationsListCall {
	c := &ProjectsLocationsDataStoresConversationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A filter to apply on the list
// results. The supported features are: user_pseudo_id, state. Example:
// "user_pseudo_id = some_id"
func (c *ProjectsLocationsDataStoresConversationsListCall) Filter(filter string) *ProjectsLocationsDataStoresConversationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `conversation_name` Example: "update_time desc" "create_time"
func (c *ProjectsLocationsDataStoresConversationsListCall) OrderBy(orderBy string) *ProjectsLocationsDataStoresConversationsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsDataStoresConversationsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresConversationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListConversations` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsDataStoresConversationsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresConversationsListCall {
	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 *ProjectsLocationsDataStoresConversationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsListCall {
	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 *ProjectsLocationsDataStoresConversationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresConversationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsListCall {
	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 *ProjectsLocationsDataStoresConversationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsListCall) 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, "v1alpha/{+parent}/conversations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListConversationsResponse.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 *ProjectsLocationsDataStoresConversationsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListConversationsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListConversationsResponse{
		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", "discoveryengine.projects.locations.dataStores.conversations.list", "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 *ProjectsLocationsDataStoresConversationsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListConversationsResponse) 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 ProjectsLocationsDataStoresConversationsPatchCall struct {
	s                                             *Service
	name                                          string
	googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation
	urlParams_                                    gensupport.URLParams
	ctx_                                          context.Context
	header_                                       http.Header
}

// Patch: Updates a Conversation. Conversation action type cannot be changed.
// If the Conversation to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/dataStore/*/c
//     onversations/*` or
//     `projects/{project}/locations/global/collections/{collection}/engines/*/con
//     versations/*`.
func (r *ProjectsLocationsDataStoresConversationsService) Patch(name string, googleclouddiscoveryenginev1alphaconversation *GoogleCloudDiscoveryengineV1alphaConversation) *ProjectsLocationsDataStoresConversationsPatchCall {
	c := &ProjectsLocationsDataStoresConversationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaconversation = googleclouddiscoveryenginev1alphaconversation
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Conversation to update. The following are NOT supported: *
// Conversation.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsDataStoresConversationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresConversationsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresConversationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresConversationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresConversationsPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresConversationsPatchCall {
	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 *ProjectsLocationsDataStoresConversationsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresConversationsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaconversation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.conversations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.conversations.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaConversation.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 *ProjectsLocationsDataStoresConversationsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaConversation, 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 := &GoogleCloudDiscoveryengineV1alphaConversation{
		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", "discoveryengine.projects.locations.dataStores.conversations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresModelsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsDataStoresModelsOperationsService) Get(name string) *ProjectsLocationsDataStoresModelsOperationsGetCall {
	c := &ProjectsLocationsDataStoresModelsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresModelsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresModelsOperationsGetCall {
	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 *ProjectsLocationsDataStoresModelsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresModelsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresModelsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresModelsOperationsGetCall {
	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 *ProjectsLocationsDataStoresModelsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresModelsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.models.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.models.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresModelsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.models.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresModelsOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsDataStoresModelsOperationsService) List(name string) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c := &ProjectsLocationsDataStoresModelsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsDataStoresModelsOperationsListCall) Filter(filter string) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsDataStoresModelsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsDataStoresModelsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsDataStoresModelsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsDataStoresModelsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresModelsOperationsListCall {
	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 *ProjectsLocationsDataStoresModelsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresModelsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresModelsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresModelsOperationsListCall {
	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 *ProjectsLocationsDataStoresModelsOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresModelsOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.models.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.models.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsDataStoresModelsOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.dataStores.models.operations.list", "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 *ProjectsLocationsDataStoresModelsOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsDataStoresOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsDataStoresOperationsService) Get(name string) *ProjectsLocationsDataStoresOperationsGetCall {
	c := &ProjectsLocationsDataStoresOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresOperationsGetCall {
	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 *ProjectsLocationsDataStoresOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresOperationsGetCall {
	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 *ProjectsLocationsDataStoresOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsDataStoresOperationsService) List(name string) *ProjectsLocationsDataStoresOperationsListCall {
	c := &ProjectsLocationsDataStoresOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsDataStoresOperationsListCall) Filter(filter string) *ProjectsLocationsDataStoresOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsDataStoresOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsDataStoresOperationsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsDataStoresOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsDataStoresOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsDataStoresOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresOperationsListCall {
	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 *ProjectsLocationsDataStoresOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresOperationsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresOperationsListCall {
	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 *ProjectsLocationsDataStoresOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsDataStoresOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.dataStores.operations.list", "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 *ProjectsLocationsDataStoresOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsDataStoresSchemasCreateCall struct {
	s                                       *Service
	parent                                  string
	googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Create: Creates a Schema.
//
//   - parent: The parent data store resource name, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsDataStoresSchemasService) Create(parent string, googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema) *ProjectsLocationsDataStoresSchemasCreateCall {
	c := &ProjectsLocationsDataStoresSchemasCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaschema = googleclouddiscoveryenginev1alphaschema
	return c
}

// SchemaId sets the optional parameter "schemaId": Required. The ID to use for
// the Schema, which becomes the final component of the Schema.name. This field
// should conform to RFC-1034 (https://tools.ietf.org/html/rfc1034) standard
// with a length limit of 63 characters.
func (c *ProjectsLocationsDataStoresSchemasCreateCall) SchemaId(schemaId string) *ProjectsLocationsDataStoresSchemasCreateCall {
	c.urlParams_.Set("schemaId", schemaId)
	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 *ProjectsLocationsDataStoresSchemasCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSchemasCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSchemasCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSchemasCreateCall {
	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 *ProjectsLocationsDataStoresSchemasCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSchemasCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaschema)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/schemas")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.schemas.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.schemas.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSchemasCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.schemas.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSchemasDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Schema.
//
//   - name: The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`.
func (r *ProjectsLocationsDataStoresSchemasService) Delete(name string) *ProjectsLocationsDataStoresSchemasDeleteCall {
	c := &ProjectsLocationsDataStoresSchemasDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSchemasDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSchemasDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSchemasDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSchemasDeleteCall {
	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 *ProjectsLocationsDataStoresSchemasDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSchemasDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.schemas.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.schemas.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSchemasDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.schemas.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSchemasGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Schema.
//
//   - name: The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`.
func (r *ProjectsLocationsDataStoresSchemasService) Get(name string) *ProjectsLocationsDataStoresSchemasGetCall {
	c := &ProjectsLocationsDataStoresSchemasGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSchemasGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSchemasGetCall {
	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 *ProjectsLocationsDataStoresSchemasGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSchemasGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSchemasGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSchemasGetCall {
	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 *ProjectsLocationsDataStoresSchemasGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSchemasGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.schemas.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.schemas.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSchema.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 *ProjectsLocationsDataStoresSchemasGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSchema, 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 := &GoogleCloudDiscoveryengineV1alphaSchema{
		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", "discoveryengine.projects.locations.dataStores.schemas.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSchemasListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Schemas.
//
//   - parent: The parent data store resource name, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsDataStoresSchemasService) List(parent string) *ProjectsLocationsDataStoresSchemasListCall {
	c := &ProjectsLocationsDataStoresSchemasListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// Schemas to return. The service may return fewer than this value. If
// unspecified, at most 100 Schemas are returned. The maximum value is 1000;
// values above 1000 are set to 1000.
func (c *ProjectsLocationsDataStoresSchemasListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresSchemasListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous SchemaService.ListSchemas call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// SchemaService.ListSchemas must match the call that provided the page token.
func (c *ProjectsLocationsDataStoresSchemasListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresSchemasListCall {
	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 *ProjectsLocationsDataStoresSchemasListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSchemasListCall {
	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 *ProjectsLocationsDataStoresSchemasListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSchemasListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSchemasListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSchemasListCall {
	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 *ProjectsLocationsDataStoresSchemasListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSchemasListCall) 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, "v1alpha/{+parent}/schemas")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.schemas.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.schemas.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSchemasResponse.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 *ProjectsLocationsDataStoresSchemasListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSchemasResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSchemasResponse{
		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", "discoveryengine.projects.locations.dataStores.schemas.list", "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 *ProjectsLocationsDataStoresSchemasListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSchemasResponse) 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 ProjectsLocationsDataStoresSchemasPatchCall struct {
	s                                       *Service
	name                                    string
	googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema
	urlParams_                              gensupport.URLParams
	ctx_                                    context.Context
	header_                                 http.Header
}

// Patch: Updates a Schema.
//
//   - name: Immutable. The full resource name of the schema, in the format of
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/schemas/{schema}`. This field must be a UTF-8 encoded
//     string with a length limit of 1024 characters.
func (r *ProjectsLocationsDataStoresSchemasService) Patch(name string, googleclouddiscoveryenginev1alphaschema *GoogleCloudDiscoveryengineV1alphaSchema) *ProjectsLocationsDataStoresSchemasPatchCall {
	c := &ProjectsLocationsDataStoresSchemasPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaschema = googleclouddiscoveryenginev1alphaschema
	return c
}

// AllowMissing sets the optional parameter "allowMissing": If set to true, and
// the Schema is not found, a new Schema is created. In this situation,
// `update_mask` is ignored.
func (c *ProjectsLocationsDataStoresSchemasPatchCall) AllowMissing(allowMissing bool) *ProjectsLocationsDataStoresSchemasPatchCall {
	c.urlParams_.Set("allowMissing", fmt.Sprint(allowMissing))
	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 *ProjectsLocationsDataStoresSchemasPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSchemasPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSchemasPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSchemasPatchCall {
	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 *ProjectsLocationsDataStoresSchemasPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSchemasPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaschema)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.schemas.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.schemas.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSchemasPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.schemas.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresServingConfigsAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// Answer: Answer query method.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsDataStoresServingConfigsService) Answer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsDataStoresServingConfigsAnswerCall {
	c := &ProjectsLocationsDataStoresServingConfigsAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsDataStoresServingConfigsAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsAnswerCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsAnswerCall {
	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 *ProjectsLocationsDataStoresServingConfigsAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:answer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.answer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.answer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsDataStoresServingConfigsAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.answer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresServingConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a ServingConfig. Returns a NotFound error if the ServingConfig
// does not exist.
//
//   - name: The resource name of the ServingConfig to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsDataStoresServingConfigsService) Get(name string) *ProjectsLocationsDataStoresServingConfigsGetCall {
	c := &ProjectsLocationsDataStoresServingConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresServingConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsGetCall {
	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 *ProjectsLocationsDataStoresServingConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresServingConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsGetCall {
	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 *ProjectsLocationsDataStoresServingConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsDataStoresServingConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresServingConfigsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all ServingConfigs linked to this dataStore.
//
//   - parent: Full resource name of the parent resource. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine}`.
func (r *ProjectsLocationsDataStoresServingConfigsService) List(parent string) *ProjectsLocationsDataStoresServingConfigsListCall {
	c := &ProjectsLocationsDataStoresServingConfigsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 100. If a value greater than 100 is
// provided, at most 100 results are returned.
func (c *ProjectsLocationsDataStoresServingConfigsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresServingConfigsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListServingConfigs` call. Provide this to retrieve the
// subsequent page.
func (c *ProjectsLocationsDataStoresServingConfigsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsDataStoresServingConfigsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsDataStoresServingConfigsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresServingConfigsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsListCall {
	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 *ProjectsLocationsDataStoresServingConfigsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsListCall) 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, "v1alpha/{+parent}/servingConfigs")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse.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 *ProjectsLocationsDataStoresServingConfigsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.list", "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 *ProjectsLocationsDataStoresServingConfigsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListServingConfigsResponse) 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 ProjectsLocationsDataStoresServingConfigsPatchCall struct {
	s                                              *Service
	name                                           string
	googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Patch: Updates a ServingConfig. Returns a NOT_FOUND error if the
// ServingConfig does not exist.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/{location}/collections/{collection_id}/engine
//     s/{engine_id}/servingConfigs/{serving_config_id}`.
func (r *ProjectsLocationsDataStoresServingConfigsService) Patch(name string, googleclouddiscoveryenginev1alphaservingconfig *GoogleCloudDiscoveryengineV1alphaServingConfig) *ProjectsLocationsDataStoresServingConfigsPatchCall {
	c := &ProjectsLocationsDataStoresServingConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphaservingconfig = googleclouddiscoveryenginev1alphaservingconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided ServingConfig to update. The following are NOT supported: *
// ServingConfig.name If not set, all supported fields are updated.
func (c *ProjectsLocationsDataStoresServingConfigsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresServingConfigsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresServingConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsPatchCall {
	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 *ProjectsLocationsDataStoresServingConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaservingconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaServingConfig.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 *ProjectsLocationsDataStoresServingConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaServingConfig, 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 := &GoogleCloudDiscoveryengineV1alphaServingConfig{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresServingConfigsRecommendCall struct {
	s                                                 *Service
	servingConfig                                     string
	googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest
	urlParams_                                        gensupport.URLParams
	ctx_                                              context.Context
	header_                                           http.Header
}

// Recommend: Makes a recommendation, which requires a contextual user event.
//
//   - servingConfig: Full resource name of a ServingConfig:
//     `projects/*/locations/global/collections/*/engines/*/servingConfigs/*`, or
//     `projects/*/locations/global/collections/*/dataStores/*/servingConfigs/*`
//     One default serving config is created along with your recommendation
//     engine creation. The engine ID is used as the ID of the default serving
//     config. For example, for Engine
//     `projects/*/locations/global/collections/*/engines/my-engine`, you can use
//     `projects/*/locations/global/collections/*/engines/my-engine/servingConfigs
//     /my-engine` for your RecommendationService.Recommend requests.
func (r *ProjectsLocationsDataStoresServingConfigsService) Recommend(servingConfig string, googleclouddiscoveryenginev1alpharecommendrequest *GoogleCloudDiscoveryengineV1alphaRecommendRequest) *ProjectsLocationsDataStoresServingConfigsRecommendCall {
	c := &ProjectsLocationsDataStoresServingConfigsRecommendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alpharecommendrequest = googleclouddiscoveryenginev1alpharecommendrequest
	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 *ProjectsLocationsDataStoresServingConfigsRecommendCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsRecommendCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsRecommendCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsRecommendCall {
	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 *ProjectsLocationsDataStoresServingConfigsRecommendCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsRecommendCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharecommendrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:recommend")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.recommend", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.recommend" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaRecommendResponse.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 *ProjectsLocationsDataStoresServingConfigsRecommendCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaRecommendResponse, 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 := &GoogleCloudDiscoveryengineV1alphaRecommendResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.recommend", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresServingConfigsSearchCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Search: Performs a search.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsDataStoresServingConfigsService) Search(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsDataStoresServingConfigsSearchCall {
	c := &ProjectsLocationsDataStoresServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsDataStoresServingConfigsSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsSearchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsSearchCall {
	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 *ProjectsLocationsDataStoresServingConfigsSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}: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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.search", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.search" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsDataStoresServingConfigsSearchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.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 *ProjectsLocationsDataStoresServingConfigsSearchCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsDataStoresServingConfigsSearchLiteCall struct {
	s                                              *Service
	servingConfig                                  string
	googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// SearchLite: Performs a search. Similar to the SearchService.Search method,
// but a lite version that allows API key for authentication, where OAuth and
// IAM checks are not required. Only public website search is supported by this
// method. If data stores and engines not associated with public website search
// are specified, a `FAILED_PRECONDITION` error is returned. This method can be
// used for easy onboarding without having to implement an authentication
// backend. However, it is strongly recommended to use SearchService.Search
// instead with required OAuth and IAM checks to provide better data security.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/defa
//     ult_data_store/servingConfigs/default_serving_config`. This field is used
//     to identify the serving configuration name, set of models used to make the
//     search.
func (r *ProjectsLocationsDataStoresServingConfigsService) SearchLite(servingConfig string, googleclouddiscoveryenginev1alphasearchrequest *GoogleCloudDiscoveryengineV1alphaSearchRequest) *ProjectsLocationsDataStoresServingConfigsSearchLiteCall {
	c := &ProjectsLocationsDataStoresServingConfigsSearchLiteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphasearchrequest = googleclouddiscoveryenginev1alphasearchrequest
	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 *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsSearchLiteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsSearchLiteCall {
	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 *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:searchLite")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.searchLite", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.searchLite" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSearchResponse.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 *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSearchResponse, 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 := &GoogleCloudDiscoveryengineV1alphaSearchResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.searchLite", "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 *ProjectsLocationsDataStoresServingConfigsSearchLiteCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaSearchResponse) error) error {
	c.ctx_ = ctx
	defer func(pt string) { c.googleclouddiscoveryenginev1alphasearchrequest.PageToken = pt }(c.googleclouddiscoveryenginev1alphasearchrequest.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.googleclouddiscoveryenginev1alphasearchrequest.PageToken = x.NextPageToken
	}
}

type ProjectsLocationsDataStoresServingConfigsStreamAnswerCall struct {
	s                                                   *Service
	servingConfig                                       string
	googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// StreamAnswer: Answer query method (streaming). It takes one
// AnswerQueryRequest and returns multiple AnswerQueryResponse messages in a
// stream.
//
//   - servingConfig: The resource name of the Search serving config, such as
//     `projects/*/locations/global/collections/default_collection/engines/*/servi
//     ngConfigs/default_serving_config`, or
//     `projects/*/locations/global/collections/default_collection/dataStores/*/se
//     rvingConfigs/default_serving_config`. This field is used to identify the
//     serving configuration name, set of models used to make the search.
func (r *ProjectsLocationsDataStoresServingConfigsService) StreamAnswer(servingConfig string, googleclouddiscoveryenginev1alphaanswerqueryrequest *GoogleCloudDiscoveryengineV1alphaAnswerQueryRequest) *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall {
	c := &ProjectsLocationsDataStoresServingConfigsStreamAnswerCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.servingConfig = servingConfig
	c.googleclouddiscoveryenginev1alphaanswerqueryrequest = googleclouddiscoveryenginev1alphaanswerqueryrequest
	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 *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall) Context(ctx context.Context) *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall {
	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 *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaanswerqueryrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+servingConfig}:streamAnswer")
	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{
		"servingConfig": c.servingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.servingConfigs.streamAnswer", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.servingConfigs.streamAnswer" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse.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 *ProjectsLocationsDataStoresServingConfigsStreamAnswerCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse, 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 := &GoogleCloudDiscoveryengineV1alphaAnswerQueryResponse{
		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", "discoveryengine.projects.locations.dataStores.servingConfigs.streamAnswer", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSessionsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Session. If the Session to create already exists, an
// ALREADY_EXISTS error is returned.
//
//   - parent: Full resource name of parent data store. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsDataStoresSessionsService) Create(parent string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsDataStoresSessionsCreateCall {
	c := &ProjectsLocationsDataStoresSessionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	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 *ProjectsLocationsDataStoresSessionsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsCreateCall {
	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 *ProjectsLocationsDataStoresSessionsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsDataStoresSessionsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.dataStores.sessions.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSessionsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Session. If the Session to delete does not exist, a
// NOT_FOUND error is returned.
//
//   - name: The resource name of the Session to delete. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsDataStoresSessionsService) Delete(name string) *ProjectsLocationsDataStoresSessionsDeleteCall {
	c := &ProjectsLocationsDataStoresSessionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSessionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsDeleteCall {
	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 *ProjectsLocationsDataStoresSessionsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsDataStoresSessionsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.dataStores.sessions.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSessionsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Session.
//
//   - name: The resource name of the Session to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}/sessions/{session_id}`.
func (r *ProjectsLocationsDataStoresSessionsService) Get(name string) *ProjectsLocationsDataStoresSessionsGetCall {
	c := &ProjectsLocationsDataStoresSessionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// IncludeAnswerDetails sets the optional parameter "includeAnswerDetails": If
// set to true, the full session including all answer details will be returned.
func (c *ProjectsLocationsDataStoresSessionsGetCall) IncludeAnswerDetails(includeAnswerDetails bool) *ProjectsLocationsDataStoresSessionsGetCall {
	c.urlParams_.Set("includeAnswerDetails", fmt.Sprint(includeAnswerDetails))
	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 *ProjectsLocationsDataStoresSessionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsGetCall {
	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 *ProjectsLocationsDataStoresSessionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSessionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsGetCall {
	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 *ProjectsLocationsDataStoresSessionsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsDataStoresSessionsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.dataStores.sessions.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSessionsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Sessions by their parent DataStore.
//
//   - parent: The data store resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store_id}`.
func (r *ProjectsLocationsDataStoresSessionsService) List(parent string) *ProjectsLocationsDataStoresSessionsListCall {
	c := &ProjectsLocationsDataStoresSessionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": A comma-separated list of
// fields to filter by, in EBNF grammar. The supported fields are: *
// `user_pseudo_id` * `state` * `display_name` * `starred` * `is_pinned` *
// `labels` * `create_time` * `update_time` Examples: * `user_pseudo_id =
// some_id` * `display_name = "some_name" * `starred = true` * `is_pinned=true
// AND (NOT labels:hidden)` * `create_time > "1970-01-01T12:00:00Z"
func (c *ProjectsLocationsDataStoresSessionsListCall) Filter(filter string) *ProjectsLocationsDataStoresSessionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": A comma-separated list of
// fields to order by, sorted in ascending order. Use "desc" after a field name
// for descending. Supported fields: * `update_time` * `create_time` *
// `session_name` * `is_pinned` Example: * `update_time desc` * `create_time` *
// `is_pinned desc,update_time desc`: list sessions by is_pinned first, then by
// update_time.
func (c *ProjectsLocationsDataStoresSessionsListCall) OrderBy(orderBy string) *ProjectsLocationsDataStoresSessionsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of results
// to return. If unspecified, defaults to 50. Max allowed value is 1000.
func (c *ProjectsLocationsDataStoresSessionsListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresSessionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListSessions` call. Provide this to retrieve the subsequent
// page.
func (c *ProjectsLocationsDataStoresSessionsListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresSessionsListCall {
	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 *ProjectsLocationsDataStoresSessionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsListCall {
	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 *ProjectsLocationsDataStoresSessionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSessionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsListCall {
	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 *ProjectsLocationsDataStoresSessionsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsListCall) 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, "v1alpha/{+parent}/sessions")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSessionsResponse.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 *ProjectsLocationsDataStoresSessionsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSessionsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSessionsResponse{
		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", "discoveryengine.projects.locations.dataStores.sessions.list", "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 *ProjectsLocationsDataStoresSessionsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSessionsResponse) 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 ProjectsLocationsDataStoresSessionsPatchCall struct {
	s                                        *Service
	name                                     string
	googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Patch: Updates a Session. Session action type cannot be changed. If the
// Session to update does not exist, a NOT_FOUND error is returned.
//
//   - name: Immutable. Fully qualified name
//     `projects/{project}/locations/global/collections/{collection}/engines/{engi
//     ne}/sessions/*`.
func (r *ProjectsLocationsDataStoresSessionsService) Patch(name string, googleclouddiscoveryenginev1alphasession *GoogleCloudDiscoveryengineV1alphaSession) *ProjectsLocationsDataStoresSessionsPatchCall {
	c := &ProjectsLocationsDataStoresSessionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphasession = googleclouddiscoveryenginev1alphasession
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided Session to update. The following are NOT supported: *
// Session.name If not set or empty, all supported fields are updated.
func (c *ProjectsLocationsDataStoresSessionsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsDataStoresSessionsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsDataStoresSessionsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsPatchCall {
	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 *ProjectsLocationsDataStoresSessionsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasession)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSession.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 *ProjectsLocationsDataStoresSessionsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSession, 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 := &GoogleCloudDiscoveryengineV1alphaSession{
		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", "discoveryengine.projects.locations.dataStores.sessions.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSessionsAnswersGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Answer.
//
//   - name: The resource name of the Answer to get. Format:
//     `projects/{project}/locations/{location}/collections/{collection}/engines/{
//     engine_id}/sessions/{session_id}/answers/{answer_id}`.
func (r *ProjectsLocationsDataStoresSessionsAnswersService) Get(name string) *ProjectsLocationsDataStoresSessionsAnswersGetCall {
	c := &ProjectsLocationsDataStoresSessionsAnswersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSessionsAnswersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSessionsAnswersGetCall {
	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 *ProjectsLocationsDataStoresSessionsAnswersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSessionsAnswersGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSessionsAnswersGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSessionsAnswersGetCall {
	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 *ProjectsLocationsDataStoresSessionsAnswersGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSessionsAnswersGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.sessions.answers.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.sessions.answers.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaAnswer.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 *ProjectsLocationsDataStoresSessionsAnswersGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaAnswer, 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 := &GoogleCloudDiscoveryengineV1alphaAnswer{
		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", "discoveryengine.projects.locations.dataStores.sessions.answers.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall struct {
	s                                                                 *Service
	siteSearchEngine                                                  string
	googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest
	urlParams_                                                        gensupport.URLParams
	ctx_                                                              context.Context
	header_                                                           http.Header
}

// DisableAdvancedSiteSearch: Downgrade from advanced site search to basic site
// search.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/dataStores/{data_store_id}/siteSea
//     rchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineService) DisableAdvancedSiteSearch(siteSearchEngine string, googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaDisableAdvancedSiteSearchRequest) *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest = googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest
	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 *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphadisableadvancedsitesearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:disableAdvancedSiteSearch")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineDisableAdvancedSiteSearchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.disableAdvancedSiteSearch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall struct {
	s                                                                *Service
	siteSearchEngine                                                 string
	googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest
	urlParams_                                                       gensupport.URLParams
	ctx_                                                             context.Context
	header_                                                          http.Header
}

// EnableAdvancedSiteSearch: Upgrade from basic site search to advanced site
// search.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/{project}/locations/{location}/dataStores/{data_store_id}/siteSea
//     rchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineService) EnableAdvancedSiteSearch(siteSearchEngine string, googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest *GoogleCloudDiscoveryengineV1alphaEnableAdvancedSiteSearchRequest) *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest = googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest
	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 *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaenableadvancedsitesearchrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:enableAdvancedSiteSearch")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineEnableAdvancedSiteSearchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.enableAdvancedSiteSearch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall struct {
	s                                                   *Service
	siteSearchEngine                                    string
	googleclouddiscoveryenginev1alpharecrawlurisrequest *GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// RecrawlUris: Request on-demand recrawl for a list of URIs.
//
//   - siteSearchEngine: Full resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineService) RecrawlUris(siteSearchEngine string, googleclouddiscoveryenginev1alpharecrawlurisrequest *GoogleCloudDiscoveryengineV1alphaRecrawlUrisRequest) *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.siteSearchEngine = siteSearchEngine
	c.googleclouddiscoveryenginev1alpharecrawlurisrequest = googleclouddiscoveryenginev1alpharecrawlurisrequest
	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 *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharecrawlurisrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+siteSearchEngine}:recrawlUris")
	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{
		"siteSearchEngine": c.siteSearchEngine,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineRecrawlUrisCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.recrawlUris", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall struct {
	s                                        *Service
	parent                                   string
	googleclouddiscoveryenginev1alphasitemap *GoogleCloudDiscoveryengineV1alphaSitemap
	urlParams_                               gensupport.URLParams
	ctx_                                     context.Context
	header_                                  http.Header
}

// Create: Creates a Sitemap.
//
//   - parent: Parent resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineSitemapsService) Create(parent string, googleclouddiscoveryenginev1alphasitemap *GoogleCloudDiscoveryengineV1alphaSitemap) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasitemap = googleclouddiscoveryenginev1alphasitemap
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasitemap)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sitemaps")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a Sitemap.
//
//   - name: Full resource name of Sitemap, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/sitemaps/{sitemap}`. If the caller does
//     not have permission to access the Sitemap, regardless of whether or not it
//     exists, a PERMISSION_DENIED error is returned. If the requested Sitemap
//     does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsDataStoresSiteSearchEngineSitemapsService) Delete(name string) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Fetch: Fetch Sitemaps in a DataStore.
//
//   - parent: Parent resource name of the SiteSearchEngine, such as
//     `projects/*/locations/*/collections/*/dataStores/*/siteSearchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineSitemapsService) Fetch(parent string) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// MatcherUrisMatcherUris sets the optional parameter
// "matcher.urisMatcher.uris": The Sitemap uris.
func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) MatcherUrisMatcherUris(matcherUrisMatcherUris ...string) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall {
	c.urlParams_.SetMulti("matcher.urisMatcher.uris", append([]string{}, matcherUrisMatcherUris...))
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) 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, "v1alpha/{+parent}/sitemaps:fetch")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.fetch", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.fetch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse.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 *ProjectsLocationsDataStoresSiteSearchEngineSitemapsFetchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaFetchSitemapsResponse{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.sitemaps.fetch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall struct {
	s                                                              *Service
	parent                                                         string
	googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// BatchCreate: Creates TargetSite in a batch.
//
//   - parent: The parent resource shared by all TargetSites being created.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. The parent field in the
//     CreateBookRequest messages must either be empty or match this field.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) BatchCreate(parent string, googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest *GoogleCloudDiscoveryengineV1alphaBatchCreateTargetSitesRequest) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest = googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphabatchcreatetargetsitesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/targetSites:batchCreate")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesBatchCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.batchCreate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall struct {
	s                                           *Service
	parent                                      string
	googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Create: Creates a TargetSite.
//
//   - parent: Parent resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) Create(parent string, googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphatargetsite = googleclouddiscoveryenginev1alphatargetsite
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatargetsite)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/targetSites")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a TargetSite.
//
//   - name: Full resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}`. If the caller
//     does not have permission to access the TargetSite, regardless of whether
//     or not it exists, a PERMISSION_DENIED error is returned. If the requested
//     TargetSite does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) Delete(name string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a TargetSite.
//
//   - name: Full resource name of TargetSite, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}`. If the caller
//     does not have permission to access the TargetSite, regardless of whether
//     or not it exists, a PERMISSION_DENIED error is returned. If the requested
//     TargetSite does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) Get(name string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaTargetSite.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaTargetSite, 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 := &GoogleCloudDiscoveryengineV1alphaTargetSite{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of TargetSites.
//
//   - parent: The parent site search engine resource name, such as
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine`. If the caller does not have permission
//     to list TargetSites under this site search engine, regardless of whether
//     or not this branch exists, a PERMISSION_DENIED error is returned.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) List(parent string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. If unspecified, server will pick an
// appropriate default. The maximum value is 1000; values above 1000 will be
// coerced to 1000. If this field is negative, an INVALID_ARGUMENT error is
// returned.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) PageSize(pageSize int64) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListTargetSites` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListTargetSites` must match the call that provided the page token.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) PageToken(pageToken string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) 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, "v1alpha/{+parent}/targetSites")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.list", "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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListTargetSitesResponse) 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 ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall struct {
	s                                           *Service
	name                                        string
	googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Patch: Updates a TargetSite.
//
//   - name: Output only. The fully qualified resource name of the target site.
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}/siteSearchEngine/targetSites/{target_site}` The
//     `target_site_id` is system-generated.
func (r *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesService) Patch(name string, googleclouddiscoveryenginev1alphatargetsite *GoogleCloudDiscoveryengineV1alphaTargetSite) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall {
	c := &ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphatargetsite = googleclouddiscoveryenginev1alphatargetsite
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall {
	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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphatargetsite)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSiteSearchEngineTargetSitesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.siteSearchEngine.targetSites.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall struct {
	s                                                                       *Service
	parent                                                                  string
	googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest
	urlParams_                                                              gensupport.URLParams
	ctx_                                                                    context.Context
	header_                                                                 http.Header
}

// Import: Imports all SuggestionDenyListEntry for a DataStore.
//
//   - parent: The parent data store resource name for which to import denylist
//     entries. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsDataStoresSuggestionDenyListEntriesService) Import(parent string, googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaImportSuggestionDenyListEntriesRequest) *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall {
	c := &ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest = googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest
	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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall {
	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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportsuggestiondenylistentriesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/suggestionDenyListEntries:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall struct {
	s                                                                      *Service
	parent                                                                 string
	googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest
	urlParams_                                                             gensupport.URLParams
	ctx_                                                                   context.Context
	header_                                                                http.Header
}

// Purge: Permanently deletes all SuggestionDenyListEntry for a DataStore.
//
//   - parent: The parent data store resource name for which to import denylist
//     entries. Follows pattern
//     projects/*/locations/*/collections/*/dataStores/*.
func (r *ProjectsLocationsDataStoresSuggestionDenyListEntriesService) Purge(parent string, googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest *GoogleCloudDiscoveryengineV1alphaPurgeSuggestionDenyListEntriesRequest) *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall {
	c := &ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest = googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest
	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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall) Context(ctx context.Context) *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall {
	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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgesuggestiondenylistentriesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/suggestionDenyListEntries:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresSuggestionDenyListEntriesPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.suggestionDenyListEntries.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresUserEventsCollectCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Collect: Writes a single user event from the browser. This uses a GET
// request to due to browser restriction of POST-ing to a third-party domain.
// This method is used only by the Discovery Engine API JavaScript pixel and
// Google Tag Manager. Users should not call this method directly.
//
//   - parent: The parent resource name. If the collect user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the collect user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsDataStoresUserEventsService) Collect(parent string) *ProjectsLocationsDataStoresUserEventsCollectCall {
	c := &ProjectsLocationsDataStoresUserEventsCollectCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Ets sets the optional parameter "ets": The event timestamp in milliseconds.
// This prevents browser caching of otherwise identical get requests. The name
// is abbreviated to reduce the payload bytes.
func (c *ProjectsLocationsDataStoresUserEventsCollectCall) Ets(ets int64) *ProjectsLocationsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("ets", fmt.Sprint(ets))
	return c
}

// Uri sets the optional parameter "uri": The URL including cgi-parameters but
// excluding the hash fragment with a length limit of 5,000 characters. This is
// often more useful than the referer URL, because many browsers only send the
// domain for third-party requests.
func (c *ProjectsLocationsDataStoresUserEventsCollectCall) Uri(uri string) *ProjectsLocationsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("uri", uri)
	return c
}

// UserEvent sets the optional parameter "userEvent": Required. URL encoded
// UserEvent proto with a length limit of 2,000,000 characters.
func (c *ProjectsLocationsDataStoresUserEventsCollectCall) UserEvent(userEvent string) *ProjectsLocationsDataStoresUserEventsCollectCall {
	c.urlParams_.Set("userEvent", userEvent)
	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 *ProjectsLocationsDataStoresUserEventsCollectCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresUserEventsCollectCall {
	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 *ProjectsLocationsDataStoresUserEventsCollectCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresUserEventsCollectCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresUserEventsCollectCall) Context(ctx context.Context) *ProjectsLocationsDataStoresUserEventsCollectCall {
	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 *ProjectsLocationsDataStoresUserEventsCollectCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresUserEventsCollectCall) 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, "v1alpha/{+parent}/userEvents:collect")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.userEvents.collect", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.userEvents.collect" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleApiHttpBody.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 *ProjectsLocationsDataStoresUserEventsCollectCall) Do(opts ...googleapi.CallOption) (*GoogleApiHttpBody, 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 := &GoogleApiHttpBody{
		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", "discoveryengine.projects.locations.dataStores.userEvents.collect", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresUserEventsImportCall struct {
	s                                                        *Service
	parent                                                   string
	googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Import: Bulk import of user events. Request processing might be synchronous.
// Events that already exist are skipped. Use this method for backfilling
// historical user events. Operation.response is of type ImportResponse. Note
// that it is possible for a subset of the items to be successfully inserted.
// Operation.metadata is of type ImportMetadata.
//
//   - parent: Parent DataStore resource name, of the form
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsDataStoresUserEventsService) Import(parent string, googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest) *ProjectsLocationsDataStoresUserEventsImportCall {
	c := &ProjectsLocationsDataStoresUserEventsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportusereventsrequest = googleclouddiscoveryenginev1alphaimportusereventsrequest
	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 *ProjectsLocationsDataStoresUserEventsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresUserEventsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresUserEventsImportCall) Context(ctx context.Context) *ProjectsLocationsDataStoresUserEventsImportCall {
	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 *ProjectsLocationsDataStoresUserEventsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresUserEventsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportusereventsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.userEvents.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.userEvents.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresUserEventsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.userEvents.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresUserEventsPurgeCall struct {
	s                                                       *Service
	parent                                                  string
	googleclouddiscoveryenginev1alphapurgeusereventsrequest *GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// Purge: Deletes permanently all user events specified by the filter provided.
// Depending on the number of events specified by the filter, this operation
// could take hours or days to complete. To test a filter, use the list command
// first.
//
//   - parent: The resource name of the catalog under which the events are
//     created. The format is
//     `projects/{project}/locations/global/collections/{collection}/dataStores/{d
//     ataStore}`.
func (r *ProjectsLocationsDataStoresUserEventsService) Purge(parent string, googleclouddiscoveryenginev1alphapurgeusereventsrequest *GoogleCloudDiscoveryengineV1alphaPurgeUserEventsRequest) *ProjectsLocationsDataStoresUserEventsPurgeCall {
	c := &ProjectsLocationsDataStoresUserEventsPurgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphapurgeusereventsrequest = googleclouddiscoveryenginev1alphapurgeusereventsrequest
	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 *ProjectsLocationsDataStoresUserEventsPurgeCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresUserEventsPurgeCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresUserEventsPurgeCall) Context(ctx context.Context) *ProjectsLocationsDataStoresUserEventsPurgeCall {
	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 *ProjectsLocationsDataStoresUserEventsPurgeCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresUserEventsPurgeCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgeusereventsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:purge")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.userEvents.purge", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.userEvents.purge" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsDataStoresUserEventsPurgeCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.dataStores.userEvents.purge", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresUserEventsWriteCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Write: Writes a single user event.
//
//   - parent: The parent resource name. If the write user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the write user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsDataStoresUserEventsService) Write(parent string, googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent) *ProjectsLocationsDataStoresUserEventsWriteCall {
	c := &ProjectsLocationsDataStoresUserEventsWriteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphauserevent = googleclouddiscoveryenginev1alphauserevent
	return c
}

// WriteAsync sets the optional parameter "writeAsync": If set to true, the
// user event is written asynchronously after validation, and the API responds
// without waiting for the write.
func (c *ProjectsLocationsDataStoresUserEventsWriteCall) WriteAsync(writeAsync bool) *ProjectsLocationsDataStoresUserEventsWriteCall {
	c.urlParams_.Set("writeAsync", fmt.Sprint(writeAsync))
	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 *ProjectsLocationsDataStoresUserEventsWriteCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresUserEventsWriteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresUserEventsWriteCall) Context(ctx context.Context) *ProjectsLocationsDataStoresUserEventsWriteCall {
	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 *ProjectsLocationsDataStoresUserEventsWriteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresUserEventsWriteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphauserevent)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:write")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.userEvents.write", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.userEvents.write" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserEvent.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 *ProjectsLocationsDataStoresUserEventsWriteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserEvent, 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 := &GoogleCloudDiscoveryengineV1alphaUserEvent{
		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", "discoveryengine.projects.locations.dataStores.userEvents.write", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsDataStoresWidgetConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a WidgetConfig.
//
//   - name: Full WidgetConfig resource name. Format:
//     `projects/{project}/locations/{location}/collections/{collection_id}/dataSt
//     ores/{data_store_id}/widgetConfigs/{widget_config_id}`.
func (r *ProjectsLocationsDataStoresWidgetConfigsService) Get(name string) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	c := &ProjectsLocationsDataStoresWidgetConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// AcceptCache sets the optional parameter "acceptCache": Whether it's
// acceptable to load the widget config from cache. If set to true, recent
// changes on widget configs may take a few minutes to reflect on the end
// user's view. It's recommended to set to true for maturely developed widgets,
// as it improves widget performance. Set to false to see changes reflected in
// prod right away, if your widget is under development.
func (c *ProjectsLocationsDataStoresWidgetConfigsGetCall) AcceptCache(acceptCache bool) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	c.urlParams_.Set("acceptCache", fmt.Sprint(acceptCache))
	return c
}

// GetWidgetConfigRequestOptionTurnOffCollectionComponents sets the optional
// parameter "getWidgetConfigRequestOption.turnOffCollectionComponents":
// Whether to turn off collection_components in WidgetConfig to reduce latency
// and data transmission.
func (c *ProjectsLocationsDataStoresWidgetConfigsGetCall) GetWidgetConfigRequestOptionTurnOffCollectionComponents(getWidgetConfigRequestOptionTurnOffCollectionComponents bool) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	c.urlParams_.Set("getWidgetConfigRequestOption.turnOffCollectionComponents", fmt.Sprint(getWidgetConfigRequestOptionTurnOffCollectionComponents))
	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 *ProjectsLocationsDataStoresWidgetConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	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 *ProjectsLocationsDataStoresWidgetConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsDataStoresWidgetConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsDataStoresWidgetConfigsGetCall {
	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 *ProjectsLocationsDataStoresWidgetConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsDataStoresWidgetConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.dataStores.widgetConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.dataStores.widgetConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaWidgetConfig.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 *ProjectsLocationsDataStoresWidgetConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaWidgetConfig, 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 := &GoogleCloudDiscoveryengineV1alphaWidgetConfig{
		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", "discoveryengine.projects.locations.dataStores.widgetConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsEvaluationsCreateCall struct {
	s                                           *Service
	parent                                      string
	googleclouddiscoveryenginev1alphaevaluation *GoogleCloudDiscoveryengineV1alphaEvaluation
	urlParams_                                  gensupport.URLParams
	ctx_                                        context.Context
	header_                                     http.Header
}

// Create: Creates a Evaluation. Upon creation, the evaluation will be
// automatically triggered and begin execution.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsEvaluationsService) Create(parent string, googleclouddiscoveryenginev1alphaevaluation *GoogleCloudDiscoveryengineV1alphaEvaluation) *ProjectsLocationsEvaluationsCreateCall {
	c := &ProjectsLocationsEvaluationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaevaluation = googleclouddiscoveryenginev1alphaevaluation
	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 *ProjectsLocationsEvaluationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEvaluationsCreateCall) Context(ctx context.Context) *ProjectsLocationsEvaluationsCreateCall {
	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 *ProjectsLocationsEvaluationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEvaluationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaevaluation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/evaluations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.evaluations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.evaluations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsEvaluationsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.evaluations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsEvaluationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Evaluation.
//
//   - name: Full resource name of Evaluation, such as
//     `projects/{project}/locations/{location}/evaluations/{evaluation}`. If the
//     caller does not have permission to access the Evaluation, regardless of
//     whether or not it exists, a PERMISSION_DENIED error is returned. If the
//     requested Evaluation does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsEvaluationsService) Get(name string) *ProjectsLocationsEvaluationsGetCall {
	c := &ProjectsLocationsEvaluationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsEvaluationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsGetCall {
	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 *ProjectsLocationsEvaluationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEvaluationsGetCall) Context(ctx context.Context) *ProjectsLocationsEvaluationsGetCall {
	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 *ProjectsLocationsEvaluationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEvaluationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.evaluations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.evaluations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaEvaluation.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 *ProjectsLocationsEvaluationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaEvaluation, 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 := &GoogleCloudDiscoveryengineV1alphaEvaluation{
		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", "discoveryengine.projects.locations.evaluations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsEvaluationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of Evaluations.
//
//   - parent: The parent location resource name, such as
//     `projects/{project}/locations/{location}`. If the caller does not have
//     permission to list Evaluations under this location, regardless of whether
//     or not this location exists, a `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsEvaluationsService) List(parent string) *ProjectsLocationsEvaluationsListCall {
	c := &ProjectsLocationsEvaluationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// Evaluations to return. If unspecified, defaults to 100. The maximum allowed
// value is 1000. Values above 1000 will be coerced to 1000. If this field is
// negative, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsEvaluationsListCall) PageSize(pageSize int64) *ProjectsLocationsEvaluationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListEvaluationsResponse.next_page_token, received from a previous
// EvaluationService.ListEvaluations call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// EvaluationService.ListEvaluations must match the call that provided the page
// token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsEvaluationsListCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsListCall {
	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 *ProjectsLocationsEvaluationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsListCall {
	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 *ProjectsLocationsEvaluationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEvaluationsListCall) Context(ctx context.Context) *ProjectsLocationsEvaluationsListCall {
	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 *ProjectsLocationsEvaluationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEvaluationsListCall) 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, "v1alpha/{+parent}/evaluations")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.evaluations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.evaluations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse.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 *ProjectsLocationsEvaluationsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse{
		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", "discoveryengine.projects.locations.evaluations.list", "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 *ProjectsLocationsEvaluationsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListEvaluationsResponse) 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 ProjectsLocationsEvaluationsListResultsCall struct {
	s            *Service
	evaluation   string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListResults: Gets a list of results for a given a Evaluation.
//
//   - evaluation: The evaluation resource name, such as
//     `projects/{project}/locations/{location}/evaluations/{evaluation}`. If the
//     caller does not have permission to list
//     ListEvaluationResultsResponse.EvaluationResult under this evaluation,
//     regardless of whether or not this evaluation set exists, a
//     `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsEvaluationsService) ListResults(evaluation string) *ProjectsLocationsEvaluationsListResultsCall {
	c := &ProjectsLocationsEvaluationsListResultsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.evaluation = evaluation
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// ListEvaluationResultsResponse.EvaluationResult to return. If unspecified,
// defaults to 100. The maximum allowed value is 1000. Values above 1000 will
// be coerced to 1000. If this field is negative, an `INVALID_ARGUMENT` error
// is returned.
func (c *ProjectsLocationsEvaluationsListResultsCall) PageSize(pageSize int64) *ProjectsLocationsEvaluationsListResultsCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListEvaluationResultsResponse.next_page_token, received from a previous
// EvaluationService.ListEvaluationResults call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// EvaluationService.ListEvaluationResults must match the call that provided
// the page token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsEvaluationsListResultsCall) PageToken(pageToken string) *ProjectsLocationsEvaluationsListResultsCall {
	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 *ProjectsLocationsEvaluationsListResultsCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsListResultsCall {
	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 *ProjectsLocationsEvaluationsListResultsCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsListResultsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEvaluationsListResultsCall) Context(ctx context.Context) *ProjectsLocationsEvaluationsListResultsCall {
	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 *ProjectsLocationsEvaluationsListResultsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEvaluationsListResultsCall) 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, "v1alpha/{+evaluation}: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{
		"evaluation": c.evaluation,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.evaluations.listResults", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.evaluations.listResults" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse.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 *ProjectsLocationsEvaluationsListResultsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse{
		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", "discoveryengine.projects.locations.evaluations.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 *ProjectsLocationsEvaluationsListResultsCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListEvaluationResultsResponse) 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 ProjectsLocationsEvaluationsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsEvaluationsOperationsService) Get(name string) *ProjectsLocationsEvaluationsOperationsGetCall {
	c := &ProjectsLocationsEvaluationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsEvaluationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsEvaluationsOperationsGetCall {
	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 *ProjectsLocationsEvaluationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsEvaluationsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsEvaluationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsEvaluationsOperationsGetCall {
	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 *ProjectsLocationsEvaluationsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsEvaluationsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.evaluations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.evaluations.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsEvaluationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.evaluations.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsGroundingConfigsCheckCall struct {
	s                                                      *Service
	groundingConfig                                        string
	googleclouddiscoveryenginev1alphacheckgroundingrequest *GoogleCloudDiscoveryengineV1alphaCheckGroundingRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// Check: Performs a grounding check.
//
//   - groundingConfig: The resource name of the grounding config, such as
//     `projects/*/locations/global/groundingConfigs/default_grounding_config`.
func (r *ProjectsLocationsGroundingConfigsService) Check(groundingConfig string, googleclouddiscoveryenginev1alphacheckgroundingrequest *GoogleCloudDiscoveryengineV1alphaCheckGroundingRequest) *ProjectsLocationsGroundingConfigsCheckCall {
	c := &ProjectsLocationsGroundingConfigsCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.groundingConfig = groundingConfig
	c.googleclouddiscoveryenginev1alphacheckgroundingrequest = googleclouddiscoveryenginev1alphacheckgroundingrequest
	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 *ProjectsLocationsGroundingConfigsCheckCall) Fields(s ...googleapi.Field) *ProjectsLocationsGroundingConfigsCheckCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGroundingConfigsCheckCall) Context(ctx context.Context) *ProjectsLocationsGroundingConfigsCheckCall {
	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 *ProjectsLocationsGroundingConfigsCheckCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGroundingConfigsCheckCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacheckgroundingrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+groundingConfig}:check")
	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{
		"groundingConfig": c.groundingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.groundingConfigs.check", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.groundingConfigs.check" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCheckGroundingResponse.ServerResponse.Heade
// r 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 *ProjectsLocationsGroundingConfigsCheckCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCheckGroundingResponse, 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 := &GoogleCloudDiscoveryengineV1alphaCheckGroundingResponse{
		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", "discoveryengine.projects.locations.groundingConfigs.check", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresCreateCall struct {
	s                                                     *Service
	parent                                                string
	googleclouddiscoveryenginev1alphaidentitymappingstore *GoogleCloudDiscoveryengineV1alphaIdentityMappingStore
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// Create: Creates a new Identity Mapping Store.
//
//   - parent: The parent collection resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsIdentityMappingStoresService) Create(parent string, googleclouddiscoveryenginev1alphaidentitymappingstore *GoogleCloudDiscoveryengineV1alphaIdentityMappingStore) *ProjectsLocationsIdentityMappingStoresCreateCall {
	c := &ProjectsLocationsIdentityMappingStoresCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaidentitymappingstore = googleclouddiscoveryenginev1alphaidentitymappingstore
	return c
}

// CmekConfigName sets the optional parameter "cmekConfigName": Resource name
// of the CmekConfig to use for protecting this Identity Mapping Store.
func (c *ProjectsLocationsIdentityMappingStoresCreateCall) CmekConfigName(cmekConfigName string) *ProjectsLocationsIdentityMappingStoresCreateCall {
	c.urlParams_.Set("cmekConfigName", cmekConfigName)
	return c
}

// DisableCmek sets the optional parameter "disableCmek": Identity Mapping
// Store without CMEK protections. If a default CmekConfig is set for the
// project, setting this field will override the default CmekConfig as well.
func (c *ProjectsLocationsIdentityMappingStoresCreateCall) DisableCmek(disableCmek bool) *ProjectsLocationsIdentityMappingStoresCreateCall {
	c.urlParams_.Set("disableCmek", fmt.Sprint(disableCmek))
	return c
}

// IdentityMappingStoreId sets the optional parameter "identityMappingStoreId":
// Required. The ID of the Identity Mapping Store to create. The ID must
// contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens
// (-). The maximum length is 63 characters.
func (c *ProjectsLocationsIdentityMappingStoresCreateCall) IdentityMappingStoreId(identityMappingStoreId string) *ProjectsLocationsIdentityMappingStoresCreateCall {
	c.urlParams_.Set("identityMappingStoreId", identityMappingStoreId)
	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 *ProjectsLocationsIdentityMappingStoresCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresCreateCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresCreateCall {
	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 *ProjectsLocationsIdentityMappingStoresCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaidentitymappingstore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/identityMappingStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaIdentityMappingStore.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 *ProjectsLocationsIdentityMappingStoresCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaIdentityMappingStore, 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 := &GoogleCloudDiscoveryengineV1alphaIdentityMappingStore{
		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", "discoveryengine.projects.locations.identityMappingStores.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the Identity Mapping Store.
//
//   - name: The name of the Identity Mapping Store to delete. Format:
//     `projects/{project}/locations/{location}/identityMappingStores/{identityMap
//     pingStore}`.
func (r *ProjectsLocationsIdentityMappingStoresService) Delete(name string) *ProjectsLocationsIdentityMappingStoresDeleteCall {
	c := &ProjectsLocationsIdentityMappingStoresDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsIdentityMappingStoresDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresDeleteCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresDeleteCall {
	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 *ProjectsLocationsIdentityMappingStoresDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsIdentityMappingStoresDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.identityMappingStores.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the Identity Mapping Store.
//
//   - name: The name of the Identity Mapping Store to get. Format:
//     `projects/{project}/locations/{location}/identityMappingStores/{identityMap
//     pingStore}`.
func (r *ProjectsLocationsIdentityMappingStoresService) Get(name string) *ProjectsLocationsIdentityMappingStoresGetCall {
	c := &ProjectsLocationsIdentityMappingStoresGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsIdentityMappingStoresGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresGetCall {
	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 *ProjectsLocationsIdentityMappingStoresGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsIdentityMappingStoresGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresGetCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresGetCall {
	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 *ProjectsLocationsIdentityMappingStoresGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaIdentityMappingStore.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 *ProjectsLocationsIdentityMappingStoresGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaIdentityMappingStore, 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 := &GoogleCloudDiscoveryengineV1alphaIdentityMappingStore{
		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", "discoveryengine.projects.locations.identityMappingStores.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall struct {
	s                                                              *Service
	identityMappingStore                                           string
	googleclouddiscoveryenginev1alphaimportidentitymappingsrequest *GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequest
	urlParams_                                                     gensupport.URLParams
	ctx_                                                           context.Context
	header_                                                        http.Header
}

// ImportIdentityMappings: Imports a list of Identity Mapping Entries to an
// Identity Mapping Store.
//
//   - identityMappingStore: The name of the Identity Mapping Store to import
//     Identity Mapping Entries to. Format:
//     `projects/{project}/locations/{location}/identityMappingStores/{identityMap
//     pingStore}`.
func (r *ProjectsLocationsIdentityMappingStoresService) ImportIdentityMappings(identityMappingStore string, googleclouddiscoveryenginev1alphaimportidentitymappingsrequest *GoogleCloudDiscoveryengineV1alphaImportIdentityMappingsRequest) *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall {
	c := &ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.identityMappingStore = identityMappingStore
	c.googleclouddiscoveryenginev1alphaimportidentitymappingsrequest = googleclouddiscoveryenginev1alphaimportidentitymappingsrequest
	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 *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall {
	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 *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportidentitymappingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+identityMappingStore}:importIdentityMappings")
	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{
		"identityMappingStore": c.identityMappingStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.importIdentityMappings", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.importIdentityMappings" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsIdentityMappingStoresImportIdentityMappingsCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.identityMappingStores.importIdentityMappings", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all Identity Mapping Stores.
//
//   - parent: The parent of the Identity Mapping Stores to list. Format:
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsIdentityMappingStoresService) List(parent string) *ProjectsLocationsIdentityMappingStoresListCall {
	c := &ProjectsLocationsIdentityMappingStoresListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// IdentityMappingStores to return. If unspecified, defaults to 100. The
// maximum allowed value is 1000. Values above 1000 will be coerced to 1000.
func (c *ProjectsLocationsIdentityMappingStoresListCall) PageSize(pageSize int64) *ProjectsLocationsIdentityMappingStoresListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListIdentityMappingStores` call. Provide this to retrieve
// the subsequent page. When paginating, all other parameters provided to
// `ListIdentityMappingStores` must match the call that provided the page
// token.
func (c *ProjectsLocationsIdentityMappingStoresListCall) PageToken(pageToken string) *ProjectsLocationsIdentityMappingStoresListCall {
	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 *ProjectsLocationsIdentityMappingStoresListCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresListCall {
	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 *ProjectsLocationsIdentityMappingStoresListCall) IfNoneMatch(entityTag string) *ProjectsLocationsIdentityMappingStoresListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresListCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresListCall {
	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 *ProjectsLocationsIdentityMappingStoresListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresListCall) 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, "v1alpha/{+parent}/identityMappingStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse.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 *ProjectsLocationsIdentityMappingStoresListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse{
		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", "discoveryengine.projects.locations.identityMappingStores.list", "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 *ProjectsLocationsIdentityMappingStoresListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListIdentityMappingStoresResponse) 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 ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall struct {
	s                    *Service
	identityMappingStore string
	urlParams_           gensupport.URLParams
	ifNoneMatch_         string
	ctx_                 context.Context
	header_              http.Header
}

// ListIdentityMappings: Lists Identity Mappings in an Identity Mapping Store.
//
//   - identityMappingStore: The name of the Identity Mapping Store to list
//     Identity Mapping Entries in. Format:
//     `projects/{project}/locations/{location}/identityMappingStores/{identityMap
//     pingStore}`.
func (r *ProjectsLocationsIdentityMappingStoresService) ListIdentityMappings(identityMappingStore string) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	c := &ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.identityMappingStore = identityMappingStore
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// IdentityMappings to return. If unspecified, defaults to 2000. The maximum
// allowed value is 10000. Values above 10000 will be coerced to 10000.
func (c *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) PageSize(pageSize int64) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListIdentityMappings` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListIdentityMappings` must match the call that provided the page token.
func (c *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) PageToken(pageToken string) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	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 *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	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 *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) IfNoneMatch(entityTag string) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall {
	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 *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) 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, "v1alpha/{+identityMappingStore}:listIdentityMappings")
	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{
		"identityMappingStore": c.identityMappingStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.listIdentityMappings", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.listIdentityMappings" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse.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 *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse{
		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", "discoveryengine.projects.locations.identityMappingStores.listIdentityMappings", "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 *ProjectsLocationsIdentityMappingStoresListIdentityMappingsCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListIdentityMappingsResponse) 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 ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall struct {
	s                                                             *Service
	identityMappingStore                                          string
	googleclouddiscoveryenginev1alphapurgeidentitymappingsrequest *GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequest
	urlParams_                                                    gensupport.URLParams
	ctx_                                                          context.Context
	header_                                                       http.Header
}

// PurgeIdentityMappings: Purges specified or all Identity Mapping Entries from
// an Identity Mapping Store.
//
//   - identityMappingStore: The name of the Identity Mapping Store to purge
//     Identity Mapping Entries from. Format:
//     `projects/{project}/locations/{location}/identityMappingStores/{identityMap
//     pingStore}`.
func (r *ProjectsLocationsIdentityMappingStoresService) PurgeIdentityMappings(identityMappingStore string, googleclouddiscoveryenginev1alphapurgeidentitymappingsrequest *GoogleCloudDiscoveryengineV1alphaPurgeIdentityMappingsRequest) *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall {
	c := &ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.identityMappingStore = identityMappingStore
	c.googleclouddiscoveryenginev1alphapurgeidentitymappingsrequest = googleclouddiscoveryenginev1alphapurgeidentitymappingsrequest
	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 *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall {
	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 *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphapurgeidentitymappingsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+identityMappingStore}:purgeIdentityMappings")
	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{
		"identityMappingStore": c.identityMappingStore,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.purgeIdentityMappings", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.purgeIdentityMappings" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsIdentityMappingStoresPurgeIdentityMappingsCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.identityMappingStores.purgeIdentityMappings", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsIdentityMappingStoresOperationsService) Get(name string) *ProjectsLocationsIdentityMappingStoresOperationsGetCall {
	c := &ProjectsLocationsIdentityMappingStoresOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsIdentityMappingStoresOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresOperationsGetCall {
	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 *ProjectsLocationsIdentityMappingStoresOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsIdentityMappingStoresOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresOperationsGetCall {
	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 *ProjectsLocationsIdentityMappingStoresOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsIdentityMappingStoresOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.identityMappingStores.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsIdentityMappingStoresOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsIdentityMappingStoresOperationsService) List(name string) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c := &ProjectsLocationsIdentityMappingStoresOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) Filter(filter string) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) PageToken(pageToken string) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsIdentityMappingStoresOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	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 *ProjectsLocationsIdentityMappingStoresOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) Context(ctx context.Context) *ProjectsLocationsIdentityMappingStoresOperationsListCall {
	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 *ProjectsLocationsIdentityMappingStoresOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsIdentityMappingStoresOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.identityMappingStores.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.identityMappingStores.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsIdentityMappingStoresOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.identityMappingStores.operations.list", "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 *ProjectsLocationsIdentityMappingStoresOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsLicenseConfigsCreateCall struct {
	s                                              *Service
	parent                                         string
	googleclouddiscoveryenginev1alphalicenseconfig *GoogleCloudDiscoveryengineV1alphaLicenseConfig
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Create: Creates a LicenseConfig
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsLicenseConfigsService) Create(parent string, googleclouddiscoveryenginev1alphalicenseconfig *GoogleCloudDiscoveryengineV1alphaLicenseConfig) *ProjectsLocationsLicenseConfigsCreateCall {
	c := &ProjectsLocationsLicenseConfigsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphalicenseconfig = googleclouddiscoveryenginev1alphalicenseconfig
	return c
}

// LicenseConfigId sets the optional parameter "licenseConfigId": The ID to use
// for the LicenseConfig, which will become the final component of the
// LicenseConfig's resource name. We are using the tier (product edition) name
// as the license config id such as `search` or `search_and_assistant`.
func (c *ProjectsLocationsLicenseConfigsCreateCall) LicenseConfigId(licenseConfigId string) *ProjectsLocationsLicenseConfigsCreateCall {
	c.urlParams_.Set("licenseConfigId", licenseConfigId)
	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 *ProjectsLocationsLicenseConfigsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsLicenseConfigsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsLicenseConfigsCreateCall) Context(ctx context.Context) *ProjectsLocationsLicenseConfigsCreateCall {
	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 *ProjectsLocationsLicenseConfigsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsLicenseConfigsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphalicenseconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/licenseConfigs")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.licenseConfigs.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.licenseConfigs.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaLicenseConfig.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 *ProjectsLocationsLicenseConfigsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaLicenseConfig, 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 := &GoogleCloudDiscoveryengineV1alphaLicenseConfig{
		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", "discoveryengine.projects.locations.licenseConfigs.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsLicenseConfigsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a LicenseConfig.
//
//   - name: Full resource name of LicenseConfig, such as
//     `projects/{project}/locations/{location}/licenseConfigs/*`. If the caller
//     does not have permission to access the LicenseConfig, regardless of
//     whether or not it exists, a PERMISSION_DENIED error is returned. If the
//     requested LicenseConfig does not exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsLicenseConfigsService) Get(name string) *ProjectsLocationsLicenseConfigsGetCall {
	c := &ProjectsLocationsLicenseConfigsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsLicenseConfigsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsLicenseConfigsGetCall {
	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 *ProjectsLocationsLicenseConfigsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsLicenseConfigsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsLicenseConfigsGetCall) Context(ctx context.Context) *ProjectsLocationsLicenseConfigsGetCall {
	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 *ProjectsLocationsLicenseConfigsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsLicenseConfigsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.licenseConfigs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.licenseConfigs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaLicenseConfig.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 *ProjectsLocationsLicenseConfigsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaLicenseConfig, 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 := &GoogleCloudDiscoveryengineV1alphaLicenseConfig{
		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", "discoveryengine.projects.locations.licenseConfigs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsLicenseConfigsPatchCall struct {
	s                                              *Service
	name                                           string
	googleclouddiscoveryenginev1alphalicenseconfig *GoogleCloudDiscoveryengineV1alphaLicenseConfig
	urlParams_                                     gensupport.URLParams
	ctx_                                           context.Context
	header_                                        http.Header
}

// Patch: Updates the LicenseConfig
//
//   - name: Immutable. Identifier. The fully qualified resource name of the
//     license config. Format:
//     `projects/{project}/locations/{location}/licenseConfigs/{license_config}`.
func (r *ProjectsLocationsLicenseConfigsService) Patch(name string, googleclouddiscoveryenginev1alphalicenseconfig *GoogleCloudDiscoveryengineV1alphaLicenseConfig) *ProjectsLocationsLicenseConfigsPatchCall {
	c := &ProjectsLocationsLicenseConfigsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphalicenseconfig = googleclouddiscoveryenginev1alphalicenseconfig
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided LicenseConfig to update. If an unsupported or unknown field
// is provided, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsLicenseConfigsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsLicenseConfigsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsLicenseConfigsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsLicenseConfigsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsLicenseConfigsPatchCall) Context(ctx context.Context) *ProjectsLocationsLicenseConfigsPatchCall {
	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 *ProjectsLocationsLicenseConfigsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsLicenseConfigsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphalicenseconfig)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.licenseConfigs.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.licenseConfigs.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaLicenseConfig.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 *ProjectsLocationsLicenseConfigsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaLicenseConfig, 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 := &GoogleCloudDiscoveryengineV1alphaLicenseConfig{
		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", "discoveryengine.projects.locations.licenseConfigs.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksBatchDeleteCall struct {
	s                                                       *Service
	parent                                                  string
	googlecloudnotebooklmv1alphabatchdeletenotebooksrequest *GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest
	urlParams_                                              gensupport.URLParams
	ctx_                                                    context.Context
	header_                                                 http.Header
}

// BatchDelete: Batch deletes Notebooks.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsNotebooksService) BatchDelete(parent string, googlecloudnotebooklmv1alphabatchdeletenotebooksrequest *GoogleCloudNotebooklmV1alphaBatchDeleteNotebooksRequest) *ProjectsLocationsNotebooksBatchDeleteCall {
	c := &ProjectsLocationsNotebooksBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudnotebooklmv1alphabatchdeletenotebooksrequest = googlecloudnotebooklmv1alphabatchdeletenotebooksrequest
	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 *ProjectsLocationsNotebooksBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksBatchDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksBatchDeleteCall) Context(ctx context.Context) *ProjectsLocationsNotebooksBatchDeleteCall {
	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 *ProjectsLocationsNotebooksBatchDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphabatchdeletenotebooksrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/notebooks:batchDelete")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.batchDelete", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.batchDelete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsNotebooksBatchDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.notebooks.batchDelete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksCreateCall struct {
	s                                    *Service
	parent                               string
	googlecloudnotebooklmv1alphanotebook *GoogleCloudNotebooklmV1alphaNotebook
	urlParams_                           gensupport.URLParams
	ctx_                                 context.Context
	header_                              http.Header
}

// Create: Creates a notebook.
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsNotebooksService) Create(parent string, googlecloudnotebooklmv1alphanotebook *GoogleCloudNotebooklmV1alphaNotebook) *ProjectsLocationsNotebooksCreateCall {
	c := &ProjectsLocationsNotebooksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudnotebooklmv1alphanotebook = googlecloudnotebooklmv1alphanotebook
	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 *ProjectsLocationsNotebooksCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksCreateCall) Context(ctx context.Context) *ProjectsLocationsNotebooksCreateCall {
	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 *ProjectsLocationsNotebooksCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphanotebook)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/notebooks")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaNotebook.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 *ProjectsLocationsNotebooksCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaNotebook, 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 := &GoogleCloudNotebooklmV1alphaNotebook{
		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", "discoveryengine.projects.locations.notebooks.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a notebook.
//
//   - name: Full resource name of Notebook, such as
//     `projects/{project}/locations/{location}/notebooks/{notebook_id}`.
func (r *ProjectsLocationsNotebooksService) Get(name string) *ProjectsLocationsNotebooksGetCall {
	c := &ProjectsLocationsNotebooksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsNotebooksGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksGetCall {
	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 *ProjectsLocationsNotebooksGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsNotebooksGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksGetCall) Context(ctx context.Context) *ProjectsLocationsNotebooksGetCall {
	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 *ProjectsLocationsNotebooksGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaNotebook.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 *ProjectsLocationsNotebooksGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaNotebook, 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 := &GoogleCloudNotebooklmV1alphaNotebook{
		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", "discoveryengine.projects.locations.notebooks.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksListRecentlyViewedCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// ListRecentlyViewed: Lists the notebooks ordered by last view time.
//
//   - parent: The parent branch resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsNotebooksService) ListRecentlyViewed(parent string) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	c := &ProjectsLocationsNotebooksListRecentlyViewedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of Notebooks
// to return. If unspecified, defaults to "500". The maximum allowed value is
// "500". If this field is negative, will use the default value.
func (c *ProjectsLocationsNotebooksListRecentlyViewedCall) PageSize(pageSize int64) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The page token, provide
// this to retrieve the subsequent page.
func (c *ProjectsLocationsNotebooksListRecentlyViewedCall) PageToken(pageToken string) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	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 *ProjectsLocationsNotebooksListRecentlyViewedCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	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 *ProjectsLocationsNotebooksListRecentlyViewedCall) IfNoneMatch(entityTag string) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksListRecentlyViewedCall) Context(ctx context.Context) *ProjectsLocationsNotebooksListRecentlyViewedCall {
	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 *ProjectsLocationsNotebooksListRecentlyViewedCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksListRecentlyViewedCall) 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, "v1alpha/{+parent}/notebooks:listRecentlyViewed")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.listRecentlyViewed", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.listRecentlyViewed" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse.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 *ProjectsLocationsNotebooksListRecentlyViewedCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse, 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 := &GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse{
		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", "discoveryengine.projects.locations.notebooks.listRecentlyViewed", "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 *ProjectsLocationsNotebooksListRecentlyViewedCall) Pages(ctx context.Context, f func(*GoogleCloudNotebooklmV1alphaListRecentlyViewedNotebooksResponse) 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 ProjectsLocationsNotebooksShareCall struct {
	s                                                *Service
	name                                             string
	googlecloudnotebooklmv1alphasharenotebookrequest *GoogleCloudNotebooklmV1alphaShareNotebookRequest
	urlParams_                                       gensupport.URLParams
	ctx_                                             context.Context
	header_                                          http.Header
}

// Share: Shares a notebook to other accounts.
//
//   - name: Full resource name of Notebook, such as
//     `projects/{project}/locations/{location}/notebooks/{notebook_id}`.
func (r *ProjectsLocationsNotebooksService) Share(name string, googlecloudnotebooklmv1alphasharenotebookrequest *GoogleCloudNotebooklmV1alphaShareNotebookRequest) *ProjectsLocationsNotebooksShareCall {
	c := &ProjectsLocationsNotebooksShareCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googlecloudnotebooklmv1alphasharenotebookrequest = googlecloudnotebooklmv1alphasharenotebookrequest
	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 *ProjectsLocationsNotebooksShareCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksShareCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksShareCall) Context(ctx context.Context) *ProjectsLocationsNotebooksShareCall {
	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 *ProjectsLocationsNotebooksShareCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksShareCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphasharenotebookrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}:share")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.share", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.share" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaShareNotebookResponse.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 *ProjectsLocationsNotebooksShareCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaShareNotebookResponse, 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 := &GoogleCloudNotebooklmV1alphaShareNotebookResponse{
		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", "discoveryengine.projects.locations.notebooks.share", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksAudioOverviewsCreateCall struct {
	s                                                      *Service
	parent                                                 string
	googlecloudnotebooklmv1alphacreateaudiooverviewrequest *GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest
	urlParams_                                             gensupport.URLParams
	ctx_                                                   context.Context
	header_                                                http.Header
}

// Create: Generates a new audio overview.
//
//   - parent: The parent resource where this notebook will be created. Format:
//     projects/{project}/locations/{location}/notebooks/{notebook}.
func (r *ProjectsLocationsNotebooksAudioOverviewsService) Create(parent string, googlecloudnotebooklmv1alphacreateaudiooverviewrequest *GoogleCloudNotebooklmV1alphaCreateAudioOverviewRequest) *ProjectsLocationsNotebooksAudioOverviewsCreateCall {
	c := &ProjectsLocationsNotebooksAudioOverviewsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudnotebooklmv1alphacreateaudiooverviewrequest = googlecloudnotebooklmv1alphacreateaudiooverviewrequest
	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 *ProjectsLocationsNotebooksAudioOverviewsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksAudioOverviewsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksAudioOverviewsCreateCall) Context(ctx context.Context) *ProjectsLocationsNotebooksAudioOverviewsCreateCall {
	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 *ProjectsLocationsNotebooksAudioOverviewsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksAudioOverviewsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphacreateaudiooverviewrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/audioOverviews")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.audioOverviews.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.audioOverviews.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse.ServerResponse.Heade
// r 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 *ProjectsLocationsNotebooksAudioOverviewsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse, 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 := &GoogleCloudNotebooklmV1alphaCreateAudioOverviewResponse{
		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", "discoveryengine.projects.locations.notebooks.audioOverviews.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksAudioOverviewsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an audio overview.
//
//   - name: The full resource name of the AudioOverview, such as
//     `projects/{project}/locations/{location}/notebooks/{notebook}/audioOverview
//     s/{audio_overview_id}`.
func (r *ProjectsLocationsNotebooksAudioOverviewsService) Delete(name string) *ProjectsLocationsNotebooksAudioOverviewsDeleteCall {
	c := &ProjectsLocationsNotebooksAudioOverviewsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsNotebooksAudioOverviewsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksAudioOverviewsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksAudioOverviewsDeleteCall) Context(ctx context.Context) *ProjectsLocationsNotebooksAudioOverviewsDeleteCall {
	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 *ProjectsLocationsNotebooksAudioOverviewsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksAudioOverviewsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.audioOverviews.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.audioOverviews.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsNotebooksAudioOverviewsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.notebooks.audioOverviews.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksSourcesBatchCreateCall struct {
	s                                                     *Service
	parent                                                string
	googlecloudnotebooklmv1alphabatchcreatesourcesrequest *GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// BatchCreate: Creates a list of Sources.
//
//   - parent: The parent resource where the sources will be created. Format:
//     projects/{project}/locations/{location}/notebooks/{notebook}.
func (r *ProjectsLocationsNotebooksSourcesService) BatchCreate(parent string, googlecloudnotebooklmv1alphabatchcreatesourcesrequest *GoogleCloudNotebooklmV1alphaBatchCreateSourcesRequest) *ProjectsLocationsNotebooksSourcesBatchCreateCall {
	c := &ProjectsLocationsNotebooksSourcesBatchCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudnotebooklmv1alphabatchcreatesourcesrequest = googlecloudnotebooklmv1alphabatchcreatesourcesrequest
	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 *ProjectsLocationsNotebooksSourcesBatchCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksSourcesBatchCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksSourcesBatchCreateCall) Context(ctx context.Context) *ProjectsLocationsNotebooksSourcesBatchCreateCall {
	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 *ProjectsLocationsNotebooksSourcesBatchCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksSourcesBatchCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphabatchcreatesourcesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sources:batchCreate")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.sources.batchCreate", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.sources.batchCreate" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse.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 *ProjectsLocationsNotebooksSourcesBatchCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse, 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 := &GoogleCloudNotebooklmV1alphaBatchCreateSourcesResponse{
		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", "discoveryengine.projects.locations.notebooks.sources.batchCreate", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksSourcesBatchDeleteCall struct {
	s                                                     *Service
	parent                                                string
	googlecloudnotebooklmv1alphabatchdeletesourcesrequest *GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest
	urlParams_                                            gensupport.URLParams
	ctx_                                                  context.Context
	header_                                               http.Header
}

// BatchDelete: Deletes multiple sources
//
//   - parent: The parent resource where the sources will be deleted. Format:
//     projects/{project}/locations/{location}/notebooks/{notebook}.
func (r *ProjectsLocationsNotebooksSourcesService) BatchDelete(parent string, googlecloudnotebooklmv1alphabatchdeletesourcesrequest *GoogleCloudNotebooklmV1alphaBatchDeleteSourcesRequest) *ProjectsLocationsNotebooksSourcesBatchDeleteCall {
	c := &ProjectsLocationsNotebooksSourcesBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googlecloudnotebooklmv1alphabatchdeletesourcesrequest = googlecloudnotebooklmv1alphabatchdeletesourcesrequest
	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 *ProjectsLocationsNotebooksSourcesBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksSourcesBatchDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksSourcesBatchDeleteCall) Context(ctx context.Context) *ProjectsLocationsNotebooksSourcesBatchDeleteCall {
	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 *ProjectsLocationsNotebooksSourcesBatchDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksSourcesBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphabatchdeletesourcesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sources:batchDelete")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.sources.batchDelete", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.sources.batchDelete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsNotebooksSourcesBatchDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.notebooks.sources.batchDelete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksSourcesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a Source.
//
//   - name: The resource name for source Format:
//     projects/{project}/locations/{location}/notebooks/{notebook}/sources/{sourc
//     e}.
func (r *ProjectsLocationsNotebooksSourcesService) Get(name string) *ProjectsLocationsNotebooksSourcesGetCall {
	c := &ProjectsLocationsNotebooksSourcesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsNotebooksSourcesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksSourcesGetCall {
	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 *ProjectsLocationsNotebooksSourcesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsNotebooksSourcesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksSourcesGetCall) Context(ctx context.Context) *ProjectsLocationsNotebooksSourcesGetCall {
	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 *ProjectsLocationsNotebooksSourcesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksSourcesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.sources.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.sources.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaSource.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 *ProjectsLocationsNotebooksSourcesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaSource, 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 := &GoogleCloudNotebooklmV1alphaSource{
		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", "discoveryengine.projects.locations.notebooks.sources.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsNotebooksSourcesUploadFileCall struct {
	s                                                   *Service
	parent                                              string
	sourceId                                            string
	googlecloudnotebooklmv1alphauploadsourcefilerequest *GoogleCloudNotebooklmV1alphaUploadSourceFileRequest
	urlParams_                                          gensupport.URLParams
	ctx_                                                context.Context
	header_                                             http.Header
}

// UploadFile: Uploads a file for Notebook LM to use. Creates a Source.
//
//   - parent: The parent resource where the sources will be created. Format:
//     projects/{project}/locations/{location}/notebooks/{notebook}.
//   - sourceId: The source id of the associated file. If not set, a source id
//     will be generated and a new tentative source will be created.
func (r *ProjectsLocationsNotebooksSourcesService) UploadFile(parent string, sourceId string, googlecloudnotebooklmv1alphauploadsourcefilerequest *GoogleCloudNotebooklmV1alphaUploadSourceFileRequest) *ProjectsLocationsNotebooksSourcesUploadFileCall {
	c := &ProjectsLocationsNotebooksSourcesUploadFileCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.sourceId = sourceId
	c.googlecloudnotebooklmv1alphauploadsourcefilerequest = googlecloudnotebooklmv1alphauploadsourcefilerequest
	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 *ProjectsLocationsNotebooksSourcesUploadFileCall) Fields(s ...googleapi.Field) *ProjectsLocationsNotebooksSourcesUploadFileCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsNotebooksSourcesUploadFileCall) Context(ctx context.Context) *ProjectsLocationsNotebooksSourcesUploadFileCall {
	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 *ProjectsLocationsNotebooksSourcesUploadFileCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsNotebooksSourcesUploadFileCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googlecloudnotebooklmv1alphauploadsourcefilerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sources/{sourceId}:uploadFile")
	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{
		"parent":   c.parent,
		"sourceId": c.sourceId,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.notebooks.sources.uploadFile", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.notebooks.sources.uploadFile" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudNotebooklmV1alphaUploadSourceFileResponse.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 *ProjectsLocationsNotebooksSourcesUploadFileCall) Do(opts ...googleapi.CallOption) (*GoogleCloudNotebooklmV1alphaUploadSourceFileResponse, 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 := &GoogleCloudNotebooklmV1alphaUploadSourceFileResponse{
		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", "discoveryengine.projects.locations.notebooks.sources.uploadFile", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
	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 *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
	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 *ProjectsLocationsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsOperationsService) List(name string) *ProjectsLocationsOperationsListCall {
	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsOperationsListCall) Filter(filter string) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsOperationsListCall) PageToken(pageToken string) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
	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 *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
	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 *ProjectsLocationsOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.operations.list", "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 *ProjectsLocationsOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsPodcastsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsPodcastsOperationsService) Get(name string) *ProjectsLocationsPodcastsOperationsGetCall {
	c := &ProjectsLocationsPodcastsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsPodcastsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsPodcastsOperationsGetCall {
	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 *ProjectsLocationsPodcastsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsPodcastsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsPodcastsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsPodcastsOperationsGetCall {
	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 *ProjectsLocationsPodcastsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsPodcastsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.podcasts.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.podcasts.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsPodcastsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.podcasts.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsRankingConfigsRankCall struct {
	s                                            *Service
	rankingConfig                                string
	googleclouddiscoveryenginev1alpharankrequest *GoogleCloudDiscoveryengineV1alphaRankRequest
	urlParams_                                   gensupport.URLParams
	ctx_                                         context.Context
	header_                                      http.Header
}

// Rank: Ranks a list of text records based on the given input query.
//
//   - rankingConfig: The resource name of the rank service config, such as
//     `projects/{project_num}/locations/{location}/rankingConfigs/default_ranking
//     _config`.
func (r *ProjectsLocationsRankingConfigsService) Rank(rankingConfig string, googleclouddiscoveryenginev1alpharankrequest *GoogleCloudDiscoveryengineV1alphaRankRequest) *ProjectsLocationsRankingConfigsRankCall {
	c := &ProjectsLocationsRankingConfigsRankCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.rankingConfig = rankingConfig
	c.googleclouddiscoveryenginev1alpharankrequest = googleclouddiscoveryenginev1alpharankrequest
	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 *ProjectsLocationsRankingConfigsRankCall) Fields(s ...googleapi.Field) *ProjectsLocationsRankingConfigsRankCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsRankingConfigsRankCall) Context(ctx context.Context) *ProjectsLocationsRankingConfigsRankCall {
	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 *ProjectsLocationsRankingConfigsRankCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsRankingConfigsRankCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alpharankrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+rankingConfig}:rank")
	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{
		"rankingConfig": c.rankingConfig,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.rankingConfigs.rank", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.rankingConfigs.rank" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaRankResponse.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 *ProjectsLocationsRankingConfigsRankCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaRankResponse, 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 := &GoogleCloudDiscoveryengineV1alphaRankResponse{
		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", "discoveryengine.projects.locations.rankingConfigs.rank", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsRequirementsCheckRequirementCall struct {
	s                                                        *Service
	location                                                 string
	googleclouddiscoveryenginev1alphacheckrequirementrequest *GoogleCloudDiscoveryengineV1alphaCheckRequirementRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// CheckRequirement: Check a particular requirement.
//
//   - location: Full resource name of the location. Format
//     `projects/{project_number_or_id}/locations/{location}`.
func (r *ProjectsLocationsRequirementsService) CheckRequirement(location string, googleclouddiscoveryenginev1alphacheckrequirementrequest *GoogleCloudDiscoveryengineV1alphaCheckRequirementRequest) *ProjectsLocationsRequirementsCheckRequirementCall {
	c := &ProjectsLocationsRequirementsCheckRequirementCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.location = location
	c.googleclouddiscoveryenginev1alphacheckrequirementrequest = googleclouddiscoveryenginev1alphacheckrequirementrequest
	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 *ProjectsLocationsRequirementsCheckRequirementCall) Fields(s ...googleapi.Field) *ProjectsLocationsRequirementsCheckRequirementCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsRequirementsCheckRequirementCall) Context(ctx context.Context) *ProjectsLocationsRequirementsCheckRequirementCall {
	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 *ProjectsLocationsRequirementsCheckRequirementCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsRequirementsCheckRequirementCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphacheckrequirementrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+location}/requirements:checkRequirement")
	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{
		"location": c.location,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.requirements.checkRequirement", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.requirements.checkRequirement" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaCheckRequirementResponse.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 *ProjectsLocationsRequirementsCheckRequirementCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaCheckRequirementResponse, 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 := &GoogleCloudDiscoveryengineV1alphaCheckRequirementResponse{
		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", "discoveryengine.projects.locations.requirements.checkRequirement", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsCreateCall struct {
	s                                               *Service
	parent                                          string
	googleclouddiscoveryenginev1alphasamplequeryset *GoogleCloudDiscoveryengineV1alphaSampleQuerySet
	urlParams_                                      gensupport.URLParams
	ctx_                                            context.Context
	header_                                         http.Header
}

// Create: Creates a SampleQuerySet
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsSampleQuerySetsService) Create(parent string, googleclouddiscoveryenginev1alphasamplequeryset *GoogleCloudDiscoveryengineV1alphaSampleQuerySet) *ProjectsLocationsSampleQuerySetsCreateCall {
	c := &ProjectsLocationsSampleQuerySetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasamplequeryset = googleclouddiscoveryenginev1alphasamplequeryset
	return c
}

// SampleQuerySetId sets the optional parameter "sampleQuerySetId": Required.
// The ID to use for the SampleQuerySet, which will become the final component
// of the SampleQuerySet.name. If the caller does not have permission to create
// the SampleQuerySet, regardless of whether or not it exists, a
// `PERMISSION_DENIED` error is returned. This field must be unique among all
// SampleQuerySets with the same parent. Otherwise, an `ALREADY_EXISTS` error
// is returned. This field must conform to RFC-1034
// (https://tools.ietf.org/html/rfc1034) standard with a length limit of 63
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsSampleQuerySetsCreateCall) SampleQuerySetId(sampleQuerySetId string) *ProjectsLocationsSampleQuerySetsCreateCall {
	c.urlParams_.Set("sampleQuerySetId", sampleQuerySetId)
	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 *ProjectsLocationsSampleQuerySetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsCreateCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsCreateCall {
	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 *ProjectsLocationsSampleQuerySetsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasamplequeryset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sampleQuerySets")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuerySet.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 *ProjectsLocationsSampleQuerySetsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuerySet, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuerySet{
		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", "discoveryengine.projects.locations.sampleQuerySets.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a SampleQuerySet.
//
//   - name: Full resource name of SampleQuerySet, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     `. If the caller does not have permission to delete the SampleQuerySet,
//     regardless of whether or not it exists, a `PERMISSION_DENIED` error is
//     returned. If the SampleQuerySet to delete does not exist, a `NOT_FOUND`
//     error is returned.
func (r *ProjectsLocationsSampleQuerySetsService) Delete(name string) *ProjectsLocationsSampleQuerySetsDeleteCall {
	c := &ProjectsLocationsSampleQuerySetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsSampleQuerySetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsDeleteCall {
	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 *ProjectsLocationsSampleQuerySetsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsSampleQuerySetsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.sampleQuerySets.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a SampleQuerySet.
//
//   - name: Full resource name of SampleQuerySet, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     `. If the caller does not have permission to access the SampleQuerySet,
//     regardless of whether or not it exists, a PERMISSION_DENIED error is
//     returned. If the requested SampleQuerySet does not exist, a NOT_FOUND
//     error is returned.
func (r *ProjectsLocationsSampleQuerySetsService) Get(name string) *ProjectsLocationsSampleQuerySetsGetCall {
	c := &ProjectsLocationsSampleQuerySetsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsSampleQuerySetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsGetCall {
	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 *ProjectsLocationsSampleQuerySetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsSampleQuerySetsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsGetCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsGetCall {
	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 *ProjectsLocationsSampleQuerySetsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuerySet.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 *ProjectsLocationsSampleQuerySetsGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuerySet, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuerySet{
		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", "discoveryengine.projects.locations.sampleQuerySets.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of SampleQuerySets.
//
//   - parent: The parent location resource name, such as
//     `projects/{project}/locations/{location}`. If the caller does not have
//     permission to list SampleQuerySets under this location, regardless of
//     whether or not this location exists, a `PERMISSION_DENIED` error is
//     returned.
func (r *ProjectsLocationsSampleQuerySetsService) List(parent string) *ProjectsLocationsSampleQuerySetsListCall {
	c := &ProjectsLocationsSampleQuerySetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// SampleQuerySets to return. If unspecified, defaults to 100. The maximum
// allowed value is 1000. Values above 1000 will be coerced to 1000. If this
// field is negative, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsSampleQuerySetsListCall) PageSize(pageSize int64) *ProjectsLocationsSampleQuerySetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListSampleQuerySetsResponse.next_page_token, received from a previous
// SampleQuerySetService.ListSampleQuerySets call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// SampleQuerySetService.ListSampleQuerySets must match the call that provided
// the page token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsSampleQuerySetsListCall) PageToken(pageToken string) *ProjectsLocationsSampleQuerySetsListCall {
	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 *ProjectsLocationsSampleQuerySetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsListCall {
	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 *ProjectsLocationsSampleQuerySetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsSampleQuerySetsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsListCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsListCall {
	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 *ProjectsLocationsSampleQuerySetsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsListCall) 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, "v1alpha/{+parent}/sampleQuerySets")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse.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 *ProjectsLocationsSampleQuerySetsListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse{
		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", "discoveryengine.projects.locations.sampleQuerySets.list", "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 *ProjectsLocationsSampleQuerySetsListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSampleQuerySetsResponse) 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 ProjectsLocationsSampleQuerySetsPatchCall struct {
	s                                               *Service
	name                                            string
	googleclouddiscoveryenginev1alphasamplequeryset *GoogleCloudDiscoveryengineV1alphaSampleQuerySet
	urlParams_                                      gensupport.URLParams
	ctx_                                            context.Context
	header_                                         http.Header
}

// Patch: Updates a SampleQuerySet.
//
//   - name: Identifier. The full resource name of the SampleQuerySet, in the
//     format of
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     `. This field must be a UTF-8 encoded string with a length limit of 1024
//     characters.
func (r *ProjectsLocationsSampleQuerySetsService) Patch(name string, googleclouddiscoveryenginev1alphasamplequeryset *GoogleCloudDiscoveryengineV1alphaSampleQuerySet) *ProjectsLocationsSampleQuerySetsPatchCall {
	c := &ProjectsLocationsSampleQuerySetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphasamplequeryset = googleclouddiscoveryenginev1alphasamplequeryset
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided imported 'sample query set' to update. If not set, will by
// default update all fields.
func (c *ProjectsLocationsSampleQuerySetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsSampleQuerySetsPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsSampleQuerySetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsPatchCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsPatchCall {
	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 *ProjectsLocationsSampleQuerySetsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasamplequeryset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuerySet.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 *ProjectsLocationsSampleQuerySetsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuerySet, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuerySet{
		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", "discoveryengine.projects.locations.sampleQuerySets.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsSampleQuerySetsOperationsService) Get(name string) *ProjectsLocationsSampleQuerySetsOperationsGetCall {
	c := &ProjectsLocationsSampleQuerySetsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsSampleQuerySetsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsOperationsGetCall {
	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 *ProjectsLocationsSampleQuerySetsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsSampleQuerySetsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsOperationsGetCall {
	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 *ProjectsLocationsSampleQuerySetsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsSampleQuerySetsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.sampleQuerySets.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall struct {
	s                                            *Service
	parent                                       string
	googleclouddiscoveryenginev1alphasamplequery *GoogleCloudDiscoveryengineV1alphaSampleQuery
	urlParams_                                   gensupport.URLParams
	ctx_                                         context.Context
	header_                                      http.Header
}

// Create: Creates a SampleQuery
//
//   - parent: The parent resource name, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) Create(parent string, googleclouddiscoveryenginev1alphasamplequery *GoogleCloudDiscoveryengineV1alphaSampleQuery) *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphasamplequery = googleclouddiscoveryenginev1alphasamplequery
	return c
}

// SampleQueryId sets the optional parameter "sampleQueryId": Required. The ID
// to use for the SampleQuery, which will become the final component of the
// SampleQuery.name. If the caller does not have permission to create the
// SampleQuery, regardless of whether or not it exists, a `PERMISSION_DENIED`
// error is returned. This field must be unique among all SampleQuerys with the
// same parent. Otherwise, an `ALREADY_EXISTS` error is returned. This field
// must conform to RFC-1034 (https://tools.ietf.org/html/rfc1034) standard with
// a length limit of 63 characters. Otherwise, an `INVALID_ARGUMENT` error is
// returned.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) SampleQueryId(sampleQueryId string) *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall {
	c.urlParams_.Set("sampleQueryId", sampleQueryId)
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasamplequery)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sampleQueries")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuery.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 *ProjectsLocationsSampleQuerySetsSampleQueriesCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuery, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuery{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a SampleQuery.
//
//   - name: Full resource name of SampleQuery, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     /sampleQueries/{sample_query}`. If the caller does not have permission to
//     delete the SampleQuery, regardless of whether or not it exists, a
//     `PERMISSION_DENIED` error is returned. If the SampleQuery to delete does
//     not exist, a `NOT_FOUND` error is returned.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) Delete(name string) *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleProtobufEmpty.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 *ProjectsLocationsSampleQuerySetsSampleQueriesDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, 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 := &GoogleProtobufEmpty{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsSampleQueriesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets a SampleQuery.
//
//   - name: Full resource name of SampleQuery, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     /sampleQueries/{sample_query}`. If the caller does not have permission to
//     access the SampleQuery, regardless of whether or not it exists, a
//     PERMISSION_DENIED error is returned. If the requested SampleQuery does not
//     exist, a NOT_FOUND error is returned.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) Get(name string) *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuery.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 *ProjectsLocationsSampleQuerySetsSampleQueriesGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuery, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuery{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsSampleQueriesImportCall struct {
	s                                                           *Service
	parent                                                      string
	googleclouddiscoveryenginev1alphaimportsamplequeriesrequest *GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequest
	urlParams_                                                  gensupport.URLParams
	ctx_                                                        context.Context
	header_                                                     http.Header
}

// Import: Bulk import of multiple SampleQuerys. Sample queries that already
// exist may be deleted. Note: It is possible for a subset of the SampleQuerys
// to be successfully imported.
//
//   - parent: The parent sample query set resource name, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`.
//     If the caller does not have permission to list SampleQuerys under this
//     sample query set, regardless of whether or not this sample query set
//     exists, a `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) Import(parent string, googleclouddiscoveryenginev1alphaimportsamplequeriesrequest *GoogleCloudDiscoveryengineV1alphaImportSampleQueriesRequest) *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportsamplequeriesrequest = googleclouddiscoveryenginev1alphaimportsamplequeriesrequest
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportsamplequeriesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/sampleQueries:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsSampleQuerySetsSampleQueriesImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsSampleQuerySetsSampleQueriesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Gets a list of SampleQuerys.
//
//   - parent: The parent sample query set resource name, such as
//     `projects/{project}/locations/{location}/sampleQuerySets/{sampleQuerySet}`.
//     If the caller does not have permission to list SampleQuerys under this
//     sample query set, regardless of whether or not this sample query set
//     exists, a `PERMISSION_DENIED` error is returned.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) List(parent string) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// PageSize sets the optional parameter "pageSize": Maximum number of
// SampleQuerys to return. If unspecified, defaults to 100. The maximum allowed
// value is 1000. Values above 1000 will be coerced to 1000. If this field is
// negative, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) PageSize(pageSize int64) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token
// ListSampleQueriesResponse.next_page_token, received from a previous
// SampleQueryService.ListSampleQueries call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// SampleQueryService.ListSampleQueries must match the call that provided the
// page token. Otherwise, an `INVALID_ARGUMENT` error is returned.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) PageToken(pageToken string) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesListCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) 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, "v1alpha/{+parent}/sampleQueries")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse.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 *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.list", "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 *ProjectsLocationsSampleQuerySetsSampleQueriesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListSampleQueriesResponse) 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 ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall struct {
	s                                            *Service
	name                                         string
	googleclouddiscoveryenginev1alphasamplequery *GoogleCloudDiscoveryengineV1alphaSampleQuery
	urlParams_                                   gensupport.URLParams
	ctx_                                         context.Context
	header_                                      http.Header
}

// Patch: Updates a SampleQuery.
//
//   - name: Identifier. The full resource name of the sample query, in the
//     format of
//     `projects/{project}/locations/{location}/sampleQuerySets/{sample_query_set}
//     /sampleQueries/{sample_query}`. This field must be a UTF-8 encoded string
//     with a length limit of 1024 characters.
func (r *ProjectsLocationsSampleQuerySetsSampleQueriesService) Patch(name string, googleclouddiscoveryenginev1alphasamplequery *GoogleCloudDiscoveryengineV1alphaSampleQuery) *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall {
	c := &ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphasamplequery = googleclouddiscoveryenginev1alphasamplequery
	return c
}

// UpdateMask sets the optional parameter "updateMask": Indicates which fields
// in the provided imported 'simple query' to update. If not set, will by
// default update all fields.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) Context(ctx context.Context) *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall {
	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 *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphasamplequery)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaSampleQuery.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 *ProjectsLocationsSampleQuerySetsSampleQueriesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaSampleQuery, 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 := &GoogleCloudDiscoveryengineV1alphaSampleQuery{
		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", "discoveryengine.projects.locations.sampleQuerySets.sampleQueries.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserEventsCollectCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Collect: Writes a single user event from the browser. This uses a GET
// request to due to browser restriction of POST-ing to a third-party domain.
// This method is used only by the Discovery Engine API JavaScript pixel and
// Google Tag Manager. Users should not call this method directly.
//
//   - parent: The parent resource name. If the collect user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the collect user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsUserEventsService) Collect(parent string) *ProjectsLocationsUserEventsCollectCall {
	c := &ProjectsLocationsUserEventsCollectCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Ets sets the optional parameter "ets": The event timestamp in milliseconds.
// This prevents browser caching of otherwise identical get requests. The name
// is abbreviated to reduce the payload bytes.
func (c *ProjectsLocationsUserEventsCollectCall) Ets(ets int64) *ProjectsLocationsUserEventsCollectCall {
	c.urlParams_.Set("ets", fmt.Sprint(ets))
	return c
}

// Uri sets the optional parameter "uri": The URL including cgi-parameters but
// excluding the hash fragment with a length limit of 5,000 characters. This is
// often more useful than the referer URL, because many browsers only send the
// domain for third-party requests.
func (c *ProjectsLocationsUserEventsCollectCall) Uri(uri string) *ProjectsLocationsUserEventsCollectCall {
	c.urlParams_.Set("uri", uri)
	return c
}

// UserEvent sets the optional parameter "userEvent": Required. URL encoded
// UserEvent proto with a length limit of 2,000,000 characters.
func (c *ProjectsLocationsUserEventsCollectCall) UserEvent(userEvent string) *ProjectsLocationsUserEventsCollectCall {
	c.urlParams_.Set("userEvent", userEvent)
	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 *ProjectsLocationsUserEventsCollectCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserEventsCollectCall {
	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 *ProjectsLocationsUserEventsCollectCall) IfNoneMatch(entityTag string) *ProjectsLocationsUserEventsCollectCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserEventsCollectCall) Context(ctx context.Context) *ProjectsLocationsUserEventsCollectCall {
	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 *ProjectsLocationsUserEventsCollectCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserEventsCollectCall) 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, "v1alpha/{+parent}/userEvents:collect")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userEvents.collect", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userEvents.collect" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleApiHttpBody.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 *ProjectsLocationsUserEventsCollectCall) Do(opts ...googleapi.CallOption) (*GoogleApiHttpBody, 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 := &GoogleApiHttpBody{
		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", "discoveryengine.projects.locations.userEvents.collect", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserEventsImportCall struct {
	s                                                        *Service
	parent                                                   string
	googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest
	urlParams_                                               gensupport.URLParams
	ctx_                                                     context.Context
	header_                                                  http.Header
}

// Import: Bulk import of user events. Request processing might be synchronous.
// Events that already exist are skipped. Use this method for backfilling
// historical user events. Operation.response is of type ImportResponse. Note
// that it is possible for a subset of the items to be successfully inserted.
// Operation.metadata is of type ImportMetadata.
//
//   - parent: Parent DataStore resource name, of the form
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`.
func (r *ProjectsLocationsUserEventsService) Import(parent string, googleclouddiscoveryenginev1alphaimportusereventsrequest *GoogleCloudDiscoveryengineV1alphaImportUserEventsRequest) *ProjectsLocationsUserEventsImportCall {
	c := &ProjectsLocationsUserEventsImportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphaimportusereventsrequest = googleclouddiscoveryenginev1alphaimportusereventsrequest
	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 *ProjectsLocationsUserEventsImportCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserEventsImportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserEventsImportCall) Context(ctx context.Context) *ProjectsLocationsUserEventsImportCall {
	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 *ProjectsLocationsUserEventsImportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserEventsImportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphaimportusereventsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:import")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userEvents.import", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userEvents.import" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsUserEventsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.userEvents.import", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserEventsWriteCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Write: Writes a single user event.
//
//   - parent: The parent resource name. If the write user event action is
//     applied in DataStore level, the format is:
//     `projects/{project}/locations/{location}/collections/{collection}/dataStore
//     s/{data_store}`. If the write user event action is applied in Location
//     level, for example, the event with Document across multiple DataStore, the
//     format is: `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsUserEventsService) Write(parent string, googleclouddiscoveryenginev1alphauserevent *GoogleCloudDiscoveryengineV1alphaUserEvent) *ProjectsLocationsUserEventsWriteCall {
	c := &ProjectsLocationsUserEventsWriteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphauserevent = googleclouddiscoveryenginev1alphauserevent
	return c
}

// WriteAsync sets the optional parameter "writeAsync": If set to true, the
// user event is written asynchronously after validation, and the API responds
// without waiting for the write.
func (c *ProjectsLocationsUserEventsWriteCall) WriteAsync(writeAsync bool) *ProjectsLocationsUserEventsWriteCall {
	c.urlParams_.Set("writeAsync", fmt.Sprint(writeAsync))
	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 *ProjectsLocationsUserEventsWriteCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserEventsWriteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserEventsWriteCall) Context(ctx context.Context) *ProjectsLocationsUserEventsWriteCall {
	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 *ProjectsLocationsUserEventsWriteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserEventsWriteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphauserevent)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userEvents:write")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userEvents.write", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userEvents.write" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserEvent.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 *ProjectsLocationsUserEventsWriteCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserEvent, 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 := &GoogleCloudDiscoveryengineV1alphaUserEvent{
		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", "discoveryengine.projects.locations.userEvents.write", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresBatchUpdateUserLicensesCall struct {
	s                                                               *Service
	parent                                                          string
	googleclouddiscoveryenginev1alphabatchupdateuserlicensesrequest *GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequest
	urlParams_                                                      gensupport.URLParams
	ctx_                                                            context.Context
	header_                                                         http.Header
}

// BatchUpdateUserLicenses: Updates the User License. This method is used for
// batch assign/unassign licenses to users.
//
//   - parent: The parent UserStore resource name, format:
//     `projects/{project}/locations/{location}/userStores/{user_store_id}`.
func (r *ProjectsLocationsUserStoresService) BatchUpdateUserLicenses(parent string, googleclouddiscoveryenginev1alphabatchupdateuserlicensesrequest *GoogleCloudDiscoveryengineV1alphaBatchUpdateUserLicensesRequest) *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall {
	c := &ProjectsLocationsUserStoresBatchUpdateUserLicensesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphabatchupdateuserlicensesrequest = googleclouddiscoveryenginev1alphabatchupdateuserlicensesrequest
	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 *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall) Context(ctx context.Context) *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall {
	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 *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphabatchupdateuserlicensesrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}:batchUpdateUserLicenses")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.batchUpdateUserLicenses", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.batchUpdateUserLicenses" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsUserStoresBatchUpdateUserLicensesCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.userStores.batchUpdateUserLicenses", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresCreateCall struct {
	s                                          *Service
	parent                                     string
	googleclouddiscoveryenginev1alphauserstore *GoogleCloudDiscoveryengineV1alphaUserStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Create: Creates a new User Store.
//
//   - parent: The parent collection resource name, such as
//     `projects/{project}/locations/{location}`.
func (r *ProjectsLocationsUserStoresService) Create(parent string, googleclouddiscoveryenginev1alphauserstore *GoogleCloudDiscoveryengineV1alphaUserStore) *ProjectsLocationsUserStoresCreateCall {
	c := &ProjectsLocationsUserStoresCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.googleclouddiscoveryenginev1alphauserstore = googleclouddiscoveryenginev1alphauserstore
	return c
}

// UserStoreId sets the optional parameter "userStoreId": Required. The ID of
// the User Store to create. The ID must contain only letters (a-z, A-Z),
// numbers (0-9), underscores (_), and hyphens (-). The maximum length is 63
// characters.
func (c *ProjectsLocationsUserStoresCreateCall) UserStoreId(userStoreId string) *ProjectsLocationsUserStoresCreateCall {
	c.urlParams_.Set("userStoreId", userStoreId)
	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 *ProjectsLocationsUserStoresCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresCreateCall) Context(ctx context.Context) *ProjectsLocationsUserStoresCreateCall {
	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 *ProjectsLocationsUserStoresCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphauserstore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/userStores")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserStore.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 *ProjectsLocationsUserStoresCreateCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserStore, 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 := &GoogleCloudDiscoveryengineV1alphaUserStore{
		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", "discoveryengine.projects.locations.userStores.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the User Store.
//
//   - name: The name of the User Store to delete. Format:
//     `projects/{project}/locations/{location}/userStores/{user_store_id}`.
func (r *ProjectsLocationsUserStoresService) Delete(name string) *ProjectsLocationsUserStoresDeleteCall {
	c := &ProjectsLocationsUserStoresDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsUserStoresDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresDeleteCall) Context(ctx context.Context) *ProjectsLocationsUserStoresDeleteCall {
	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 *ProjectsLocationsUserStoresDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("DELETE", urls, nil)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsUserStoresDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.userStores.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the User Store.
//
//   - name: The name of the User Store to get. Format:
//     `projects/{project}/locations/{location}/userStores/{user_store_id}`.
func (r *ProjectsLocationsUserStoresService) Get(name string) *ProjectsLocationsUserStoresGetCall {
	c := &ProjectsLocationsUserStoresGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsUserStoresGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresGetCall {
	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 *ProjectsLocationsUserStoresGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsUserStoresGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresGetCall) Context(ctx context.Context) *ProjectsLocationsUserStoresGetCall {
	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 *ProjectsLocationsUserStoresGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserStore.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 *ProjectsLocationsUserStoresGetCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserStore, 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 := &GoogleCloudDiscoveryengineV1alphaUserStore{
		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", "discoveryengine.projects.locations.userStores.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresPatchCall struct {
	s                                          *Service
	name                                       string
	googleclouddiscoveryenginev1alphauserstore *GoogleCloudDiscoveryengineV1alphaUserStore
	urlParams_                                 gensupport.URLParams
	ctx_                                       context.Context
	header_                                    http.Header
}

// Patch: Updates the User Store.
//
//   - name: Immutable. The full resource name of the User Store, in the format
//     of `projects/{project}/locations/{location}/userStores/{user_store}`. This
//     field must be a UTF-8 encoded string with a length limit of 1024
//     characters.
func (r *ProjectsLocationsUserStoresService) Patch(name string, googleclouddiscoveryenginev1alphauserstore *GoogleCloudDiscoveryengineV1alphaUserStore) *ProjectsLocationsUserStoresPatchCall {
	c := &ProjectsLocationsUserStoresPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.googleclouddiscoveryenginev1alphauserstore = googleclouddiscoveryenginev1alphauserstore
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// update.
func (c *ProjectsLocationsUserStoresPatchCall) UpdateMask(updateMask string) *ProjectsLocationsUserStoresPatchCall {
	c.urlParams_.Set("updateMask", updateMask)
	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 *ProjectsLocationsUserStoresPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresPatchCall) Context(ctx context.Context) *ProjectsLocationsUserStoresPatchCall {
	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 *ProjectsLocationsUserStoresPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.googleclouddiscoveryenginev1alphauserstore)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
	urls += "?" + c.urlParams_.Encode()
	req, err := http.NewRequest("PATCH", urls, body)
	if err != nil {
		return nil, err
	}
	req.Header = reqHeaders
	googleapi.Expand(req.URL, map[string]string{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaUserStore.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 *ProjectsLocationsUserStoresPatchCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaUserStore, 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 := &GoogleCloudDiscoveryengineV1alphaUserStore{
		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", "discoveryengine.projects.locations.userStores.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsLocationsUserStoresOperationsService) Get(name string) *ProjectsLocationsUserStoresOperationsGetCall {
	c := &ProjectsLocationsUserStoresOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsLocationsUserStoresOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresOperationsGetCall {
	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 *ProjectsLocationsUserStoresOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsUserStoresOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsUserStoresOperationsGetCall {
	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 *ProjectsLocationsUserStoresOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsLocationsUserStoresOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.locations.userStores.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsUserStoresOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsLocationsUserStoresOperationsService) List(name string) *ProjectsLocationsUserStoresOperationsListCall {
	c := &ProjectsLocationsUserStoresOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsLocationsUserStoresOperationsListCall) Filter(filter string) *ProjectsLocationsUserStoresOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsLocationsUserStoresOperationsListCall) PageSize(pageSize int64) *ProjectsLocationsUserStoresOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsLocationsUserStoresOperationsListCall) PageToken(pageToken string) *ProjectsLocationsUserStoresOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsLocationsUserStoresOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsLocationsUserStoresOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsLocationsUserStoresOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresOperationsListCall {
	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 *ProjectsLocationsUserStoresOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsUserStoresOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresOperationsListCall) Context(ctx context.Context) *ProjectsLocationsUserStoresOperationsListCall {
	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 *ProjectsLocationsUserStoresOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsLocationsUserStoresOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.locations.userStores.operations.list", "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 *ProjectsLocationsUserStoresOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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 ProjectsLocationsUserStoresUserLicensesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists the User Licenses.
//
//   - parent: The parent UserStore resource name, format:
//     `projects/{project}/locations/{location}/userStores/{user_store_id}`.
func (r *ProjectsLocationsUserStoresUserLicensesService) List(parent string) *ProjectsLocationsUserStoresUserLicensesListCall {
	c := &ProjectsLocationsUserStoresUserLicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter for the list request.
// Supported fields: * `license_assignment_state` Examples: *
// `license_assignment_state = ASSIGNED` to list assigned user licenses. *
// `license_assignment_state = NO_LICENSE` to list not licensed users. *
// `license_assignment_state = NO_LICENSE_ATTEMPTED_LOGIN` to list users who
// attempted login but no license assigned. * `license_assignment_state !=
// NO_LICENSE_ATTEMPTED_LOGIN` to filter out users who attempted login but no
// license assigned.
func (c *ProjectsLocationsUserStoresUserLicensesListCall) Filter(filter string) *ProjectsLocationsUserStoresUserLicensesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": Requested page size. Server
// may return fewer items than requested. If unspecified, defaults to 10. The
// maximum value is 50; values above 50 will be coerced to 50. If this field is
// negative, an INVALID_ARGUMENT error is returned.
func (c *ProjectsLocationsUserStoresUserLicensesListCall) PageSize(pageSize int64) *ProjectsLocationsUserStoresUserLicensesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListUserLicenses` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListUserLicenses` must match the call that provided the page token.
func (c *ProjectsLocationsUserStoresUserLicensesListCall) PageToken(pageToken string) *ProjectsLocationsUserStoresUserLicensesListCall {
	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 *ProjectsLocationsUserStoresUserLicensesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsUserStoresUserLicensesListCall {
	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 *ProjectsLocationsUserStoresUserLicensesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsUserStoresUserLicensesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUserStoresUserLicensesListCall) Context(ctx context.Context) *ProjectsLocationsUserStoresUserLicensesListCall {
	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 *ProjectsLocationsUserStoresUserLicensesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUserStoresUserLicensesListCall) 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, "v1alpha/{+parent}/userLicenses")
	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{
		"parent": c.parent,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.locations.userStores.userLicenses.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.locations.userStores.userLicenses.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse.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 *ProjectsLocationsUserStoresUserLicensesListCall) Do(opts ...googleapi.CallOption) (*GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse, 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 := &GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse{
		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", "discoveryengine.projects.locations.userStores.userLicenses.list", "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 *ProjectsLocationsUserStoresUserLicensesListCall) Pages(ctx context.Context, f func(*GoogleCloudDiscoveryengineV1alphaListUserLicensesResponse) 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 ProjectsOperationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the latest state of a long-running operation. Clients can use this
// method to poll the operation result at intervals as recommended by the API
// service.
//
// - name: The name of the operation resource.
func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall {
	c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	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 *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall {
	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 *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall {
	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 *ProjectsOperationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsOperationsGetCall) 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, "v1alpha/{+name}")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningOperation.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 *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, 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 := &GoogleLongrunningOperation{
		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", "discoveryengine.projects.operations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsOperationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists operations that match the specified filter in the request. If
// the server doesn't support this method, it returns `UNIMPLEMENTED`.
//
// - name: The name of the operation's parent resource.
func (r *ProjectsOperationsService) List(name string) *ProjectsOperationsListCall {
	c := &ProjectsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Filter sets the optional parameter "filter": The standard list filter.
func (c *ProjectsOperationsListCall) Filter(filter string) *ProjectsOperationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The standard list page
// size.
func (c *ProjectsOperationsListCall) PageSize(pageSize int64) *ProjectsOperationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The standard list page
// token.
func (c *ProjectsOperationsListCall) PageToken(pageToken string) *ProjectsOperationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// ReturnPartialSuccess sets the optional parameter "returnPartialSuccess":
// When set to `true`, operations that are reachable are returned as normal,
// and those that are unreachable are returned in the
// [ListOperationsResponse.unreachable] field. This can only be `true` when
// reading across collections e.g. when `parent` is set to
// "projects/example/locations/-". This field is not by default supported and
// will result in an `UNIMPLEMENTED` error if set unless explicitly documented
// otherwise in service or product specific documentation.
func (c *ProjectsOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsOperationsListCall {
	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
	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 *ProjectsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsOperationsListCall {
	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 *ProjectsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsOperationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsOperationsListCall) Context(ctx context.Context) *ProjectsOperationsListCall {
	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 *ProjectsOperationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsOperationsListCall) 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, "v1alpha/{+name}/operations")
	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{
		"name": c.name,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "discoveryengine.projects.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "discoveryengine.projects.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *GoogleLongrunningListOperationsResponse.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 *ProjectsOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, 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 := &GoogleLongrunningListOperationsResponse{
		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", "discoveryengine.projects.operations.list", "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 *ProjectsOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) 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)
	}
}
