// Copyright 2026 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Code generated file. DO NOT EDIT.

// Package ces provides access to the Gemini Enterprise for Customer Experience API.
//
// For product documentation, see: https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps
//
// # 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/ces/v1beta"
//	...
//	ctx := context.Background()
//	cesService, err := ces.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]:
//
//	cesService, err := ces.NewService(ctx, option.WithScopes(ces.CloudPlatformScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
//	cesService, err := ces.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, ...)
//	cesService, err := ces.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package ces // import "google.golang.org/api/ces/v1beta"

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

// OAuth2 scopes used by this API.
const (
	// Create, update, delete, and manage your Next Gen Agents
	CesScope = "https://www.googleapis.com/auth/ces"

	// 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"
)

// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
	scopesOption := internaloption.WithDefaultScopes(
		"https://www.googleapis.com/auth/ces",
		"https://www.googleapis.com/auth/cloud-platform",
	)
	// 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.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

	Projects *ProjectsService
}

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

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

type ProjectsService struct {
	s *Service

	Locations *ProjectsLocationsService
}

func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
	rs := &ProjectsLocationsService{s: s}
	rs.Apps = NewProjectsLocationsAppsService(s)
	rs.Operations = NewProjectsLocationsOperationsService(s)
	return rs
}

type ProjectsLocationsService struct {
	s *Service

	Apps *ProjectsLocationsAppsService

	Operations *ProjectsLocationsOperationsService
}

func NewProjectsLocationsAppsService(s *Service) *ProjectsLocationsAppsService {
	rs := &ProjectsLocationsAppsService{s: s}
	rs.Agents = NewProjectsLocationsAppsAgentsService(s)
	rs.Changelogs = NewProjectsLocationsAppsChangelogsService(s)
	rs.Conversations = NewProjectsLocationsAppsConversationsService(s)
	rs.Deployments = NewProjectsLocationsAppsDeploymentsService(s)
	rs.EvaluationDatasets = NewProjectsLocationsAppsEvaluationDatasetsService(s)
	rs.EvaluationExpectations = NewProjectsLocationsAppsEvaluationExpectationsService(s)
	rs.EvaluationRuns = NewProjectsLocationsAppsEvaluationRunsService(s)
	rs.Evaluations = NewProjectsLocationsAppsEvaluationsService(s)
	rs.Examples = NewProjectsLocationsAppsExamplesService(s)
	rs.Guardrails = NewProjectsLocationsAppsGuardrailsService(s)
	rs.Message = NewProjectsLocationsAppsMessageService(s)
	rs.ScheduledEvaluationRuns = NewProjectsLocationsAppsScheduledEvaluationRunsService(s)
	rs.Sessions = NewProjectsLocationsAppsSessionsService(s)
	rs.Tools = NewProjectsLocationsAppsToolsService(s)
	rs.Toolsets = NewProjectsLocationsAppsToolsetsService(s)
	rs.Versions = NewProjectsLocationsAppsVersionsService(s)
	return rs
}

type ProjectsLocationsAppsService struct {
	s *Service

	Agents *ProjectsLocationsAppsAgentsService

	Changelogs *ProjectsLocationsAppsChangelogsService

	Conversations *ProjectsLocationsAppsConversationsService

	Deployments *ProjectsLocationsAppsDeploymentsService

	EvaluationDatasets *ProjectsLocationsAppsEvaluationDatasetsService

	EvaluationExpectations *ProjectsLocationsAppsEvaluationExpectationsService

	EvaluationRuns *ProjectsLocationsAppsEvaluationRunsService

	Evaluations *ProjectsLocationsAppsEvaluationsService

	Examples *ProjectsLocationsAppsExamplesService

	Guardrails *ProjectsLocationsAppsGuardrailsService

	Message *ProjectsLocationsAppsMessageService

	ScheduledEvaluationRuns *ProjectsLocationsAppsScheduledEvaluationRunsService

	Sessions *ProjectsLocationsAppsSessionsService

	Tools *ProjectsLocationsAppsToolsService

	Toolsets *ProjectsLocationsAppsToolsetsService

	Versions *ProjectsLocationsAppsVersionsService
}

func NewProjectsLocationsAppsAgentsService(s *Service) *ProjectsLocationsAppsAgentsService {
	rs := &ProjectsLocationsAppsAgentsService{s: s}
	return rs
}

type ProjectsLocationsAppsAgentsService struct {
	s *Service
}

func NewProjectsLocationsAppsChangelogsService(s *Service) *ProjectsLocationsAppsChangelogsService {
	rs := &ProjectsLocationsAppsChangelogsService{s: s}
	return rs
}

type ProjectsLocationsAppsChangelogsService struct {
	s *Service
}

func NewProjectsLocationsAppsConversationsService(s *Service) *ProjectsLocationsAppsConversationsService {
	rs := &ProjectsLocationsAppsConversationsService{s: s}
	return rs
}

type ProjectsLocationsAppsConversationsService struct {
	s *Service
}

func NewProjectsLocationsAppsDeploymentsService(s *Service) *ProjectsLocationsAppsDeploymentsService {
	rs := &ProjectsLocationsAppsDeploymentsService{s: s}
	return rs
}

type ProjectsLocationsAppsDeploymentsService struct {
	s *Service
}

func NewProjectsLocationsAppsEvaluationDatasetsService(s *Service) *ProjectsLocationsAppsEvaluationDatasetsService {
	rs := &ProjectsLocationsAppsEvaluationDatasetsService{s: s}
	return rs
}

type ProjectsLocationsAppsEvaluationDatasetsService struct {
	s *Service
}

func NewProjectsLocationsAppsEvaluationExpectationsService(s *Service) *ProjectsLocationsAppsEvaluationExpectationsService {
	rs := &ProjectsLocationsAppsEvaluationExpectationsService{s: s}
	return rs
}

type ProjectsLocationsAppsEvaluationExpectationsService struct {
	s *Service
}

func NewProjectsLocationsAppsEvaluationRunsService(s *Service) *ProjectsLocationsAppsEvaluationRunsService {
	rs := &ProjectsLocationsAppsEvaluationRunsService{s: s}
	return rs
}

type ProjectsLocationsAppsEvaluationRunsService struct {
	s *Service
}

func NewProjectsLocationsAppsEvaluationsService(s *Service) *ProjectsLocationsAppsEvaluationsService {
	rs := &ProjectsLocationsAppsEvaluationsService{s: s}
	rs.Results = NewProjectsLocationsAppsEvaluationsResultsService(s)
	return rs
}

type ProjectsLocationsAppsEvaluationsService struct {
	s *Service

	Results *ProjectsLocationsAppsEvaluationsResultsService
}

func NewProjectsLocationsAppsEvaluationsResultsService(s *Service) *ProjectsLocationsAppsEvaluationsResultsService {
	rs := &ProjectsLocationsAppsEvaluationsResultsService{s: s}
	return rs
}

type ProjectsLocationsAppsEvaluationsResultsService struct {
	s *Service
}

func NewProjectsLocationsAppsExamplesService(s *Service) *ProjectsLocationsAppsExamplesService {
	rs := &ProjectsLocationsAppsExamplesService{s: s}
	return rs
}

type ProjectsLocationsAppsExamplesService struct {
	s *Service
}

func NewProjectsLocationsAppsGuardrailsService(s *Service) *ProjectsLocationsAppsGuardrailsService {
	rs := &ProjectsLocationsAppsGuardrailsService{s: s}
	return rs
}

type ProjectsLocationsAppsGuardrailsService struct {
	s *Service
}

func NewProjectsLocationsAppsMessageService(s *Service) *ProjectsLocationsAppsMessageService {
	rs := &ProjectsLocationsAppsMessageService{s: s}
	return rs
}

type ProjectsLocationsAppsMessageService struct {
	s *Service
}

func NewProjectsLocationsAppsScheduledEvaluationRunsService(s *Service) *ProjectsLocationsAppsScheduledEvaluationRunsService {
	rs := &ProjectsLocationsAppsScheduledEvaluationRunsService{s: s}
	return rs
}

type ProjectsLocationsAppsScheduledEvaluationRunsService struct {
	s *Service
}

func NewProjectsLocationsAppsSessionsService(s *Service) *ProjectsLocationsAppsSessionsService {
	rs := &ProjectsLocationsAppsSessionsService{s: s}
	return rs
}

type ProjectsLocationsAppsSessionsService struct {
	s *Service
}

func NewProjectsLocationsAppsToolsService(s *Service) *ProjectsLocationsAppsToolsService {
	rs := &ProjectsLocationsAppsToolsService{s: s}
	return rs
}

type ProjectsLocationsAppsToolsService struct {
	s *Service
}

func NewProjectsLocationsAppsToolsetsService(s *Service) *ProjectsLocationsAppsToolsetsService {
	rs := &ProjectsLocationsAppsToolsetsService{s: s}
	return rs
}

type ProjectsLocationsAppsToolsetsService struct {
	s *Service
}

func NewProjectsLocationsAppsVersionsService(s *Service) *ProjectsLocationsAppsVersionsService {
	rs := &ProjectsLocationsAppsVersionsService{s: s}
	return rs
}

type ProjectsLocationsAppsVersionsService struct {
	s *Service
}

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

type ProjectsLocationsOperationsService struct {
	s *Service
}

// Action: Configuration of an Action for the tool to use. Note: This can be
// either an Action or an Operation. See
// https://cloud.google.com/integration-connectors/docs/entities-operation-action
// for details.
type Action struct {
	// ConnectionActionId: ID of a Connection action for the tool to use.
	ConnectionActionId string `json:"connectionActionId,omitempty"`
	// EntityOperation: Entity operation configuration for the tool to use.
	EntityOperation *ActionEntityOperation `json:"entityOperation,omitempty"`
	// InputFields: Optional. Entity fields to use as inputs for the operation. If
	// no fields are specified, all fields of the Entity will be used.
	InputFields []string `json:"inputFields,omitempty"`
	// OutputFields: Optional. Entity fields to return from the operation. If no
	// fields are specified, all fields of the Entity will be returned.
	OutputFields []string `json:"outputFields,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectionActionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectionActionId") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ActionEntityOperation: Entity CRUD operation specification.
type ActionEntityOperation struct {
	// EntityId: Required. ID of the entity.
	EntityId string `json:"entityId,omitempty"`
	// Operation: Required. Operation to perform on the entity.
	//
	// Possible values:
	//   "OPERATION_TYPE_UNSPECIFIED" - Operation type unspecified. Invalid,
	// ConnectorTool create/update will fail.
	//   "LIST" - List operation.
	//   "GET" - Get operation.
	//   "CREATE" - Create operation.
	//   "UPDATE" - Update operation.
	//   "DELETE" - Delete operation.
	Operation string `json:"operation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EntityId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EntityId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Agent: An agent acts as the fundamental building block that provides
// instructions to the Large Language Model (LLM) for executing specific tasks.
type Agent struct {
	// AfterAgentCallbacks: Optional. The callbacks to execute after the agent is
	// called. The provided callbacks are executed sequentially in the exact order
	// they are given in the list. If a callback returns an overridden response,
	// execution stops and any remaining callbacks are skipped.
	AfterAgentCallbacks []*Callback `json:"afterAgentCallbacks,omitempty"`
	// AfterModelCallbacks: Optional. The callbacks to execute after the model is
	// called. If there are multiple calls to the model, the callback will be
	// executed multiple times. The provided callbacks are executed sequentially in
	// the exact order they are given in the list. If a callback returns an
	// overridden response, execution stops and any remaining callbacks are
	// skipped.
	AfterModelCallbacks []*Callback `json:"afterModelCallbacks,omitempty"`
	// AfterToolCallbacks: Optional. The callbacks to execute after the tool is
	// invoked. If there are multiple tool invocations, the callback will be
	// executed multiple times. The provided callbacks are executed sequentially in
	// the exact order they are given in the list. If a callback returns an
	// overridden response, execution stops and any remaining callbacks are
	// skipped.
	AfterToolCallbacks []*Callback `json:"afterToolCallbacks,omitempty"`
	// BeforeAgentCallbacks: Optional. The callbacks to execute before the agent is
	// called. The provided callbacks are executed sequentially in the exact order
	// they are given in the list. If a callback returns an overridden response,
	// execution stops and any remaining callbacks are skipped.
	BeforeAgentCallbacks []*Callback `json:"beforeAgentCallbacks,omitempty"`
	// BeforeModelCallbacks: Optional. The callbacks to execute before the model is
	// called. If there are multiple calls to the model, the callback will be
	// executed multiple times. The provided callbacks are executed sequentially in
	// the exact order they are given in the list. If a callback returns an
	// overridden response, execution stops and any remaining callbacks are
	// skipped.
	BeforeModelCallbacks []*Callback `json:"beforeModelCallbacks,omitempty"`
	// BeforeToolCallbacks: Optional. The callbacks to execute before the tool is
	// invoked. If there are multiple tool invocations, the callback will be
	// executed multiple times. The provided callbacks are executed sequentially in
	// the exact order they are given in the list. If a callback returns an
	// overridden response, execution stops and any remaining callbacks are
	// skipped.
	BeforeToolCallbacks []*Callback `json:"beforeToolCallbacks,omitempty"`
	// ChildAgents: Optional. List of child agents in the agent tree. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	ChildAgents []string `json:"childAgents,omitempty"`
	// CreateTime: Output only. Timestamp when the agent was created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Optional. Human-readable description of the agent.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. Display name of the agent.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// GeneratedSummary: Output only. If the agent is generated by the LLM
	// assistant, this field contains a descriptive summary of the generation.
	GeneratedSummary string `json:"generatedSummary,omitempty"`
	// Guardrails: Optional. List of guardrails for the agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
	Guardrails []string `json:"guardrails,omitempty"`
	// Instruction: Optional. Instructions for the LLM model to guide the agent's
	// behavior.
	Instruction string `json:"instruction,omitempty"`
	// LlmAgent: Optional. The default agent type.
	LlmAgent *AgentLlmAgent `json:"llmAgent,omitempty"`
	// ModelSettings: Optional. Configurations for the LLM model.
	ModelSettings *ModelSettings `json:"modelSettings,omitempty"`
	// Name: Identifier. The unique identifier of the agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	Name string `json:"name,omitempty"`
	// RemoteDialogflowAgent: Optional. The remote Dialogflow
	// (https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
	// agent to be used for the agent execution. If this field is set, all other
	// agent level properties will be ignored. Note: If the Dialogflow agent is in
	// a different project from the app, you should grant `roles/dialogflow.client`
	// to the CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	RemoteDialogflowAgent *AgentRemoteDialogflowAgent `json:"remoteDialogflowAgent,omitempty"`
	// Tools: Optional. List of available tools for the agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	Tools []string `json:"tools,omitempty"`
	// Toolsets: Optional. List of toolsets for the agent.
	Toolsets []*AgentAgentToolset `json:"toolsets,omitempty"`
	// TransferRules: Optional. Agent transfer rules. If multiple rules match, the
	// first one in the list will be used.
	TransferRules []*TransferRule `json:"transferRules,omitempty"`
	// UpdateTime: Output only. Timestamp when the agent was last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ValidationErrors: Output only. Misconfigurations or errors in the agent that
	// may affect agent quality.
	ValidationErrors []string `json:"validationErrors,omitempty"`

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

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

// AgentAgentToolset: A toolset with a selection of its tools.
type AgentAgentToolset struct {
	// ToolIds: Optional. The tools IDs to filter the toolset.
	ToolIds []string `json:"toolIds,omitempty"`
	// Toolset: Required. The resource name of the toolset. Format:
	// `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
	Toolset string `json:"toolset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolIds") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolIds") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentCard: AgentCard conveys key information about a remote agent. It is a
// trimmed version of the AgentCard defined in the A2A protocol
// https://a2a-protocol.org/dev/specification/#441-agentcard
type AgentCard struct {
	// Description: Required. A description of the agent's domain of
	// action/solution space.
	Description string `json:"description,omitempty"`
	// Name: Required. A human-readable name for the agent.
	Name string `json:"name,omitempty"`
	// Skills: Required. Skills represent a unit of ability an agent can perform.
	// This may somewhat abstract but represents a more focused set of actions that
	// the agent is highly likely to succeed at.
	Skills []*AgentSkill `json:"skills,omitempty"`
	// SupportedInterfaces: Required. Ordered list of supported interfaces. The
	// first entry is preferred.
	SupportedInterfaces []*AgentInterface `json:"supportedInterfaces,omitempty"`
	// Version: Required. The version of the agent.
	Version string `json:"version,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 AgentCard) MarshalJSON() ([]byte, error) {
	type NoMethod AgentCard
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AgentInterface: Declares a combination of a target URL, transport and
// protocol version for interacting with the agent. This allows agents to
// expose the same functionality over multiple protocol binding mechanisms.
type AgentInterface struct {
	// ProtocolBinding: Required. The protocol binding supported at this URL. This
	// is an open form string, to be easily extended for other protocol bindings.
	// The core ones officially supported are `JSONRPC`, `GRPC` and `HTTP+JSON`.
	ProtocolBinding string `json:"protocolBinding,omitempty"`
	// ProtocolVersion: Required. The version of the A2A protocol this interface
	// exposes. Use the latest supported minor version per major version. Examples:
	// "0.3", "1.0"
	ProtocolVersion string `json:"protocolVersion,omitempty"`
	// Tenant: Tenant ID to be used in the request when calling the agent.
	Tenant string `json:"tenant,omitempty"`
	// Url: Required. The URL where this interface is available. Must be a valid
	// absolute HTTPS URL in production. Example: "https://api.example.com/a2a/v1",
	// "https://grpc.example.com/a2a"
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ProtocolBinding") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ProtocolBinding") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentLlmAgent: Default agent type. The agent uses instructions and callbacks
// specified in the agent to perform the task using a large language model.
type AgentLlmAgent struct {
}

// AgentRemoteDialogflowAgent: The agent which will transfer execution to a
// remote Dialogflow CX
// (https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent. The
// Dialogflow agent will process subsequent user queries until the session ends
// or flow ends, and the control is transferred back to the parent CES agent.
type AgentRemoteDialogflowAgent struct {
	// Agent: Required. The Dialogflow
	// (https://docs.cloud.google.com/dialogflow/cx/docs/concept/agent) agent
	// resource name. Format:
	// `projects/{project}/locations/{location}/agents/{agent}`
	Agent string `json:"agent,omitempty"`
	// EnvironmentId: Optional. The environment ID of the Dialogflow agent to be
	// used for the agent execution. If not specified, the draft environment will
	// be used.
	EnvironmentId string `json:"environmentId,omitempty"`
	// FlowId: Optional. The flow ID of the flow in the Dialogflow agent.
	FlowId string `json:"flowId,omitempty"`
	// InputVariableMapping: Optional. The mapping of the app variables names to
	// the Dialogflow session parameters names to be sent to the Dialogflow agent
	// as input.
	InputVariableMapping map[string]string `json:"inputVariableMapping,omitempty"`
	// LanguageCodeVariable: Optional. The name of the variable that contains the
	// language code to be used for the Dialogflow session. If unspecified, the
	// default language code of the Dialogflow agent will be used.
	LanguageCodeVariable string `json:"languageCodeVariable,omitempty"`
	// OutputVariableMapping: Optional. The mapping of the Dialogflow session
	// parameters names to the app variables names to be sent back to the CES agent
	// after the Dialogflow agent execution ends.
	OutputVariableMapping map[string]string `json:"outputVariableMapping,omitempty"`
	// RespectResponseInterruptionSettings: Optional. Indicates whether to respect
	// the message-level interruption settings configured in the Dialogflow agent.
	// * If false: all response messages from the Dialogflow agent follow the
	// app-level barge-in settings. * If true: only response messages with
	// `allow_playback_interruption`
	// (https://docs.cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#text)
	// set to true will be interruptable, all other messages follow the app-level
	// barge-in settings.
	RespectResponseInterruptionSettings bool `json:"respectResponseInterruptionSettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentSkill: Represents a distinct capability or function that an agent can
// perform.
type AgentSkill struct {
	// Description: Required. A detailed description of the skill.
	Description string `json:"description,omitempty"`
	// Examples: Example prompts or scenarios that this skill can handle.
	Examples []string `json:"examples,omitempty"`
	// Id: Required. A unique identifier for the agent's skill.
	Id string `json:"id,omitempty"`
	// InputModes: The set of supported input media types for this skill,
	// overriding the agent's defaults.
	InputModes []string `json:"inputModes,omitempty"`
	// Name: Required. A human-readable name for the skill.
	Name string `json:"name,omitempty"`
	// OutputModes: The set of supported output media types for this skill,
	// overriding the agent's defaults.
	OutputModes []string `json:"outputModes,omitempty"`
	// Tags: Required. A set of keywords describing the skill's capabilities.
	Tags []string `json:"tags,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 AgentSkill) MarshalJSON() ([]byte, error) {
	type NoMethod AgentSkill
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AgentTool: Represents a tool that allows the agent to call another agent.
type AgentTool struct {
	// Agent: Optional. The resource name of the agent that is the entry point of
	// the tool. Format: `projects/{project}/locations/{location}/agents/{agent}`
	Agent string `json:"agent,omitempty"`
	// Description: Optional. Description of the tool's purpose.
	Description string `json:"description,omitempty"`
	// Name: Required. The name of the agent tool.
	Name string `json:"name,omitempty"`
	// RootAgent: Optional. Deprecated: Use `agent` instead. The resource name of
	// the root agent that is the entry point of the tool. Format:
	// `projects/{project}/locations/{location}/agents/{agent}`
	RootAgent string `json:"rootAgent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AgentTransfer: Represents an event indicating the transfer of a conversation
// to a different agent.
type AgentTransfer struct {
	// DisplayName: Output only. Display name of the agent.
	DisplayName string `json:"displayName,omitempty"`
	// TargetAgent: Required. The agent to which the conversation is being
	// transferred. The agent will handle the conversation from this point forward.
	// Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	TargetAgent string `json:"targetAgent,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 AgentTransfer) MarshalJSON() ([]byte, error) {
	type NoMethod AgentTransfer
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AggregatedMetrics: Aggregated metrics for an evaluation or evaluation
// dataset.
type AggregatedMetrics struct {
	// MetricsByAppVersion: Output only. Aggregated metrics, grouped by app version
	// ID.
	MetricsByAppVersion []*AggregatedMetricsMetricsByAppVersion `json:"metricsByAppVersion,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MetricsByAppVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MetricsByAppVersion") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AggregatedMetricsHallucinationMetrics: Metrics for hallucination results.
type AggregatedMetricsHallucinationMetrics struct {
	// Score: Output only. The average hallucination score (0 to 1).
	Score float64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Score") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Score") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// AggregatedMetricsMetricsByAppVersion: Metrics aggregated per app version.
type AggregatedMetricsMetricsByAppVersion struct {
	// AppVersionId: Output only. The app version ID.
	AppVersionId string `json:"appVersionId,omitempty"`
	// FailCount: Output only. The number of times the evaluation failed.
	FailCount int64 `json:"failCount,omitempty"`
	// HallucinationMetrics: Output only. Metrics for hallucination within this app
	// version.
	HallucinationMetrics []*AggregatedMetricsHallucinationMetrics `json:"hallucinationMetrics,omitempty"`
	// MetricsByTurn: Output only. Metrics aggregated per turn within this app
	// version.
	MetricsByTurn []*AggregatedMetricsMetricsByTurn `json:"metricsByTurn,omitempty"`
	// PassCount: Output only. The number of times the evaluation passed.
	PassCount int64 `json:"passCount,omitempty"`
	// SemanticSimilarityMetrics: Output only. Metrics for semantic similarity
	// within this app version.
	SemanticSimilarityMetrics []*AggregatedMetricsSemanticSimilarityMetrics `json:"semanticSimilarityMetrics,omitempty"`
	// ToolCallLatencyMetrics: Output only. Metrics for tool call latency within
	// this app version.
	ToolCallLatencyMetrics []*AggregatedMetricsToolCallLatencyMetrics `json:"toolCallLatencyMetrics,omitempty"`
	// ToolMetrics: Output only. Metrics for each tool within this app version.
	ToolMetrics []*AggregatedMetricsToolMetrics `json:"toolMetrics,omitempty"`
	// TurnLatencyMetrics: Output only. Metrics for turn latency within this app
	// version.
	TurnLatencyMetrics []*AggregatedMetricsTurnLatencyMetrics `json:"turnLatencyMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppVersionId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersionId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AggregatedMetricsMetricsByTurn: Metrics aggregated per turn.
type AggregatedMetricsMetricsByTurn struct {
	// HallucinationMetrics: Output only. Metrics for hallucination within this
	// turn.
	HallucinationMetrics []*AggregatedMetricsHallucinationMetrics `json:"hallucinationMetrics,omitempty"`
	// SemanticSimilarityMetrics: Output only. Metrics for semantic similarity
	// within this turn.
	SemanticSimilarityMetrics []*AggregatedMetricsSemanticSimilarityMetrics `json:"semanticSimilarityMetrics,omitempty"`
	// ToolCallLatencyMetrics: Output only. Metrics for tool call latency within
	// this turn.
	ToolCallLatencyMetrics []*AggregatedMetricsToolCallLatencyMetrics `json:"toolCallLatencyMetrics,omitempty"`
	// ToolMetrics: Output only. Metrics for each tool within this turn.
	ToolMetrics []*AggregatedMetricsToolMetrics `json:"toolMetrics,omitempty"`
	// TurnIndex: Output only. The turn index (0-based).
	TurnIndex int64 `json:"turnIndex,omitempty"`
	// TurnLatencyMetrics: Output only. Metrics for turn latency within this turn.
	TurnLatencyMetrics []*AggregatedMetricsTurnLatencyMetrics `json:"turnLatencyMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "HallucinationMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "HallucinationMetrics") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AggregatedMetricsSemanticSimilarityMetrics: Metrics for semantic similarity
// results.
type AggregatedMetricsSemanticSimilarityMetrics struct {
	// Score: Output only. The average semantic similarity score (0-4).
	Score float64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Score") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Score") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// AggregatedMetricsToolCallLatencyMetrics: Metrics for tool call latency.
type AggregatedMetricsToolCallLatencyMetrics struct {
	// AverageLatency: Output only. The average latency of the tool calls.
	AverageLatency string `json:"averageLatency,omitempty"`
	// Tool: Output only. The name of the tool.
	Tool string `json:"tool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageLatency") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageLatency") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AggregatedMetricsToolMetrics: Metrics for a single tool.
type AggregatedMetricsToolMetrics struct {
	// FailCount: Output only. The number of times the tool failed.
	FailCount int64 `json:"failCount,omitempty"`
	// PassCount: Output only. The number of times the tool passed.
	PassCount int64 `json:"passCount,omitempty"`
	// Tool: Output only. The name of the tool.
	Tool string `json:"tool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FailCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FailCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AggregatedMetricsTurnLatencyMetrics: Metrics for turn latency.
type AggregatedMetricsTurnLatencyMetrics struct {
	// AverageLatency: Output only. The average latency of the turns.
	AverageLatency string `json:"averageLatency,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AverageLatency") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AverageLatency") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AmbientSoundConfig: Configuration for the ambient sound to be played with
// the synthesized agent response, to enhance the naturalness of the
// conversation.
type AmbientSoundConfig struct {
	// GcsUri: Optional. Ambient noise as a mono-channel, 16kHz WAV file stored in
	// Cloud Storage (https://cloud.google.com/storage). Note: Please make sure the
	// CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com` has
	// `storage.objects.get` permission to the Cloud Storage object.
	GcsUri string `json:"gcsUri,omitempty"`
	// PrebuiltAmbientNoise: Optional. Deprecated: `prebuilt_ambient_noise` is
	// deprecated in favor of `prebuilt_ambient_sound`.
	//
	// Possible values:
	//   "PREBUILT_AMBIENT_NOISE_UNSPECIFIED" - Not specified.
	//   "RETAIL_STORE" - Ambient noise of a retail store.
	//   "CONVENTION_HALL" - Ambient noise of a convention hall.
	//   "OUTDOOR" - Ambient noise of a street.
	PrebuiltAmbientNoise string `json:"prebuiltAmbientNoise,omitempty"`
	// PrebuiltAmbientSound: Optional. Name of the prebuilt ambient sound. Valid
	// values are: - "coffee_shop" - "keyboard" - "keypad" - "hum" - "office_1" -
	// "office_2" - "office_3" - "room_1" - "room_2" - "room_3" - "room_4" -
	// "room_5" - "air_conditioner"
	PrebuiltAmbientSound string `json:"prebuiltAmbientSound,omitempty"`
	// VolumeGainDb: Optional. Volume gain (in dB) of the normal native volume
	// supported by ambient noise, in the range [-96.0, 16.0]. If unset, or set to
	// a value of 0.0 (dB), will play at normal native signal amplitude. A value of
	// -6.0 (dB) will play at approximately half the amplitude of the normal native
	// signal amplitude. A value of +6.0 (dB) will play at approximately twice the
	// amplitude of the normal native signal amplitude. We strongly recommend not
	// to exceed +10 (dB) as there's usually no effective increase in loudness for
	// any value greater than that.
	VolumeGainDb float64 `json:"volumeGainDb,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsUri") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsUri") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// ApiAuthentication: Authentication information required for API calls.
type ApiAuthentication struct {
	// ApiKeyConfig: Optional. Config for API key auth.
	ApiKeyConfig *ApiKeyConfig `json:"apiKeyConfig,omitempty"`
	// BearerTokenConfig: Optional. Config for bearer token auth.
	BearerTokenConfig *BearerTokenConfig `json:"bearerTokenConfig,omitempty"`
	// OauthConfig: Optional. Config for OAuth.
	OauthConfig *OAuthConfig `json:"oauthConfig,omitempty"`
	// ServiceAccountAuthConfig: Optional. Config for service account
	// authentication.
	ServiceAccountAuthConfig *ServiceAccountAuthConfig `json:"serviceAccountAuthConfig,omitempty"`
	// ServiceAgentIdTokenAuthConfig: Optional. Config for ID token auth generated
	// from CES service agent.
	ServiceAgentIdTokenAuthConfig *ServiceAgentIdTokenAuthConfig `json:"serviceAgentIdTokenAuthConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiKeyConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiKeyConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ApiKeyConfig: Configurations for authentication with API key.
type ApiKeyConfig struct {
	// ApiKeySecretVersion: Required. The name of the SecretManager secret version
	// resource storing the API key. Format:
	// `projects/{project}/secrets/{secret}/versions/{version}` Note: You should
	// grant `roles/secretmanager.secretAccessor` role to the CES service agent
	// `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	ApiKeySecretVersion string `json:"apiKeySecretVersion,omitempty"`
	// KeyName: Required. The parameter name or the header name of the API key.
	// E.g., If the API request is "https://example.com/act?X-Api-Key=",
	// "X-Api-Key" would be the parameter name.
	KeyName string `json:"keyName,omitempty"`
	// RequestLocation: Required. Key location in the request.
	//
	// Possible values:
	//   "REQUEST_LOCATION_UNSPECIFIED" - Unspecified. This value should not be
	// used.
	//   "HEADER" - Represents the key in http header.
	//   "QUERY_STRING" - Represents the key in query string.
	RequestLocation string `json:"requestLocation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiKeySecretVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiKeySecretVersion") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// App: An app serves as a top-level container for a group of agents, including
// the root agent and its sub-agents, along with their associated
// configurations. These agents work together to achieve specific goals within
// the app's context.
type App struct {
	// AudioProcessingConfig: Optional. Audio processing configuration of the app.
	AudioProcessingConfig *AudioProcessingConfig `json:"audioProcessingConfig,omitempty"`
	// ClientCertificateSettings: Optional. The default client certificate settings
	// for the app.
	ClientCertificateSettings *ClientCertificateSettings `json:"clientCertificateSettings,omitempty"`
	// CreateTime: Output only. Timestamp when the app was created.
	CreateTime string `json:"createTime,omitempty"`
	// DataStoreSettings: Optional. The data store settings for the app.
	DataStoreSettings *DataStoreSettings `json:"dataStoreSettings,omitempty"`
	// DefaultChannelProfile: Optional. The default channel profile used by the
	// app.
	DefaultChannelProfile *ChannelProfile `json:"defaultChannelProfile,omitempty"`
	// DeploymentCount: Output only. Number of deployments in the app.
	DeploymentCount int64 `json:"deploymentCount,omitempty"`
	// Description: Optional. Human-readable description of the app.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. Display name of the app.
	DisplayName string `json:"displayName,omitempty"`
	// ErrorHandlingSettings: Optional. Error handling settings of the app.
	ErrorHandlingSettings *ErrorHandlingSettings `json:"errorHandlingSettings,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// EvaluationMetricsThresholds: Optional. The evaluation thresholds for the
	// app.
	EvaluationMetricsThresholds *EvaluationMetricsThresholds `json:"evaluationMetricsThresholds,omitempty"`
	// EvaluationPersonas: Optional. The evaluation personas for the app. This
	// field is used to define the personas that can be used for evaluation.
	// Maximum of 30 personas can be defined.
	EvaluationPersonas []*EvaluationPersona `json:"evaluationPersonas,omitempty"`
	// EvaluationSettings: Optional. The evaluation settings for the app.
	EvaluationSettings *EvaluationSettings `json:"evaluationSettings,omitempty"`
	// GlobalInstruction: Optional. Instructions for all the agents in the app. You
	// can use this instruction to set up a stable identity or personality across
	// all the agents.
	GlobalInstruction string `json:"globalInstruction,omitempty"`
	// Guardrails: Optional. List of guardrails for the app. Format:
	// `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
	Guardrails []string `json:"guardrails,omitempty"`
	// LanguageSettings: Optional. Language settings of the app.
	LanguageSettings *LanguageSettings `json:"languageSettings,omitempty"`
	// Locked: Optional. Indicates whether the app is locked for changes. If the
	// app is locked, modifications to the app resources will be rejected.
	Locked bool `json:"locked,omitempty"`
	// LoggingSettings: Optional. Logging settings of the app.
	LoggingSettings *LoggingSettings `json:"loggingSettings,omitempty"`
	// Metadata: Optional. Metadata about the app. This field can be used to store
	// additional information relevant to the app's details or intended usages.
	Metadata map[string]string `json:"metadata,omitempty"`
	// ModelSettings: Optional. The default LLM model settings for the app.
	// Individual resources (e.g. agents, guardrails) can override these
	// configurations as needed.
	ModelSettings *ModelSettings `json:"modelSettings,omitempty"`
	// Name: Identifier. The unique identifier of the app. Format:
	// `projects/{project}/locations/{location}/apps/{app}`
	Name string `json:"name,omitempty"`
	// Pinned: Optional. Whether the app is pinned in the app list.
	Pinned bool `json:"pinned,omitempty"`
	// PredefinedVariableDeclarations: Output only. The declarations of predefined
	// variables for the app.
	PredefinedVariableDeclarations []*AppVariableDeclaration `json:"predefinedVariableDeclarations,omitempty"`
	// RootAgent: Optional. The root agent is the entry point of the app. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	RootAgent string `json:"rootAgent,omitempty"`
	// TimeZoneSettings: Optional. TimeZone settings of the app.
	TimeZoneSettings *TimeZoneSettings `json:"timeZoneSettings,omitempty"`
	// ToolExecutionMode: Optional. The tool execution mode for the app. If not
	// provided, will default to PARALLEL.
	//
	// Possible values:
	//   "TOOL_EXECUTION_MODE_UNSPECIFIED" - Unspecified tool execution mode.
	// Default to PARALLEL.
	//   "PARALLEL" - If there are multiple tools being selected, they will be
	// executed in parallel, with the same
	// [ToolContext](https://google.github.io/adk-docs/context/#the-different-types-
	// of-context).
	//   "SEQUENTIAL" - If there are multiple tools being selected, they will be
	// executed sequentially. The next tool will only be executed after the
	// previous tool completes and it can see updated
	// [ToolContext](https://google.github.io/adk-docs/context/#the-different-types-
	// of-context) from the previous tool.
	ToolExecutionMode string `json:"toolExecutionMode,omitempty"`
	// UpdateTime: Output only. Timestamp when the app was last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// ValidationErrors: Output only. Misconfigurations or warnings in the app.
	ValidationErrors []string `json:"validationErrors,omitempty"`
	// VariableDeclarations: Optional. The declarations of the variables.
	VariableDeclarations []*AppVariableDeclaration `json:"variableDeclarations,omitempty"`
	// VpcScSettings: Optional. VPC-SC settings for the app.
	VpcScSettings *VpcScSettings `json:"vpcScSettings,omitempty"`

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

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

// AppSnapshot: A snapshot of the app.
type AppSnapshot struct {
	// Agents: Optional. List of agents in the app.
	Agents []*Agent `json:"agents,omitempty"`
	// App: Optional. The basic settings for the app.
	App *App `json:"app,omitempty"`
	// Examples: Optional. List of examples in the app.
	Examples []*Example `json:"examples,omitempty"`
	// Guardrails: Optional. List of guardrails in the app.
	Guardrails []*Guardrail `json:"guardrails,omitempty"`
	// Tools: Optional. List of tools in the app.
	Tools []*Tool `json:"tools,omitempty"`
	// Toolsets: Optional. List of toolsets in the app.
	Toolsets []*Toolset `json:"toolsets,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agents") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AppVariableDeclaration: Defines the structure and metadata for a variable.
type AppVariableDeclaration struct {
	// Description: Required. The description of the variable.
	Description string `json:"description,omitempty"`
	// Name: Required. The name of the variable. The name must start with a letter
	// or underscore and contain only letters, numbers, or underscores.
	Name string `json:"name,omitempty"`
	// Schema: Required. The schema of the variable.
	Schema *Schema `json:"schema,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 AppVariableDeclaration) MarshalJSON() ([]byte, error) {
	type NoMethod AppVariableDeclaration
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AppVersion: In Customer Engagement Suite (CES), an app version is a snapshot
// of the app at a specific point in time. It is immutable and cannot be
// modified once created.
type AppVersion struct {
	// CreateTime: Output only. Timestamp when the app version was created.
	CreateTime string `json:"createTime,omitempty"`
	// Creator: Output only. Email of the user who created the app version.
	Creator string `json:"creator,omitempty"`
	// Description: Optional. The description of the app version.
	Description string `json:"description,omitempty"`
	// DisplayName: Optional. The display name of the app version.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// Name: Identifier. The unique identifier of the app version. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	Name string `json:"name,omitempty"`
	// Snapshot: Output only. The snapshot of the app when the version is created.
	Snapshot *AppSnapshot `json:"snapshot,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 AppVersion) MarshalJSON() ([]byte, error) {
	type NoMethod AppVersion
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// AudioProcessingConfig: Configuration for how the input and output audio
// should be processed and delivered.
type AudioProcessingConfig struct {
	// AmbientSoundConfig: Optional. Configuration for the ambient sound to be
	// played with the synthesized agent response, to enhance the naturalness of
	// the conversation.
	AmbientSoundConfig *AmbientSoundConfig `json:"ambientSoundConfig,omitempty"`
	// BargeInConfig: Optional. Configures the agent behavior for the user barge-in
	// activities.
	BargeInConfig *BargeInConfig `json:"bargeInConfig,omitempty"`
	// InactivityTimeout: Optional. The duration of user inactivity (no speech or
	// interaction) before the agent prompts the user for reengagement. If not set,
	// the agent will not prompt the user for reengagement.
	InactivityTimeout string `json:"inactivityTimeout,omitempty"`
	// SynthesizeSpeechConfigs: Optional. Configuration of how the agent response
	// should be synthesized, mapping from the language code to
	// SynthesizeSpeechConfig. If the configuration for the specified language code
	// is not found, the configuration for the root language code will be used. For
	// example, if the map contains "en-us" and "en", and the specified language
	// code is "en-gb", then "en" configuration will be used. Note: Language code
	// is case-insensitive.
	SynthesizeSpeechConfigs map[string]SynthesizeSpeechConfig `json:"synthesizeSpeechConfigs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AmbientSoundConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AmbientSoundConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// AudioRecordingConfig: Configuration for how the audio interactions should be
// recorded.
type AudioRecordingConfig struct {
	// GcsBucket: Optional. The Cloud Storage (https://cloud.google.com/storage)
	// bucket to store the session audio recordings. The URI must start with
	// "gs://". Please choose a bucket location that meets your data residency
	// requirements. Note: If the Cloud Storage bucket is in a different project
	// from the app, you should grant `storage.objects.create` permission to the
	// CES service agent `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	GcsBucket string `json:"gcsBucket,omitempty"`
	// GcsPathPrefix: Optional. The Cloud Storage path prefix for audio recordings.
	// This prefix can include the following placeholders, which will be
	// dynamically substituted at serving time: - $project: project ID - $location:
	// app location - $app: app ID - $date: session date in YYYY-MM-DD format -
	// $session: session ID If the path prefix is not specified, the default prefix
	// `$project/$location/$app/$date/$session/` will be used.
	GcsPathPrefix string `json:"gcsPathPrefix,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GcsBucket") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GcsBucket") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BargeInConfig: Configuration for how the user barge-in activities should be
// handled.
type BargeInConfig struct {
	// BargeInAwareness: Optional. If enabled, the agent will adapt its next
	// response based on the assumption that the user hasn't heard the full
	// preceding agent message. This should not be used in scenarios where agent
	// responses are displayed visually.
	BargeInAwareness bool `json:"bargeInAwareness,omitempty"`
	// DisableBargeIn: Optional. Disables user barge-in while the agent is
	// speaking. If true, user input during agent response playback will be
	// ignored. Deprecated: `disable_barge_in` is deprecated in favor of
	// `disable_barge_in_control` in ChannelProfile.
	DisableBargeIn bool `json:"disableBargeIn,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BargeInAwareness") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BargeInAwareness") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// BatchDeleteConversationsResponse: Response message for
// AgentService.BatchDeleteConversations.
type BatchDeleteConversationsResponse struct {
	// DeletedConversations: The list of conversations that were successfully
	// deleted.
	DeletedConversations []string `json:"deletedConversations,omitempty"`
	// ErrorMessages: Optional. A list of error messages associated with
	// conversations that failed to be deleted.
	ErrorMessages []string `json:"errorMessages,omitempty"`
	// FailedConversations: The list of conversations that failed to be deleted.
	FailedConversations []string `json:"failedConversations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeletedConversations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeletedConversations") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BearerTokenConfig: Configurations for authentication with a bearer token.
type BearerTokenConfig struct {
	// Token: Required. The bearer token. Must be in the format
	// `$context.variables.`.
	Token string `json:"token,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Token") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Token") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// BigQueryExportSettings: Settings to describe the BigQuery export behaviors
// for the app.
type BigQueryExportSettings struct {
	// Dataset: Optional. The BigQuery **dataset ID** to export the data to.
	Dataset string `json:"dataset,omitempty"`
	// Enabled: Optional. Indicates whether the BigQuery export is enabled.
	Enabled bool `json:"enabled,omitempty"`
	// Project: Optional. The **project ID** of the BigQuery dataset to export the
	// data to. Note: If the BigQuery dataset is in a different project from the
	// app, you should grant `roles/bigquery.admin` role to the CES service agent
	// `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	Project string `json:"project,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Dataset") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Dataset") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Blob: Represents a blob input or output in the conversation.
type Blob struct {
	// Data: Required. Raw bytes of the blob.
	Data string `json:"data,omitempty"`
	// MimeType: Required. The IANA standard MIME type of the source 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 Blob) MarshalJSON() ([]byte, error) {
	type NoMethod Blob
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Callback: A callback defines the custom logic to be executed at various
// stages of agent interaction.
type Callback struct {
	// Description: Optional. Human-readable description of the callback.
	Description string `json:"description,omitempty"`
	// Disabled: Optional. Whether the callback is disabled. Disabled callbacks are
	// ignored by the agent.
	Disabled bool `json:"disabled,omitempty"`
	// ProactiveExecutionEnabled: Optional. If enabled, the callback will also be
	// executed on intermediate model outputs. This setting only affects after
	// model callback. **ENABLE WITH CAUTION**. Typically after model callback only
	// needs to be executed after receiving all model responses. Enabling proactive
	// execution may have negative implication on the execution cost and latency,
	// and should only be enabled in rare situations.
	ProactiveExecutionEnabled bool `json:"proactiveExecutionEnabled,omitempty"`
	// PythonCode: Required. The python code to execute for the callback.
	PythonCode string `json:"pythonCode,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 Callback) MarshalJSON() ([]byte, error) {
	type NoMethod Callback
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CancelOperationRequest: The request message for Operations.CancelOperation.
type CancelOperationRequest struct {
}

// Changelog: Changelogs represent a change made to the app or to an resource
// within the app.
type Changelog struct {
	// Action: Output only. The action that was performed on the resource.
	Action string `json:"action,omitempty"`
	// Author: Output only. Email address of the change author.
	Author string `json:"author,omitempty"`
	// CreateTime: Output only. The time when the change was made.
	CreateTime string `json:"createTime,omitempty"`
	// DependentResources: Output only. The dependent resources that were changed.
	DependentResources []googleapi.RawMessage `json:"dependentResources,omitempty"`
	// Description: Output only. Description of the change. which typically
	// captures the changed fields in the resource.
	Description string `json:"description,omitempty"`
	// DisplayName: Output only. Display name of the change. It typically should be
	// the display name of the resource that was changed.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Identifier. The unique identifier of the changelog. Format:
	// `projects/{project}/locations/{location}/apps/{app}/changelogs/{changelog}`
	Name string `json:"name,omitempty"`
	// NewResource: Output only. The new resource after the change.
	NewResource googleapi.RawMessage `json:"newResource,omitempty"`
	// OriginalResource: Output only. The original resource before the change.
	OriginalResource googleapi.RawMessage `json:"originalResource,omitempty"`
	// Resource: Output only. The resource that was changed.
	Resource string `json:"resource,omitempty"`
	// ResourceType: Output only. The type of the resource that was changed.
	ResourceType string `json:"resourceType,omitempty"`
	// SequenceNumber: Output only. The monotonically increasing sequence number of
	// the changelog.
	SequenceNumber int64 `json:"sequenceNumber,omitempty,string"`

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

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

// ChannelProfile: A ChannelProfile configures the agent's behavior for a
// specific communication channel, such as web UI or telephony.
type ChannelProfile struct {
	// ChannelType: Optional. The type of the channel profile.
	//
	// Possible values:
	//   "UNKNOWN" - Unknown channel type.
	//   "WEB_UI" - Web UI channel.
	//   "API" - API channel.
	//   "TWILIO" - Twilio channel.
	//   "GOOGLE_TELEPHONY_PLATFORM" - Google Telephony Platform channel.
	//   "CONTACT_CENTER_AS_A_SERVICE" - Contact Center as a Service (CCaaS)
	// channel.
	//   "FIVE9" - Five9 channel.
	//   "CONTACT_CENTER_INTEGRATION" - Third party contact center integration
	// channel.
	ChannelType string `json:"channelType,omitempty"`
	// DisableBargeInControl: Optional. Whether to disable user barge-in control in
	// the conversation. - **true**: User interruptions are disabled while the
	// agent is speaking. - **false**: The agent retains automatic control over
	// when the user can interrupt.
	DisableBargeInControl bool `json:"disableBargeInControl,omitempty"`
	// DisableDtmf: Optional. Whether to disable DTMF (dual-tone multi-frequency).
	DisableDtmf bool `json:"disableDtmf,omitempty"`
	// NoiseSuppressionLevel: Optional. The noise suppression level of the channel
	// profile. Available values are "low", "moderate", "high", "very_high".
	NoiseSuppressionLevel string `json:"noiseSuppressionLevel,omitempty"`
	// PersonaProperty: Optional. The persona property of the channel profile.
	PersonaProperty *ChannelProfilePersonaProperty `json:"personaProperty,omitempty"`
	// ProfileId: Optional. The unique identifier of the channel profile.
	ProfileId string `json:"profileId,omitempty"`
	// WebWidgetConfig: Optional. The configuration for the web widget.
	WebWidgetConfig *ChannelProfileWebWidgetConfig `json:"webWidgetConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChannelType") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChannelType") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ChannelProfilePersonaProperty: Represents the persona property of a channel.
type ChannelProfilePersonaProperty struct {
	// Persona: Optional. The persona of the channel.
	//
	// Possible values:
	//   "UNKNOWN" - UNKNOWN persona.
	//   "CONCISE" - The agent keeps the responses concise and to the point
	//   "CHATTY" - The agent provides additional context, explanations, and
	// details
	Persona string `json:"persona,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Persona") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Persona") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ChannelProfileWebWidgetConfig: Message for configuration for the web widget.
type ChannelProfileWebWidgetConfig struct {
	// Modality: Optional. The modality of the web widget.
	//
	// Possible values:
	//   "MODALITY_UNSPECIFIED" - Unknown modality.
	//   "CHAT_AND_VOICE" - Widget supports both chat and voice input.
	//   "VOICE_ONLY" - Widget supports only voice input.
	//   "CHAT_ONLY" - Widget supports only chat input.
	//   "CHAT_VOICE_AND_VIDEO" - Widget supports chat, voice, and video input.
	Modality string `json:"modality,omitempty"`
	// SecuritySettings: Optional. The security settings of the web widget.
	SecuritySettings *ChannelProfileWebWidgetConfigSecuritySettings `json:"securitySettings,omitempty"`
	// Theme: Optional. The theme of the web widget.
	//
	// Possible values:
	//   "THEME_UNSPECIFIED" - Unknown theme.
	//   "LIGHT" - Light theme.
	//   "DARK" - Dark theme.
	Theme string `json:"theme,omitempty"`
	// WebWidgetTitle: Optional. The title of the web widget.
	WebWidgetTitle string `json:"webWidgetTitle,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Modality") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Modality") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ChannelProfileWebWidgetConfigSecuritySettings: Security settings for the web
// widget.
type ChannelProfileWebWidgetConfigSecuritySettings struct {
	// AllowedOrigins: Optional. The origins that are allowed to host the web
	// widget. An origin is defined by RFC 6454. If empty, all origins are allowed.
	// A maximum of 100 origins is allowed. Example: "https://example.com"
	AllowedOrigins []string `json:"allowedOrigins,omitempty"`
	// EnableOriginCheck: Optional. Indicates whether origin check for the web
	// widget is enabled. If `true`, the web widget will check the origin of the
	// website that loads the web widget and only allow it to be loaded in the same
	// origin or any of the allowed origins.
	EnableOriginCheck bool `json:"enableOriginCheck,omitempty"`
	// EnablePublicAccess: Optional. Indicates whether public access to the web
	// widget is enabled. If `true`, the web widget will be publicly accessible. If
	// `false`, the web widget must be integrated with your own authentication and
	// authorization system to return valid credentials for accessing the CES
	// agent.
	EnablePublicAccess bool `json:"enablePublicAccess,omitempty"`
	// EnableRecaptcha: Optional. Indicates whether reCAPTCHA verification for the
	// web widget is enabled.
	EnableRecaptcha bool `json:"enableRecaptcha,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowedOrigins") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedOrigins") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Chunk: A chunk of content within a message.
type Chunk struct {
	// AgentTransfer: Optional. Agent transfer event.
	AgentTransfer *AgentTransfer `json:"agentTransfer,omitempty"`
	// Blob: Optional. Blob data.
	Blob *Blob `json:"blob,omitempty"`
	// DefaultVariables: A struct represents default variables at the start of the
	// conversation, keyed by variable names.
	DefaultVariables googleapi.RawMessage `json:"defaultVariables,omitempty"`
	// Image: Optional. Image data.
	Image *Image `json:"image,omitempty"`
	// Payload: Optional. Custom payload data.
	Payload googleapi.RawMessage `json:"payload,omitempty"`
	// Text: Optional. Text data.
	Text string `json:"text,omitempty"`
	// ToolCall: Optional. Tool execution request.
	ToolCall *ToolCall `json:"toolCall,omitempty"`
	// ToolResponse: Optional. Tool execution response.
	ToolResponse *ToolResponse `json:"toolResponse,omitempty"`
	// Transcript: Optional. Transcript associated with the audio.
	Transcript string `json:"transcript,omitempty"`
	// UpdatedVariables: A struct represents variables that were updated in the
	// conversation, keyed by variable names.
	UpdatedVariables googleapi.RawMessage `json:"updatedVariables,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentTransfer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentTransfer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Citations: Citations associated with the agent response.
type Citations struct {
	// CitedChunks: List of cited pieces of information.
	CitedChunks []*CitationsCitedChunk `json:"citedChunks,omitempty"`
	// 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 Citations) MarshalJSON() ([]byte, error) {
	type NoMethod Citations
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

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

// ClientCertificateSettings: Settings for custom client certificates.
type ClientCertificateSettings struct {
	// Passphrase: Optional. The name of the SecretManager secret version resource
	// storing the passphrase to decrypt the private key. Should be left unset if
	// the private key is not encrypted. Format:
	// `projects/{project}/secrets/{secret}/versions/{version}`
	Passphrase string `json:"passphrase,omitempty"`
	// PrivateKey: Required. The name of the SecretManager secret version resource
	// storing the private key encoded in PEM format. Format:
	// `projects/{project}/secrets/{secret}/versions/{version}`
	PrivateKey string `json:"privateKey,omitempty"`
	// TlsCertificate: Required. The TLS certificate encoded in PEM format. This
	// string must include the begin header and end footer lines.
	TlsCertificate string `json:"tlsCertificate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Passphrase") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Passphrase") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ClientFunction: Represents a client-side function that the agent can invoke.
// When the tool is chosen by the agent, control is handed off to the client.
// The client is responsible for executing the function and returning the
// result as a ToolResponse to continue the interaction with the agent.
type ClientFunction struct {
	// Description: Optional. The function description.
	Description string `json:"description,omitempty"`
	// Name: Required. The function name.
	Name string `json:"name,omitempty"`
	// Parameters: Optional. The schema of the function parameters.
	Parameters *Schema `json:"parameters,omitempty"`
	// Response: Optional. The schema of the function response.
	Response *Schema `json:"response,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 ClientFunction) MarshalJSON() ([]byte, error) {
	type NoMethod ClientFunction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// CloudLoggingSettings: Settings to describe the Cloud Logging behaviors for
// the app.
type CloudLoggingSettings struct {
	// EnableCloudLogging: Optional. Whether to enable Cloud Logging for the
	// sessions.
	EnableCloudLogging bool `json:"enableCloudLogging,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableCloudLogging") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableCloudLogging") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// CodeBlock: A code block to be executed instead of a real tool call.
type CodeBlock struct {
	// PythonCode: Required. Python code which will be invoked in tool fake mode.
	// Expected Python function signature - To catch all tool calls: def
	// fake_tool_call(tool: Tool, input: dict[str, Any], callback_context:
	// CallbackContext) -> Optional[dict[str, Any]]: To catch a specific tool call:
	// def fake_{tool_id}(tool: Tool, input: dict[str, Any], callback_context:
	// CallbackContext) -> Optional[dict[str, Any]]: If the function returns None,
	// the real tool will be invoked instead.
	PythonCode string `json:"pythonCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PythonCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PythonCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ConnectorTool: A ConnectorTool allows connections to different integrations.
// See: https://cloud.google.com/integration-connectors/docs/overview.
type ConnectorTool struct {
	// Action: Required. Action for the tool to use.
	Action *Action `json:"action,omitempty"`
	// AuthConfig: Optional. Configures how authentication is handled in
	// Integration Connectors. By default, an admin authentication is passed in the
	// Integration Connectors API requests. You can override it with a different
	// end-user authentication config. **Note**: The Connection must have
	// authentication override enabled in order to specify an EUC configuration
	// here - otherwise, the ConnectorTool creation will fail. See
	// https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override
	// for details.
	AuthConfig *EndUserAuthConfig `json:"authConfig,omitempty"`
	// Connection: Required. The full resource name of the referenced Integration
	// Connectors Connection. Format:
	// `projects/{project}/locations/{location}/connections/{connection}`
	Connection string `json:"connection,omitempty"`
	// Description: Optional. The description of the tool that can be used by the
	// Agent to decide whether to call this ConnectorTool.
	Description string `json:"description,omitempty"`
	// Name: Optional. The name of the tool that can be used by the Agent to decide
	// whether to call this ConnectorTool.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ConnectorToolset: A toolset that generates tools from an Integration
// Connectors Connection.
type ConnectorToolset struct {
	// AuthConfig: Optional. Configures how authentication is handled in
	// Integration Connectors. By default, an admin authentication is passed in the
	// Integration Connectors API requests. You can override it with a different
	// end-user authentication config. **Note**: The Connection must have
	// authentication override enabled in order to specify an EUC configuration
	// here - otherwise, the Toolset creation will fail. See:
	// https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override
	AuthConfig *EndUserAuthConfig `json:"authConfig,omitempty"`
	// Connection: Required. The full resource name of the referenced Integration
	// Connectors Connection. Format:
	// `projects/{project}/locations/{location}/connections/{connection}`
	Connection string `json:"connection,omitempty"`
	// ConnectorActions: Required. The list of connector actions/entity operations
	// to generate tools for.
	ConnectorActions []*Action `json:"connectorActions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AuthConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AuthConfig") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Conversation: A conversation represents an interaction between an end user
// and the CES app.
type Conversation struct {
	// AppVersion: Output only. The version of the app used for processing the
	// conversation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	AppVersion string `json:"appVersion,omitempty"`
	// ChannelType: DEPRECATED. Please use input_types instead.
	//
	// Possible values:
	//   "CHANNEL_TYPE_UNSPECIFIED" - Unspecified channel type.
	//   "TEXT" - The conversation only contains text messages between the end user
	// and the agent.
	//   "AUDIO" - The conversation contains audio messages between the end user
	// and the agent.
	//   "MULTIMODAL" - The conversation multi-modal messages (e.g. image) between
	// the end user and the agent.
	ChannelType string `json:"channelType,omitempty"`
	// Deployment: Output only. The deployment of the app used for processing the
	// conversation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}`
	Deployment string `json:"deployment,omitempty"`
	// EndTime: Output only. Timestamp when the conversation was completed.
	EndTime string `json:"endTime,omitempty"`
	// EntryAgent: Output only. The agent that initially handles the conversation.
	// If not specified, the conversation is handled by the root agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	EntryAgent string `json:"entryAgent,omitempty"`
	// InputTypes: Output only. The input types of the conversation.
	//
	// Possible values:
	//   "INPUT_TYPE_UNSPECIFIED" - Unspecified input type.
	//   "INPUT_TYPE_TEXT" - Text input.
	//   "INPUT_TYPE_EVENT" - Event input.
	//   "INPUT_TYPE_AUDIO" - Audio input.
	//   "INPUT_TYPE_IMAGE" - Image input.
	//   "INPUT_TYPE_BLOB" - Blob input.
	//   "INPUT_TYPE_TOOL_RESPONSE" - Client function tool response input.
	//   "INPUT_TYPE_VARIABLES" - Variables input.
	InputTypes []string `json:"inputTypes,omitempty"`
	// LanguageCode: Output only. The language code of the conversation.
	LanguageCode string `json:"languageCode,omitempty"`
	// Messages: Deprecated. Use turns instead.
	Messages []*Message `json:"messages,omitempty"`
	// Name: Identifier. The unique identifier of the conversation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/conversations/{conversati
	// on}`
	Name string `json:"name,omitempty"`
	// Source: Output only. Indicate the source of the conversation.
	//
	// Possible values:
	//   "SOURCE_UNSPECIFIED" - Unspecified source.
	//   "LIVE" - The conversation is from the live end user.
	//   "SIMULATOR" - The conversation is from the simulator.
	//   "EVAL" - The conversation is from the evaluation.
	//   "AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
	// agent in a separate session, which is persisted for testing and debugging
	// purposes.
	Source string `json:"source,omitempty"`
	// StartTime: Output only. Timestamp when the conversation was created.
	StartTime string `json:"startTime,omitempty"`
	// TurnCount: Output only. The number of turns in the conversation.
	TurnCount int64 `json:"turnCount,omitempty"`
	// Turns: Required. The turns in the conversation.
	Turns []*ConversationTurn `json:"turns,omitempty"`

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

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

// ConversationLoggingSettings: Settings to describe the conversation logging
// behaviors for the app.
type ConversationLoggingSettings struct {
	// DisableConversationLogging: Optional. Whether to disable conversation
	// logging for the sessions.
	DisableConversationLogging bool `json:"disableConversationLogging,omitempty"`
	// RetentionWindow: Optional. Controls the retention window for the
	// conversation. If not set, the conversation will be retained for 365 days.
	RetentionWindow string `json:"retentionWindow,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DisableConversationLogging")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DisableConversationLogging") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ConversationTurn: All information about a single turn in the conversation.
type ConversationTurn struct {
	// Messages: Optional. List of messages in the conversation turn, including
	// user input, agent responses and intermediate events during the processing.
	Messages []*Message `json:"messages,omitempty"`
	// RootSpan: Optional. The root span of the action processing.
	RootSpan *Span `json:"rootSpan,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Messages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Messages") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStore: A DataStore resource in Vertex AI Search.
type DataStore struct {
	// ConnectorConfig: Output only. The connector config for the data store
	// connection.
	ConnectorConfig *DataStoreConnectorConfig `json:"connectorConfig,omitempty"`
	// CreateTime: Output only. Timestamp when the data store was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Output only. The display name of the data store.
	DisplayName string `json:"displayName,omitempty"`
	// DocumentProcessingMode: Output only. The document processing mode for the
	// data store connection. Only set for PUBLIC_WEB and UNSTRUCTURED data stores.
	//
	// Possible values:
	//   "DOCUMENT_PROCESSING_MODE_UNSPECIFIED" - Not specified.
	//   "DOCUMENTS" - Documents are processed as documents.
	//   "CHUNKS" - Documents are converted to chunks.
	DocumentProcessingMode string `json:"documentProcessingMode,omitempty"`
	// Name: Required. Full resource name of the DataStore. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/dataStores/
	// {dataStore}`
	Name string `json:"name,omitempty"`
	// Type: Output only. The type of the data store. This field is readonly and
	// populated by the server.
	//
	// Possible values:
	//   "DATA_STORE_TYPE_UNSPECIFIED" - Not specified. This value indicates that
	// the data store type is not specified, so it will not be used during search.
	//   "PUBLIC_WEB" - A data store that contains public web content.
	//   "UNSTRUCTURED" - A data store that contains unstructured private data.
	//   "FAQ" - A data store that contains structured data used as FAQ.
	//   "CONNECTOR" - A data store that is a connector to a first-party or a
	// third-party service.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConnectorConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreConnectorConfig: The connector config for the data store
// connection.
type DataStoreConnectorConfig struct {
	// Collection: Resource name of the collection the data store belongs to.
	Collection string `json:"collection,omitempty"`
	// CollectionDisplayName: Display name of the collection the data store belongs
	// to.
	CollectionDisplayName string `json:"collectionDisplayName,omitempty"`
	// DataSource: The name of the data source. Example: `salesforce`, `jira`,
	// `confluence`, `bigquery`.
	DataSource string `json:"dataSource,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Collection") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Collection") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreSettings: Data store related settings for the app.
type DataStoreSettings struct {
	// Engines: Output only. The engines for the app.
	Engines []*DataStoreSettingsEngine `json:"engines,omitempty"`
	// 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 DataStoreSettings) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataStoreSettingsEngine: An engine to which the data stores are connected.
// See Vertex AI Search:
// https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
type DataStoreSettingsEngine struct {
	// Name: Output only. The resource name of the engine. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}`
	Name string `json:"name,omitempty"`
	// Type: Output only. The type of the engine.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unspecified engine type.
	//   "ENGINE_TYPE_SEARCH" - The SOLUTION_TYPE_SEARCH engine for the app. All
	// connector data stores added to the app will be added to this engine.
	//   "ENGINE_TYPE_CHAT" - Chat engine type. The SOLUTION_TYPE_CHAT engine for
	// the app. All connector data stores added to the app will be added to this
	// engine.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Name") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreTool: Tool to retrieve from Vertex AI Search datastore or engine
// for grounding. Accepts either a datastore or an engine, but not both. See
// Vertex AI Search:
// https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.
type DataStoreTool struct {
	// BoostSpecs: Optional. Boost specification to boost certain documents.
	BoostSpecs []*DataStoreToolBoostSpecs `json:"boostSpecs,omitempty"`
	// DataStoreSource: Optional. Search within a single specific DataStore.
	DataStoreSource *DataStoreToolDataStoreSource `json:"dataStoreSource,omitempty"`
	// Description: Optional. The tool description.
	Description string `json:"description,omitempty"`
	// EngineSource: Optional. Search within an Engine (potentially across multiple
	// DataStores).
	EngineSource *DataStoreToolEngineSource `json:"engineSource,omitempty"`
	// FilterParameterBehavior: Optional. The filter parameter behavior.
	//
	// Possible values:
	//   "FILTER_PARAMETER_BEHAVIOR_UNSPECIFIED" - Default filter behavior. Include
	// filter parameter for connector datastores. For the rest of the datastore
	// types, the filter input parameter is omitted.
	//   "ALWAYS_INCLUDE" - Always include filter parameter for all datastore
	// types.
	//   "NEVER_INCLUDE" - The filter parameter is never included in the list of
	// tool parameters, regardless of the datastore type.
	FilterParameterBehavior string `json:"filterParameterBehavior,omitempty"`
	// ModalityConfigs: Optional. The modality configs for the data store.
	ModalityConfigs []*DataStoreToolModalityConfig `json:"modalityConfigs,omitempty"`
	// Name: Required. The data store tool name.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BoostSpecs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BoostSpecs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreToolBoostSpec: Boost specification to boost certain documents.
type DataStoreToolBoostSpec struct {
	// ConditionBoostSpecs: Required. A list of boosting specifications.
	ConditionBoostSpecs []*DataStoreToolBoostSpecConditionBoostSpec `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 DataStoreToolBoostSpec) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolBoostSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataStoreToolBoostSpecConditionBoostSpec: Boost specification for a
// condition.
type DataStoreToolBoostSpecConditionBoostSpec struct {
	// Boost: Optional. 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"`
	// BoostControlSpec: Optional. Complex specification for custom ranking based
	// on customer defined attribute value.
	BoostControlSpec *DataStoreToolBoostSpecConditionBoostSpecBoostControlSpec `json:"boostControlSpec,omitempty"`
	// Condition: Required. An expression which specifies a boost condition. The
	// syntax is the same as 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 DataStoreToolBoostSpecConditionBoostSpec) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolBoostSpecConditionBoostSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

// DataStoreToolBoostSpecConditionBoostSpecBoostControlSpec: 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 DataStoreToolBoostSpecConditionBoostSpecBoostControlSpec 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]`. E.g. `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 []*DataStoreToolBoostSpecConditionBoostSpecBoostControlSpecControlPoint `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 DataStoreToolBoostSpecConditionBoostSpecBoostControlSpec) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolBoostSpecConditionBoostSpecBoostControlSpec
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataStoreToolBoostSpecConditionBoostSpecBoostControlSpecControlPoint: 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 DataStoreToolBoostSpecConditionBoostSpecBoostControlSpecControlPoint 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 DataStoreToolBoostSpecConditionBoostSpecBoostControlSpecControlPoint) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolBoostSpecConditionBoostSpecBoostControlSpecControlPoint
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

// DataStoreToolBoostSpecs: Boost specifications to boost certain documents.
// For more information, please refer to
// https://cloud.google.com/generative-ai-app-builder/docs/boosting.
type DataStoreToolBoostSpecs struct {
	// DataStores: Required. The Data Store where the boosting configuration is
	// applied. Full resource name of DataStore, such as
	// projects/{project}/locations/{location}/collections/{collection}/dataStores/{
	// dataStore}.
	DataStores []string `json:"dataStores,omitempty"`
	// Spec: Required. A list of boosting specifications.
	Spec []*DataStoreToolBoostSpec `json:"spec,omitempty"`
	// 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 DataStoreToolBoostSpecs) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolBoostSpecs
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataStoreToolDataStoreSource: Configuration for searching within a specific
// DataStore.
type DataStoreToolDataStoreSource struct {
	// DataStore: Optional. The data store.
	DataStore *DataStore `json:"dataStore,omitempty"`
	// Filter: Optional. Filter specification for the DataStore. See:
	// 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. "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 DataStoreToolDataStoreSource) MarshalJSON() ([]byte, error) {
	type NoMethod DataStoreToolDataStoreSource
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// DataStoreToolEngineSource: Configuration for searching within an Engine,
// potentially targeting specific DataStores.
type DataStoreToolEngineSource struct {
	// DataStoreSources: Optional. Use to target specific DataStores within the
	// Engine. If empty, the search applies to all DataStores associated with the
	// Engine.
	DataStoreSources []*DataStoreToolDataStoreSource `json:"dataStoreSources,omitempty"`
	// Engine: Required. Full resource name of the Engine. Format:
	// `projects/{project}/locations/{location}/collections/{collection}/engines/{en
	// gine}`
	Engine string `json:"engine,omitempty"`
	// Filter: Optional. A filter applied to the search across the Engine. Not
	// relevant and not used if 'data_store_sources' is provided. See:
	// 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. "DataStoreSources") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataStoreSources") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreToolGroundingConfig: Grounding configuration.
type DataStoreToolGroundingConfig struct {
	// Disabled: Optional. Whether grounding is disabled.
	Disabled bool `json:"disabled,omitempty"`
	// GroundingLevel: Optional. The groundedness threshold of the answer based on
	// the retrieved sources. The value has a configurable range of [1, 5]. The
	// level is used to threshold the groundedness of the answer, meaning that all
	// responses with a groundedness score below the threshold will fall back to
	// returning relevant snippets only. For example, a level of 3 means that the
	// groundedness score must be 3 or higher for the response to be returned.
	GroundingLevel float64 `json:"groundingLevel,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// DataStoreToolModalityConfig: If specified, will apply the given
// configuration for the specified modality.
type DataStoreToolModalityConfig struct {
	// GroundingConfig: Optional. The grounding configuration.
	GroundingConfig *DataStoreToolGroundingConfig `json:"groundingConfig,omitempty"`
	// ModalityType: Required. The modality type.
	//
	// Possible values:
	//   "MODALITY_TYPE_UNSPECIFIED" - Unspecified modality type.
	//   "TEXT" - Text modality.
	//   "AUDIO" - Audio modality.
	ModalityType string `json:"modalityType,omitempty"`
	// RewriterConfig: Optional. The rewriter config.
	RewriterConfig *DataStoreToolRewriterConfig `json:"rewriterConfig,omitempty"`
	// SummarizationConfig: Optional. The summarization config.
	SummarizationConfig *DataStoreToolSummarizationConfig `json:"summarizationConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GroundingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GroundingConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreToolRewriterConfig: Rewriter configuration.
type DataStoreToolRewriterConfig struct {
	// Disabled: Optional. Whether the rewriter is disabled.
	Disabled bool `json:"disabled,omitempty"`
	// ModelSettings: Required. Configurations for the LLM model.
	ModelSettings *ModelSettings `json:"modelSettings,omitempty"`
	// Prompt: Optional. The prompt definition. If not set, default prompt will be
	// used.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DataStoreToolSummarizationConfig: Summarization configuration.
type DataStoreToolSummarizationConfig struct {
	// Disabled: Optional. Whether summarization is disabled.
	Disabled bool `json:"disabled,omitempty"`
	// ModelSettings: Optional. Configurations for the LLM model.
	ModelSettings *ModelSettings `json:"modelSettings,omitempty"`
	// Prompt: Optional. The prompt definition. If not set, default prompt will be
	// used.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// DeleteEvaluationRunOperationMetadata: Operation metadata for
// EvaluationService.DeleteEvaluationRun.
type DeleteEvaluationRunOperationMetadata struct {
}

// Deployment: A deployment represents an immutable, queryable version of the
// app. It is used to deploy an app version with a specific channel profile.
type Deployment struct {
	// AppVersion: Optional. The resource name of the app version to deploy.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}` Use
	// `projects/{project}/locations/{location}/apps/{app}/versions/-` to use the
	// draft app.
	AppVersion string `json:"appVersion,omitempty"`
	// ChannelProfile: Required. The channel profile used in the deployment.
	ChannelProfile *ChannelProfile `json:"channelProfile,omitempty"`
	// CreateTime: Output only. Timestamp when this deployment was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Required. Display name of the deployment.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// ExperimentConfig: Optional. Experiment configuration for the deployment.
	ExperimentConfig *ExperimentConfig `json:"experimentConfig,omitempty"`
	// Name: Identifier. The resource name of the deployment. Format:
	// `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}`
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. Timestamp when this deployment 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. "AppVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Empty: A generic empty message that you can re-use to avoid defining
// duplicated empty messages in your APIs. A typical example is to use it as
// the request or the response type of an API method. For instance: service Foo
// { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
type Empty struct {
	// ServerResponse contains the HTTP response code and headers from the server.
	googleapi.ServerResponse `json:"-"`
}

// EndSession: Indicates the session has terminated, due to either successful
// completion (e.g. user says "Good bye!" ) or an agent escalation. The agent
// will not process any further inputs after session is terminated and the
// client should half-close and disconnect after receiving all remaining
// responses from the agent.
type EndSession struct {
	// Metadata: Optional. Provides additional information about the end session
	// signal, such as the reason for ending the session.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// 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 EndSession) MarshalJSON() ([]byte, error) {
	type NoMethod EndSession
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EndUserAuthConfig: End-user authentication configuration used for Connection
// calls. The field values must be the names of context variables in the format
// `$context.variables.`.
type EndUserAuthConfig struct {
	// Oauth2AuthCodeConfig: Oauth 2.0 Authorization Code authentication.
	Oauth2AuthCodeConfig *EndUserAuthConfigOauth2AuthCodeConfig `json:"oauth2AuthCodeConfig,omitempty"`
	// Oauth2JwtBearerConfig: JWT Profile Oauth 2.0 Authorization Grant
	// authentication.
	Oauth2JwtBearerConfig *EndUserAuthConfigOauth2JwtBearerConfig `json:"oauth2JwtBearerConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Oauth2AuthCodeConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Oauth2AuthCodeConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EndUserAuthConfigOauth2AuthCodeConfig: Oauth 2.0 Authorization Code
// authentication configuration.
type EndUserAuthConfigOauth2AuthCodeConfig struct {
	// OauthToken: Required. Oauth token parameter name to pass through. Must be in
	// the format `$context.variables.`.
	OauthToken string `json:"oauthToken,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OauthToken") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OauthToken") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EndUserAuthConfigOauth2JwtBearerConfig: JWT Profile Oauth 2.0 Authorization
// Grant authentication configuration.
type EndUserAuthConfigOauth2JwtBearerConfig struct {
	// ClientKey: Required. Client parameter name to pass through. Must be in the
	// format `$context.variables.`.
	ClientKey string `json:"clientKey,omitempty"`
	// Issuer: Required. Issuer parameter name to pass through. Must be in the
	// format `$context.variables.`.
	Issuer string `json:"issuer,omitempty"`
	// Subject: Required. Subject parameter name to pass through. Must be in the
	// format `$context.variables.`.
	Subject string `json:"subject,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientKey") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientKey") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EndpointControlPolicy: Defines project/location level endpoint control
// policy.
type EndpointControlPolicy struct {
	// AllowedOrigins: Optional. The allowed HTTP(s) origins that tools in the App
	// are able to directly call. The enforcement depends on the value of
	// enforcement_scope and the VPC-SC status of the project. If a port number is
	// not provided, all ports will be allowed. Otherwise, the port number must
	// match exactly. For example, "https://example.com" will match
	// "https://example.com:443" and any other port. "https://example.com:443" will
	// only match "https://example.com:443".
	AllowedOrigins []string `json:"allowedOrigins,omitempty"`
	// EnforcementScope: Optional. The scope in which this policy's allowed_origins
	// list is enforced.
	//
	// Possible values:
	//   "ENFORCEMENT_SCOPE_UNSPECIFIED" - Unspecified. This policy will be treated
	// as VPCSC_ONLY.
	//   "VPCSC_ONLY" - This policy applies only when VPC-SC is active.
	//   "ALWAYS" - This policy ALWAYS applies, regardless of VPC-SC status.
	EnforcementScope string `json:"enforcementScope,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowedOrigins") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedOrigins") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ErrorHandlingSettings: Settings to describe how errors should be handled in
// the app.
type ErrorHandlingSettings struct {
	// EndSessionConfig: Optional. Configuration for ending the session in case of
	// system errors (e.g. LLM errors).
	EndSessionConfig *ErrorHandlingSettingsEndSessionConfig `json:"endSessionConfig,omitempty"`
	// ErrorHandlingStrategy: Optional. The strategy to use for error handling.
	//
	// Possible values:
	//   "ERROR_HANDLING_STRATEGY_UNSPECIFIED" - Unspecified error handling
	// strategy.
	//   "NONE" - No specific handling is enabled.
	//   "FALLBACK_RESPONSE" - A fallback message will be returned to the user in
	// case of system errors (e.g. LLM errors).
	//   "END_SESSION" - An EndSession signal will be emitted in case of system
	// errors (e.g. LLM errors).
	ErrorHandlingStrategy string `json:"errorHandlingStrategy,omitempty"`
	// FallbackResponseConfig: Optional. Configuration for handling fallback
	// responses.
	FallbackResponseConfig *ErrorHandlingSettingsFallbackResponseConfig `json:"fallbackResponseConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EndSessionConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EndSessionConfig") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ErrorHandlingSettingsEndSessionConfig: Configuration for ending the session
// in case of system errors (e.g. LLM errors).
type ErrorHandlingSettingsEndSessionConfig struct {
	// EscalateSession: Optional. Whether to escalate the session in EndSession. If
	// session is escalated, metadata in EndSession will contain `session_escalated
	// = true`. See
	// https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/deploy/google-telephony-platform#transfer_a_call_to_a_human_agent
	// for details.
	EscalateSession bool `json:"escalateSession,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EscalateSession") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EscalateSession") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ErrorHandlingSettingsFallbackResponseConfig: Configuration for handling
// fallback responses.
type ErrorHandlingSettingsFallbackResponseConfig struct {
	// CustomFallbackMessages: Optional. The fallback messages in case of system
	// errors (e.g. LLM errors), mapped by supported language code
	// (https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/reference/language).
	CustomFallbackMessages map[string]string `json:"customFallbackMessages,omitempty"`
	// MaxFallbackAttempts: Optional. The maximum number of fallback attempts to
	// make before the agent emitting EndSession Signal.
	MaxFallbackAttempts int64 `json:"maxFallbackAttempts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomFallbackMessages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomFallbackMessages") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Evaluation: An evaluation represents all of the information needed to
// simulate and evaluate an agent.
type Evaluation struct {
	// AggregatedMetrics: Output only. The aggregated metrics for this evaluation
	// across all runs.
	AggregatedMetrics *AggregatedMetrics `json:"aggregatedMetrics,omitempty"`
	// CreateTime: Output only. Timestamp when the evaluation was created.
	CreateTime string `json:"createTime,omitempty"`
	// CreatedBy: Output only. The user who created the evaluation.
	CreatedBy string `json:"createdBy,omitempty"`
	// Description: Optional. User-defined description of the evaluation.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. User-defined display name of the evaluation. Unique
	// within an App.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// EvaluationDatasets: Output only. List of evaluation datasets the evaluation
	// belongs to. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evalu
	// ationDataset}`
	EvaluationDatasets []string `json:"evaluationDatasets,omitempty"`
	// EvaluationMetricsConfigOverride: Optional. Overrides metrics config for this
	// specific evaluation.
	EvaluationMetricsConfigOverride *EvaluationMetricsConfig `json:"evaluationMetricsConfigOverride,omitempty"`
	// EvaluationMetricsThresholdOverride: Optional. Overrides metrics thresholds
	// for this specific evaluation.
	EvaluationMetricsThresholdOverride *EvaluationMetricsThresholds `json:"evaluationMetricsThresholdOverride,omitempty"`
	// EvaluationRuns: Output only. The EvaluationRuns that this Evaluation is
	// associated with.
	EvaluationRuns []string `json:"evaluationRuns,omitempty"`
	// Golden: Optional. The golden steps to be evaluated.
	Golden *EvaluationGolden `json:"golden,omitempty"`
	// Invalid: Output only. Whether the evaluation is invalid. This can happen if
	// an evaluation is referencing a tool, toolset, or agent that has since been
	// deleted.
	Invalid bool `json:"invalid,omitempty"`
	// LastCompletedResult: Output only. The latest evaluation result for this
	// evaluation.
	LastCompletedResult *EvaluationResult `json:"lastCompletedResult,omitempty"`
	// LastTenResults: Output only. The last 10 evaluation results for this
	// evaluation. This is only populated if include_last_ten_results is set to
	// true in the ListEvaluationsRequest or GetEvaluationRequest.
	LastTenResults []*EvaluationResult `json:"lastTenResults,omitempty"`
	// LastUpdatedBy: Output only. The user who last updated the evaluation.
	LastUpdatedBy string `json:"lastUpdatedBy,omitempty"`
	// Name: Identifier. The unique identifier of this evaluation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}`
	Name string `json:"name,omitempty"`
	// Scenario: Optional. The config for a scenario.
	Scenario *EvaluationScenario `json:"scenario,omitempty"`
	// Tags: Optional. User defined tags to categorize the evaluation.
	Tags []string `json:"tags,omitempty"`
	// UpdateTime: Output only. Timestamp when the evaluation 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. "AggregatedMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregatedMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationConfig: EvaluationConfig configures settings for running the
// evaluation.
type EvaluationConfig struct {
	// EvaluationChannel: Optional. The channel to evaluate.
	//
	// Possible values:
	//   "EVALUATION_CHANNEL_UNSPECIFIED" - Unspecified evaluation channel.
	//   "TEXT" - Text-only evaluation channel.
	//   "AUDIO" - Audio evaluation channel.
	EvaluationChannel string `json:"evaluationChannel,omitempty"`
	// InputAudioConfig: Optional. Configuration for processing the input audio.
	InputAudioConfig *InputAudioConfig `json:"inputAudioConfig,omitempty"`
	// OutputAudioConfig: Optional. Configuration for generating the output audio.
	OutputAudioConfig *OutputAudioConfig `json:"outputAudioConfig,omitempty"`
	// ToolCallBehaviour: Optional. Specifies whether the evaluation should use
	// real tool calls or fake tools.
	//
	// Possible values:
	//   "EVALUATION_TOOL_CALL_BEHAVIOUR_UNSPECIFIED" - Unspecified tool call
	// behavior. Will default to real tool calls.
	//   "REAL" - Use real tool calls.
	//   "FAKE" - Use fake tool calls.
	ToolCallBehaviour string `json:"toolCallBehaviour,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationChannel") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationChannel") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationDataset: An evaluation dataset represents a set of evaluations
// that are grouped together basaed on shared tags.
type EvaluationDataset struct {
	// AggregatedMetrics: Output only. The aggregated metrics for this evaluation
	// dataset across all runs.
	AggregatedMetrics *AggregatedMetrics `json:"aggregatedMetrics,omitempty"`
	// CreateTime: Output only. Timestamp when the evaluation dataset was created.
	CreateTime string `json:"createTime,omitempty"`
	// CreatedBy: Output only. The user who created the evaluation dataset.
	CreatedBy string `json:"createdBy,omitempty"`
	// DisplayName: Required. User-defined display name of the evaluation dataset.
	// Unique within an App.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// Evaluations: Optional. Evaluations that are included in this dataset.
	Evaluations []string `json:"evaluations,omitempty"`
	// LastUpdatedBy: Output only. The user who last updated the evaluation
	// dataset.
	LastUpdatedBy string `json:"lastUpdatedBy,omitempty"`
	// Name: Identifier. The unique identifier of this evaluation dataset. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evalu
	// ationDataset}`
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. Timestamp when the evaluation dataset 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. "AggregatedMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AggregatedMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationErrorInfo: Information about an error encountered during an
// evaluation execution.
type EvaluationErrorInfo struct {
	// ErrorMessage: Output only. The error message.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// ErrorType: Output only. The type of error.
	//
	// Possible values:
	//   "ERROR_TYPE_UNSPECIFIED" - Unspecified error type.
	//   "RUNTIME_FAILURE" - Failure during runtime execution.
	//   "CONVERSATION_RETRIEVAL_FAILURE" - Failure to retrieve conversation from
	// CES Runtime.
	//   "METRIC_CALCULATION_FAILURE" - Failure to calculate a metric / outcome.
	//   "EVALUATION_UPDATE_FAILURE" - Failure to update the evaluation.
	//   "QUOTA_EXHAUSTED" - Ran out of quota.
	//   "USER_SIMULATION_FAILURE" - Failure during user simulation.
	ErrorType string `json:"errorType,omitempty"`
	// SessionId: Output only. The session ID for the conversation that caused the
	// error.
	SessionId string `json:"sessionId,omitempty"`
	// UserFacingErrorMessage: Output only. The user facing error message.
	UserFacingErrorMessage string `json:"userFacingErrorMessage,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 EvaluationErrorInfo) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationErrorInfo
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EvaluationExpectation: An evaluation expectation represents a specific
// criteria to evaluate against.
type EvaluationExpectation struct {
	// CreateTime: Output only. Timestamp when the evaluation expectation was
	// created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Required. User-defined display name. Must be unique within the
	// app.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// LlmCriteria: Optional. Evaluation criteria based on an LLM prompt.
	LlmCriteria *EvaluationExpectationLlmCriteria `json:"llmCriteria,omitempty"`
	// Name: Identifier. The unique identifier of this evaluation expectation.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationExpectations/{e
	// valuation_expectation}`
	Name string `json:"name,omitempty"`
	// Tags: Optional. User-defined tags for expectations. Can be used to filter
	// expectations.
	Tags []string `json:"tags,omitempty"`
	// UpdateTime: Output only. Timestamp when the evaluation expectation 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. "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 EvaluationExpectation) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationExpectation
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EvaluationExpectationLlmCriteria: Configuration for LLM-based evaluation
// criteria.
type EvaluationExpectationLlmCriteria struct {
	// Prompt: Required. The prompt/instructions provided to the LLM judge.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Prompt") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Prompt") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationGolden: The steps required to replay a golden conversation.
type EvaluationGolden struct {
	// EvaluationExpectations: Optional. The evaluation expectations to evaluate
	// the replayed conversation against. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationExpectations/{e
	// valuationExpectation}`
	EvaluationExpectations []string `json:"evaluationExpectations,omitempty"`
	// Turns: Required. The golden turns required to replay a golden conversation.
	Turns []*EvaluationGoldenTurn `json:"turns,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationExpectations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationExpectations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationGoldenExpectation: Represents a single, checkable requirement.
type EvaluationGoldenExpectation struct {
	// AgentResponse: Optional. Check that the agent responded with the correct
	// response. The role "agent" is implied.
	AgentResponse *Message `json:"agentResponse,omitempty"`
	// AgentResponseHallucinationMetricsConfigOverride: Optional. Overrides for
	// agent_response hallucination metrics.
	AgentResponseHallucinationMetricsConfigOverride *EvaluationMetricsConfigHallucinationMetricsConfig `json:"agentResponseHallucinationMetricsConfigOverride,omitempty"`
	// AgentResponseSemanticSimilarityMetricsConfigOverride: Optional. Overrides
	// for agent_response semantic similarity metrics.
	AgentResponseSemanticSimilarityMetricsConfigOverride *EvaluationMetricsConfigSemanticSimilarityMetricsConfig `json:"agentResponseSemanticSimilarityMetricsConfigOverride,omitempty"`
	// AgentTransfer: Optional. Check that the agent transferred the conversation
	// to a different agent.
	AgentTransfer *AgentTransfer `json:"agentTransfer,omitempty"`
	// ExpectationLevelMetricsThresholdsOverride: Optional. Overrides metrics at
	// the step level.
	ExpectationLevelMetricsThresholdsOverride *EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds `json:"expectationLevelMetricsThresholdsOverride,omitempty"`
	// MockToolResponse: Optional. The tool response to mock, with the parameters
	// of interest specified. Any parameters not specified will be hallucinated by
	// the LLM.
	MockToolResponse *ToolResponse `json:"mockToolResponse,omitempty"`
	// Note: Optional. A note for this requirement, useful in reporting when
	// specific checks fail. E.g., "Check_Payment_Tool_Called".
	Note string `json:"note,omitempty"`
	// SkipEvaluation: Optional. If set to true, this specific expectation will not
	// be evaluated.
	SkipEvaluation bool `json:"skipEvaluation,omitempty"`
	// ToolCall: Optional. Check that a specific tool was called with the
	// parameters.
	ToolCall *ToolCall `json:"toolCall,omitempty"`
	// ToolResponse: Optional. Check that a specific tool had the expected
	// response.
	ToolResponse *ToolResponse `json:"toolResponse,omitempty"`
	// UpdatedVariables: Optional. Check that the agent updated the session
	// variables to the expected values. Used to also capture agent variable
	// updates for golden evals.
	UpdatedVariables googleapi.RawMessage `json:"updatedVariables,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentResponse") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentResponse") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationGoldenTurn: A golden turn defines a single turn in a golden
// conversation.
type EvaluationGoldenTurn struct {
	// HallucinationMetricBehaviorOverride: Optional. Override for turn-level
	// hallucination metric behavior.
	//
	// Possible values:
	//   "HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED" - Unspecified hallucination
	// metric behavior.
	//   "DISABLED" - Disable hallucination metric.
	//   "ENABLED" - Enable hallucination metric.
	HallucinationMetricBehaviorOverride string `json:"hallucinationMetricBehaviorOverride,omitempty"`
	// RootSpan: Optional. The root span of the golden turn for processing and
	// maintaining audio information. The uri for the audio must contain audio
	// saved in 16Khz sample rate.
	RootSpan *Span `json:"rootSpan,omitempty"`
	// Steps: Required. The steps required to replay a golden conversation.
	Steps []*EvaluationStep `json:"steps,omitempty"`
	// TurnLevelMetricsThresholdsOverride: Optional. Overrides for turn-level
	// metric thresholds.
	TurnLevelMetricsThresholdsOverride *EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds `json:"turnLevelMetricsThresholdsOverride,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "HallucinationMetricBehaviorOverride") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "HallucinationMetricBehaviorOverride") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfig: Configures the metrics for an evaluation.
type EvaluationMetricsConfig struct {
	// GoldenMetricsConfig: Optional. Configuration for the golden metrics for the
	// evaluation.
	GoldenMetricsConfig *EvaluationMetricsConfigGoldenMetricsConfig `json:"goldenMetricsConfig,omitempty"`
	// ScenarioMetricsConfig: Optional. Configuration for the scenario metrics for
	// the evaluation.
	ScenarioMetricsConfig *EvaluationMetricsConfigScenarioMetricsConfig `json:"scenarioMetricsConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GoldenMetricsConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GoldenMetricsConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigExpectationsMetMetricsConfig: Configuration for the
// expectation level metrics for the evaluation. To disable the metric, set the
// message but do not set the `enable_expectations_met_metrics` field to true
// (or explicitly set it to false). To unset the configuration and fallback to
// the default behavior, omit the message entirely.
type EvaluationMetricsConfigExpectationsMetMetricsConfig struct {
	// EnableExpectationsMetMetrics: Optional. Whether to calculate the expectation
	// level metrics for the evaluation.
	EnableExpectationsMetMetrics bool `json:"enableExpectationsMetMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableExpectationsMetMetrics") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableExpectationsMetMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigGoldenMetricsConfig: Configuration for the golden
// metrics for the evaluation.
type EvaluationMetricsConfigGoldenMetricsConfig struct {
	// SemanticSimilarityMetricsConfig: Optional. Global configuration for semantic
	// similarity metrics.
	SemanticSimilarityMetricsConfig *EvaluationMetricsConfigSemanticSimilarityMetricsConfig `json:"semanticSimilarityMetricsConfig,omitempty"`
	// StepToolCorrectnessMetricsConfig: Optional. Configuration for step level
	// tool correctness metrics.
	StepToolCorrectnessMetricsConfig *EvaluationMetricsConfigToolCorrectnessMetricsConfig `json:"stepToolCorrectnessMetricsConfig,omitempty"`
	// ToolCorrectnessMetricsConfig: Optional. Configuration for turn level tool
	// correctness metrics.
	ToolCorrectnessMetricsConfig *EvaluationMetricsConfigToolCorrectnessMetricsConfig `json:"toolCorrectnessMetricsConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "SemanticSimilarityMetricsConfig") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SemanticSimilarityMetricsConfig")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigHallucinationMetricsConfig: Configuration for the
// hallucination metrics for the evaluation. To disable the metric, set the
// message but do not set the `enable_hallucination_metrics` field to true (or
// explicitly set it to false). To unset the configuration and fallback to the
// default behavior, omit the message entirely.
type EvaluationMetricsConfigHallucinationMetricsConfig struct {
	// EnableHallucinationMetrics: Optional. Whether to calculate hallucination
	// metrics for the evaluation.
	EnableHallucinationMetrics bool `json:"enableHallucinationMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableHallucinationMetrics")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableHallucinationMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigScenarioMetricsConfig: Configuration for the scenario
// metrics for the evaluation.
type EvaluationMetricsConfigScenarioMetricsConfig struct {
	// ExpectationsMetMetricsConfig: Optional. Configuration for expectation level
	// metrics.
	ExpectationsMetMetricsConfig *EvaluationMetricsConfigExpectationsMetMetricsConfig `json:"expectationsMetMetricsConfig,omitempty"`
	// UserGoalMetMetricsConfig: Optional. Configuration for user goal met metrics.
	UserGoalMetMetricsConfig *EvaluationMetricsConfigUserGoalMetMetricsConfig `json:"userGoalMetMetricsConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ExpectationsMetMetricsConfig") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpectationsMetMetricsConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigSemanticSimilarityMetricsConfig: Configuration for
// similarity metrics for the evaluation. To disable the metric, set the
// message but do not set the `enable_semantic_similarity_metrics` field to
// true (or explicitly set it to false). To unset the configuration and
// fallback to the default behavior, omit the message entirely.
type EvaluationMetricsConfigSemanticSimilarityMetricsConfig struct {
	// EnableSemanticSimilarityMetrics: Optional. Whether to calculate semantic
	// similarity metrics for the evaluation.
	EnableSemanticSimilarityMetrics bool `json:"enableSemanticSimilarityMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableSemanticSimilarityMetrics") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableSemanticSimilarityMetrics")
	// to include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigToolCorrectnessMetricsConfig: Configuration for
// correctness metrics for the evaluation. To disable the metric, set the
// message but do not set the `enable_tool_correctness_metrics` field to true
// (or explicitly set it to false). To unset the configuration and fallback to
// the default behavior, omit the message entirely.
type EvaluationMetricsConfigToolCorrectnessMetricsConfig struct {
	// EnableToolCorrectnessMetrics: Optional. Whether to calculate tool
	// correctness metrics for the evaluation.
	EnableToolCorrectnessMetrics bool `json:"enableToolCorrectnessMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EnableToolCorrectnessMetrics") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableToolCorrectnessMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsConfigUserGoalMetMetricsConfig: Configuration for the user
// goal met metrics for the evaluation. To disable the metric, set the message
// but do not set the `enable_user_goal_met_metrics` field to true (or
// explicitly set it to false). To unset the configuration and fallback to the
// default behavior, omit the message entirely.
type EvaluationMetricsConfigUserGoalMetMetricsConfig struct {
	// EnableUserGoalMetMetrics: Optional. Whether to calculate the user goal met
	// metrics for the evaluation.
	EnableUserGoalMetMetrics bool `json:"enableUserGoalMetMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EnableUserGoalMetMetrics")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EnableUserGoalMetMetrics") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsThresholds: Threshold settings for metrics in an
// Evaluation.
type EvaluationMetricsThresholds struct {
	// GoldenEvaluationMetricsThresholds: Optional. The golden evaluation metrics
	// thresholds.
	GoldenEvaluationMetricsThresholds *EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds `json:"goldenEvaluationMetricsThresholds,omitempty"`
	// GoldenHallucinationMetricBehavior: Optional. The hallucination metric
	// behavior for golden evaluations.
	//
	// Possible values:
	//   "HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED" - Unspecified hallucination
	// metric behavior.
	//   "DISABLED" - Disable hallucination metric.
	//   "ENABLED" - Enable hallucination metric.
	GoldenHallucinationMetricBehavior string `json:"goldenHallucinationMetricBehavior,omitempty"`
	// HallucinationMetricBehavior: Optional. Deprecated: Use
	// `golden_hallucination_metric_behavior` instead. The hallucination metric
	// behavior is currently used for golden evaluations.
	//
	// Possible values:
	//   "HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED" - Unspecified hallucination
	// metric behavior.
	//   "DISABLED" - Disable hallucination metric.
	//   "ENABLED" - Enable hallucination metric.
	HallucinationMetricBehavior string `json:"hallucinationMetricBehavior,omitempty"`
	// ScenarioHallucinationMetricBehavior: Optional. The hallucination metric
	// behavior for scenario evaluations.
	//
	// Possible values:
	//   "HALLUCINATION_METRIC_BEHAVIOR_UNSPECIFIED" - Unspecified hallucination
	// metric behavior.
	//   "DISABLED" - Disable hallucination metric.
	//   "ENABLED" - Enable hallucination metric.
	ScenarioHallucinationMetricBehavior string `json:"scenarioHallucinationMetricBehavior,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "GoldenEvaluationMetricsThresholds") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "GoldenEvaluationMetricsThresholds") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds: Settings for
// golden evaluations.
type EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds struct {
	// ExpectationLevelMetricsThresholds: Optional. The expectation level metrics
	// thresholds.
	ExpectationLevelMetricsThresholds *EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds `json:"expectationLevelMetricsThresholds,omitempty"`
	// ToolMatchingSettings: Optional. The tool matching settings. An extra tool
	// call is a tool call that is present in the execution but does not match any
	// tool call in the golden expectation.
	ToolMatchingSettings *EvaluationMetricsThresholdsToolMatchingSettings `json:"toolMatchingSettings,omitempty"`
	// TurnLevelMetricsThresholds: Optional. The turn level metrics thresholds.
	TurnLevelMetricsThresholds *EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds `json:"turnLevelMetricsThresholds,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ExpectationLevelMetricsThresholds") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ExpectationLevelMetricsThresholds") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelM
// etricsThresholds: Expectation level metrics thresholds.
type EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds struct {
	// ToolInvocationParameterCorrectnessThreshold: Optional. The success threshold
	// for individual tool invocation parameter correctness. Must be a float
	// between 0 and 1. Default is 1.0.
	ToolInvocationParameterCorrectnessThreshold float64 `json:"toolInvocationParameterCorrectnessThreshold,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "ToolInvocationParameterCorrectnessThreshold") to unconditionally include in
	// API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "ToolInvocationParameterCorrectnessThreshold") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsT
// hresholds: Turn level metrics thresholds.
type EvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds struct {
	// OverallToolInvocationCorrectnessThreshold: Optional. The success threshold
	// for overall tool invocation correctness. Must be a float between 0 and 1.
	// Default is 1.0.
	OverallToolInvocationCorrectnessThreshold float64 `json:"overallToolInvocationCorrectnessThreshold,omitempty"`
	// SemanticSimilarityChannel: Optional. The semantic similarity channel to use
	// for evaluation.
	//
	// Possible values:
	//   "SEMANTIC_SIMILARITY_CHANNEL_UNSPECIFIED" - Metric unspecified. Defaults
	// to TEXT.
	//   "TEXT" - Use text semantic similarity.
	//   "AUDIO" - Use audio semantic similarity.
	SemanticSimilarityChannel string `json:"semanticSimilarityChannel,omitempty"`
	// SemanticSimilaritySuccessThreshold: Optional. The success threshold for
	// semantic similarity. Must be an integer between 0 and 4. Default is >= 3.
	SemanticSimilaritySuccessThreshold int64 `json:"semanticSimilaritySuccessThreshold,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "OverallToolInvocationCorrectnessThreshold") to unconditionally include in
	// API requests. By default, fields with empty or default values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "OverallToolInvocationCorrectnessThreshold") to include in API requests with
	// the JSON null value. By default, fields with empty values are omitted from
	// API requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields
	// for more details.
	NullFields []string `json:"-"`
}

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

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

// EvaluationMetricsThresholdsToolMatchingSettings: Settings for matching tool
// calls.
type EvaluationMetricsThresholdsToolMatchingSettings struct {
	// ExtraToolCallBehavior: Optional. Behavior for extra tool calls. Defaults to
	// FAIL.
	//
	// Possible values:
	//   "EXTRA_TOOL_CALL_BEHAVIOR_UNSPECIFIED" - Unspecified behavior. Defaults to
	// FAIL.
	//   "FAIL" - Fail the evaluation if an extra tool call is encountered.
	//   "ALLOW" - Allow the extra tool call.
	ExtraToolCallBehavior string `json:"extraToolCallBehavior,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExtraToolCallBehavior") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExtraToolCallBehavior") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationPersona: A persona represents an end user in an evaluation.
type EvaluationPersona struct {
	// Description: Optional. The description of the persona.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. The display name of the persona. Unique within an
	// app.
	DisplayName string `json:"displayName,omitempty"`
	// Name: Required. The unique identifier of the persona. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evalu
	// ationPersona}`
	Name string `json:"name,omitempty"`
	// Personality: Required. An instruction for the agent on how to behave in the
	// evaluation.
	Personality string `json:"personality,omitempty"`
	// SpeechConfig: Optional. Configuration for how the persona sounds (TTS
	// settings).
	SpeechConfig *EvaluationPersonaSpeechConfig `json:"speechConfig,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 EvaluationPersona) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationPersona
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EvaluationPersonaSpeechConfig: Configuration for Text-to-Speech generation.
type EvaluationPersonaSpeechConfig struct {
	// Environment: Optional. The simulated audio environment.
	//
	// Possible values:
	//   "BACKGROUND_ENVIRONMENT_UNSPECIFIED" - Background environment unspecified.
	//   "CALL_CENTER" - Call center environment.
	//   "TRAFFIC" - Traffic noise environment.
	//   "KIDS_NOISE" - Kids noise environment.
	//   "CAFE" - Cafe environment.
	Environment string `json:"environment,omitempty"`
	// SpeakingRate: Optional. The speaking rate. 1.0 is normal. Lower is slower
	// (e.g., 0.8), higher is faster (e.g., 1.5). Useful for testing how the agent
	// handles fast talkers.
	SpeakingRate float64 `json:"speakingRate,omitempty"`
	// VoiceId: Optional. The specific voice identifier/accent to use. Example:
	// "en-US-Wavenet-D" or "en-GB-Standard-A"
	VoiceId string `json:"voiceId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Environment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Environment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// EvaluationResult: An evaluation result represents the output of running an
// Evaluation.
type EvaluationResult struct {
	// AppVersion: Output only. The app version used to generate the conversation
	// that resulted in this result. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	AppVersion string `json:"appVersion,omitempty"`
	// AppVersionDisplayName: Output only. The display name of the `app_version`
	// that the evaluation ran against.
	AppVersionDisplayName string `json:"appVersionDisplayName,omitempty"`
	// Changelog: Output only. The changelog of the app version that the evaluation
	// ran against. This is populated if user runs evaluation on latest/draft.
	Changelog string `json:"changelog,omitempty"`
	// ChangelogCreateTime: Output only. The create time of the changelog of the
	// app version that the evaluation ran against. This is populated if user runs
	// evaluation on latest/draft.
	ChangelogCreateTime string `json:"changelogCreateTime,omitempty"`
	// Config: Output only. The configuration used in the evaluation run that
	// resulted in this result.
	Config *EvaluationConfig `json:"config,omitempty"`
	// CreateTime: Output only. Timestamp when the evaluation result was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Required. Display name of the Evaluation Result. Unique within
	// an Evaluation. By default, it has the following format: " result - ".
	DisplayName string `json:"displayName,omitempty"`
	// Error: Output only. Deprecated: Use `error_info` instead. Errors encountered
	// during execution.
	Error *Status `json:"error,omitempty"`
	// ErrorInfo: Output only. Error information for the evaluation result.
	ErrorInfo *EvaluationErrorInfo `json:"errorInfo,omitempty"`
	// EvaluationMetricsThresholds: Output only. The evaluation thresholds for the
	// result.
	EvaluationMetricsThresholds *EvaluationMetricsThresholds `json:"evaluationMetricsThresholds,omitempty"`
	// EvaluationRun: Output only. The evaluation run that produced this result.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationRuns/{evaluatio
	// nRun}`
	EvaluationRun string `json:"evaluationRun,omitempty"`
	// EvaluationStatus: Output only. The outcome of the evaluation. Only populated
	// if execution_state is COMPLETE.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	EvaluationStatus string `json:"evaluationStatus,omitempty"`
	// ExecutionState: Output only. The state of the evaluation result execution.
	//
	// Possible values:
	//   "EXECUTION_STATE_UNSPECIFIED" - Evaluation result execution state is not
	// specified.
	//   "RUNNING" - Evaluation result execution is running.
	//   "COMPLETED" - Evaluation result execution has completed.
	//   "ERROR" - Evaluation result execution failed due to an internal error.
	ExecutionState string `json:"executionState,omitempty"`
	// GoldenResult: Output only. The outcome of a golden evaluation.
	GoldenResult *EvaluationResultGoldenResult `json:"goldenResult,omitempty"`
	// GoldenRunMethod: Output only. The method used to run the golden evaluation.
	//
	// Possible values:
	//   "GOLDEN_RUN_METHOD_UNSPECIFIED" - Run method is not specified.
	//   "STABLE" - Run the evaluation as stable replay, where each turn is a
	// unique session with the previous expected turns injected as context.
	//   "NAIVE" - Run the evaluation as naive replay, where the run is a single
	// session with no context injected.
	GoldenRunMethod string `json:"goldenRunMethod,omitempty"`
	// InitiatedBy: Output only. The user who initiated the evaluation run that
	// resulted in this result.
	InitiatedBy string `json:"initiatedBy,omitempty"`
	// Name: Identifier. The unique identifier of the evaluation result. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}/
	// results/{result}`
	Name string `json:"name,omitempty"`
	// Persona: Output only. The persona used to generate the conversation for the
	// evaluation result.
	Persona *EvaluationPersona `json:"persona,omitempty"`
	// ScenarioResult: Output only. The outcome of a scenario evaluation.
	ScenarioResult *EvaluationResultScenarioResult `json:"scenarioResult,omitempty"`

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

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

// EvaluationResultEvaluationExpectationResult: The result of a single
// evaluation expectation.
type EvaluationResultEvaluationExpectationResult struct {
	// EvaluationExpectation: Output only. The evaluation expectation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationExpectations/{e
	// valuation_expectation}`
	EvaluationExpectation string `json:"evaluationExpectation,omitempty"`
	// Explanation: Output only. The explanation for the result.
	Explanation string `json:"explanation,omitempty"`
	// Outcome: Output only. The outcome of the evaluation expectation.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// Prompt: Output only. The prompt that was used for the evaluation.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationExpectation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationExpectation") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultGoldenExpectationOutcome: Specifies the expectation and the
// result of that expectation.
type EvaluationResultGoldenExpectationOutcome struct {
	// Expectation: Output only. The expectation that was evaluated.
	Expectation *EvaluationGoldenExpectation `json:"expectation,omitempty"`
	// ObservedAgentResponse: Output only. The result of the agent response
	// expectation.
	ObservedAgentResponse *Message `json:"observedAgentResponse,omitempty"`
	// ObservedAgentTransfer: Output only. The result of the agent transfer
	// expectation.
	ObservedAgentTransfer *AgentTransfer `json:"observedAgentTransfer,omitempty"`
	// ObservedPayload: Output only. An observed custom payload. There are no
	// expectations for custom payloads. This is only used for metrics calculation.
	// The outcome is always SKIPPED.
	ObservedPayload googleapi.RawMessage `json:"observedPayload,omitempty"`
	// ObservedToolCall: Output only. The result of the tool call expectation.
	ObservedToolCall *ToolCall `json:"observedToolCall,omitempty"`
	// ObservedToolResponse: Output only. The result of the tool response
	// expectation.
	ObservedToolResponse *ToolResponse `json:"observedToolResponse,omitempty"`
	// Outcome: Output only. The outcome of the expectation.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// SemanticSimilarityResult: Output only. The result of the semantic similarity
	// check.
	SemanticSimilarityResult *EvaluationResultSemanticSimilarityResult `json:"semanticSimilarityResult,omitempty"`
	// ToolInvocationResult: Output only. The result of the tool invocation check.
	ToolInvocationResult *EvaluationResultGoldenExpectationOutcomeToolInvocationResult `json:"toolInvocationResult,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Expectation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Expectation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultGoldenExpectationOutcomeToolInvocationResult: The result of
// the tool invocation check.
type EvaluationResultGoldenExpectationOutcomeToolInvocationResult struct {
	// Explanation: Output only. A free text explanation for the tool invocation
	// result.
	Explanation string `json:"explanation,omitempty"`
	// Outcome: Output only. The outcome of the tool invocation check. This is
	// determined by comparing the parameter_correctness_score to the threshold. If
	// the score is equal to or above the threshold, the outcome will be PASS.
	// Otherwise, the outcome will be FAIL.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// ParameterCorrectnessScore: Output only. The tool invocation parameter
	// correctness score. This indicates the percent of parameters from the
	// expected tool call that were also present in the actual tool call.
	ParameterCorrectnessScore float64 `json:"parameterCorrectnessScore,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// EvaluationResultGoldenResult: The result of a golden evaluation.
type EvaluationResultGoldenResult struct {
	// EvaluationExpectationResults: Output only. The results of the evaluation
	// expectations.
	EvaluationExpectationResults []*EvaluationResultEvaluationExpectationResult `json:"evaluationExpectationResults,omitempty"`
	// TurnReplayResults: Output only. The result of running each turn of the
	// golden conversation.
	TurnReplayResults []*EvaluationResultGoldenResultTurnReplayResult `json:"turnReplayResults,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "EvaluationExpectationResults") to unconditionally include in API requests.
	// By default, fields with empty or default values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
	// for more details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationExpectationResults") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultGoldenResultTurnReplayResult: The result of running a single
// turn of the golden conversation.
type EvaluationResultGoldenResultTurnReplayResult struct {
	// Conversation: Output only. The conversation that was generated for this
	// turn.
	Conversation string `json:"conversation,omitempty"`
	// ErrorInfo: Output only. Information about the error that occurred during
	// this turn.
	ErrorInfo *EvaluationErrorInfo `json:"errorInfo,omitempty"`
	// ExpectationOutcome: Output only. The outcome of each expectation.
	ExpectationOutcome []*EvaluationResultGoldenExpectationOutcome `json:"expectationOutcome,omitempty"`
	// HallucinationResult: Output only. The result of the hallucination check.
	HallucinationResult *EvaluationResultHallucinationResult `json:"hallucinationResult,omitempty"`
	// OverallToolInvocationResult: Output only. The result of the overall tool
	// invocation check.
	OverallToolInvocationResult *EvaluationResultOverallToolInvocationResult `json:"overallToolInvocationResult,omitempty"`
	// SemanticSimilarityResult: Output only. The result of the semantic similarity
	// check.
	SemanticSimilarityResult *EvaluationResultSemanticSimilarityResult `json:"semanticSimilarityResult,omitempty"`
	// SpanLatencies: Output only. The latency of spans in the turn.
	SpanLatencies []*EvaluationResultSpanLatency `json:"spanLatencies,omitempty"`
	// ToolCallLatencies: Output only. The latency of each tool call in the turn.
	ToolCallLatencies []*EvaluationResultToolCallLatency `json:"toolCallLatencies,omitempty"`
	// ToolInvocationScore: Output only. Deprecated. Use
	// OverallToolInvocationResult instead.
	ToolInvocationScore float64 `json:"toolInvocationScore,omitempty"`
	// ToolOrderedInvocationScore: Output only. The overall tool ordered invocation
	// score for this turn. This indicates the overall percent of tools from the
	// expected turn that were actually invoked in the expected order.
	ToolOrderedInvocationScore float64 `json:"toolOrderedInvocationScore,omitempty"`
	// TurnLatency: Output only. Duration of the turn.
	TurnLatency string `json:"turnLatency,omitempty"`
	// 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 EvaluationResultGoldenResultTurnReplayResult) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationResultGoldenResultTurnReplayResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

// EvaluationResultHallucinationResult: The result of the hallucination check
// for a single turn.
type EvaluationResultHallucinationResult struct {
	// Explanation: Output only. The explanation for the hallucination score.
	Explanation string `json:"explanation,omitempty"`
	// Label: Output only. The label associated with each score. Score 1: Justified
	// Score 0: Not Justified Score -1: No Claim To Assess
	Label string `json:"label,omitempty"`
	// Score: Output only. The hallucination score. Can be -1, 0, 1.
	Score int64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultOverallToolInvocationResult: The result of the overall tool
// invocation check.
type EvaluationResultOverallToolInvocationResult struct {
	// Outcome: Output only. The outcome of the tool invocation check. This is
	// determined by comparing the tool_invocation_score to the
	// overall_tool_invocation_correctness_threshold. If the score is equal to or
	// above the threshold, the outcome will be PASS. Otherwise, the outcome will
	// be FAIL.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// ToolInvocationScore: The overall tool invocation score for this turn. This
	// indicates the overall percent of tools from the expected turn that were
	// actually invoked.
	ToolInvocationScore float64 `json:"toolInvocationScore,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 EvaluationResultOverallToolInvocationResult) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationResultOverallToolInvocationResult
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

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

// EvaluationResultScenarioExpectationOutcome: The outcome of a scenario
// expectation.
type EvaluationResultScenarioExpectationOutcome struct {
	// Expectation: Output only. The expectation that was evaluated.
	Expectation *EvaluationScenarioExpectation `json:"expectation,omitempty"`
	// ObservedAgentResponse: Output only. The observed agent response.
	ObservedAgentResponse *Message `json:"observedAgentResponse,omitempty"`
	// ObservedToolCall: Output only. The observed tool call.
	ObservedToolCall *EvaluationResultScenarioExpectationOutcomeObservedToolCall `json:"observedToolCall,omitempty"`
	// Outcome: Output only. The outcome of the ScenarioExpectation.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Expectation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Expectation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultScenarioExpectationOutcomeObservedToolCall: The observed
// tool call and response.
type EvaluationResultScenarioExpectationOutcomeObservedToolCall struct {
	// ToolCall: Output only. The observed tool call.
	ToolCall *ToolCall `json:"toolCall,omitempty"`
	// ToolResponse: Output only. The observed tool response.
	ToolResponse *ToolResponse `json:"toolResponse,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolCall") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolCall") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultScenarioResult: The outcome of a scenario evaluation.
type EvaluationResultScenarioResult struct {
	// AllExpectationsSatisfied: Output only. Whether all expectations were
	// satisfied for this turn.
	AllExpectationsSatisfied bool `json:"allExpectationsSatisfied,omitempty"`
	// Conversation: Output only. The conversation that was generated in the
	// scenario.
	Conversation string `json:"conversation,omitempty"`
	// EvaluationExpectationResults: Output only. The results of the evaluation
	// expectations.
	EvaluationExpectationResults []*EvaluationResultEvaluationExpectationResult `json:"evaluationExpectationResults,omitempty"`
	// ExpectationOutcomes: Output only. The outcome of each expectation.
	ExpectationOutcomes []*EvaluationResultScenarioExpectationOutcome `json:"expectationOutcomes,omitempty"`
	// HallucinationResult: Output only. The result of the hallucination check.
	// There will be one hallucination result for each turn in the conversation.
	HallucinationResult []*EvaluationResultHallucinationResult `json:"hallucinationResult,omitempty"`
	// RubricOutcomes: Output only. The outcome of the rubric.
	RubricOutcomes []*EvaluationResultScenarioRubricOutcome `json:"rubricOutcomes,omitempty"`
	// SpanLatencies: Output only. The latency of spans in the conversation.
	SpanLatencies []*EvaluationResultSpanLatency `json:"spanLatencies,omitempty"`
	// Task: Output only. The task that was used when running the scenario for this
	// result.
	Task string `json:"task,omitempty"`
	// TaskCompleted: Output only. Whether the task was completed for this turn.
	// This is a composite of all expectations satisfied, no hallucinations, and
	// user goal satisfaction.
	TaskCompleted bool `json:"taskCompleted,omitempty"`
	// TaskCompletionResult: Output only. The result of the task completion check.
	TaskCompletionResult *EvaluationResultTaskCompletionResult `json:"taskCompletionResult,omitempty"`
	// ToolCallLatencies: Output only. The latency of each tool call execution in
	// the conversation.
	ToolCallLatencies []*EvaluationResultToolCallLatency `json:"toolCallLatencies,omitempty"`
	// UserFacts: Output only. The user facts that were used by the scenario for
	// this result.
	UserFacts []*EvaluationScenarioUserFact `json:"userFacts,omitempty"`
	// UserGoalSatisfactionResult: Output only. The result of the user goal
	// satisfaction check.
	UserGoalSatisfactionResult *EvaluationResultUserGoalSatisfactionResult `json:"userGoalSatisfactionResult,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllExpectationsSatisfied")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllExpectationsSatisfied") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultScenarioRubricOutcome: The outcome of the evaluation against
// the rubric.
type EvaluationResultScenarioRubricOutcome struct {
	// Rubric: Output only. The rubric that was used to evaluate the conversation.
	Rubric string `json:"rubric,omitempty"`
	// Score: Output only. The score of the conversation against the rubric.
	Score float64 `json:"score,omitempty"`
	// ScoreExplanation: Output only. The rater's response to the rubric.
	ScoreExplanation string `json:"scoreExplanation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Rubric") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Rubric") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// EvaluationResultSemanticSimilarityResult: The result of the semantic
// similarity check.
type EvaluationResultSemanticSimilarityResult struct {
	// Explanation: Output only. The explanation for the semantic similarity score.
	Explanation string `json:"explanation,omitempty"`
	// Label: Output only. The label associated with each score. Score 4: Fully
	// Consistent Score 3: Mostly Consistent Score 2: Partially Consistent (Minor
	// Omissions) Score 1: Largely Inconsistent (Major Omissions) Score 0:
	// Completely Inconsistent / Contradictory
	Label string `json:"label,omitempty"`
	// Outcome: Output only. The outcome of the semantic similarity check. This is
	// determined by comparing the score to the
	// semantic_similarity_success_threshold. If the score is equal to or above the
	// threshold, the outcome will be PASS. Otherwise, the outcome will be FAIL.
	//
	// Possible values:
	//   "OUTCOME_UNSPECIFIED" - Evaluation outcome is not specified.
	//   "PASS" - Evaluation/Expectation passed. In the case of an evaluation, this
	// means that all expectations were met.
	//   "FAIL" - Evaluation/Expectation failed. In the case of an evaluation, this
	// means that at least one expectation was not met.
	//   "SKIPPED" - Evaluation/Expectation was skipped.
	Outcome string `json:"outcome,omitempty"`
	// Score: Output only. The semantic similarity score. Can be 0, 1, 2, 3, or 4.
	Score int64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultSpanLatency: The latency of a span execution.
type EvaluationResultSpanLatency struct {
	// Callback: Output only. The name of the user callback span.
	Callback string `json:"callback,omitempty"`
	// DisplayName: Output only. The display name of the span. Applicable to tool
	// and guardrail spans.
	DisplayName string `json:"displayName,omitempty"`
	// EndTime: Output only. The end time of span.
	EndTime string `json:"endTime,omitempty"`
	// ExecutionLatency: Output only. The latency of span.
	ExecutionLatency string `json:"executionLatency,omitempty"`
	// Model: Output only. The name of the LLM span.
	Model string `json:"model,omitempty"`
	// Resource: Output only. The resource name of the guardrail or tool spans.
	Resource string `json:"resource,omitempty"`
	// StartTime: Output only. The start time of span.
	StartTime string `json:"startTime,omitempty"`
	// Toolset: Output only. The toolset tool identifier.
	Toolset *ToolsetTool `json:"toolset,omitempty"`
	// Type: Output only. The type of span.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Default value. This value is unused.
	//   "TOOL" - Tool call span.
	//   "USER_CALLBACK" - User callback span.
	//   "GUARDRAIL" - Guardrail span.
	//   "LLM" - LLM span.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Callback") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Callback") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultTaskCompletionResult: The result of the task completion
// check for the conversation.
type EvaluationResultTaskCompletionResult struct {
	// Explanation: Output only. The explanation for the task completion score.
	Explanation string `json:"explanation,omitempty"`
	// Label: Output only. The label associated with each score. Score 1: Task
	// Completed Score 0: Task Not Completed Score -1: User Goal Undefined
	Label string `json:"label,omitempty"`
	// Score: Output only. The task completion score. Can be -1, 0, 1
	Score int64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationResultToolCallLatency: The latency of a tool call execution.
type EvaluationResultToolCallLatency struct {
	// DisplayName: Output only. The display name of the tool.
	DisplayName string `json:"displayName,omitempty"`
	// EndTime: Output only. The end time of the tool call execution.
	EndTime string `json:"endTime,omitempty"`
	// ExecutionLatency: Output only. The latency of the tool call execution.
	ExecutionLatency string `json:"executionLatency,omitempty"`
	// StartTime: Output only. The start time of the tool call execution.
	StartTime string `json:"startTime,omitempty"`
	// Tool: Output only. The name of the tool that got executed. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`.
	Tool string `json:"tool,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 EvaluationResultToolCallLatency) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationResultToolCallLatency
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EvaluationResultUserGoalSatisfactionResult: The result of a user goal
// satisfaction check for a conversation.
type EvaluationResultUserGoalSatisfactionResult struct {
	// Explanation: Output only. The explanation for the user task satisfaction
	// score.
	Explanation string `json:"explanation,omitempty"`
	// Label: Output only. The label associated with each score. Score 1: User Task
	// Satisfied Score 0: User Task Not Satisfied Score -1: User Task Unspecified
	Label string `json:"label,omitempty"`
	// Score: Output only. The user task satisfaction score. Can be -1, 0, 1.
	Score int64 `json:"score,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationRun: An evaluation run represents an all the evaluation results
// from an evaluation execution.
type EvaluationRun struct {
	// AppVersion: Output only. The app version to evaluate. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	AppVersion string `json:"appVersion,omitempty"`
	// AppVersionDisplayName: Output only. The display name of the `app_version`
	// that the evaluation ran against.
	AppVersionDisplayName string `json:"appVersionDisplayName,omitempty"`
	// Changelog: Output only. The changelog of the app version that the evaluation
	// ran against. This is populated if user runs evaluation on latest/draft.
	Changelog string `json:"changelog,omitempty"`
	// ChangelogCreateTime: Output only. The create time of the changelog of the
	// app version that the evaluation ran against. This is populated if user runs
	// evaluation on latest/draft.
	ChangelogCreateTime string `json:"changelogCreateTime,omitempty"`
	// Config: Output only. The configuration used in the run.
	Config *EvaluationConfig `json:"config,omitempty"`
	// CreateTime: Output only. Timestamp when the evaluation run was created.
	CreateTime string `json:"createTime,omitempty"`
	// DisplayName: Optional. User-defined display name of the evaluation run.
	// default: " run - ".
	DisplayName string `json:"displayName,omitempty"`
	// Error: Output only. Deprecated: Use error_info instead. Errors encountered
	// during execution.
	Error *Status `json:"error,omitempty"`
	// ErrorInfo: Output only. Error information for the evaluation run.
	ErrorInfo *EvaluationErrorInfo `json:"errorInfo,omitempty"`
	// EvaluationDataset: Output only. The evaluation dataset that this run is
	// associated with. This field is mutually exclusive with `evaluations`.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evalu
	// ationDataset}`
	EvaluationDataset string `json:"evaluationDataset,omitempty"`
	// EvaluationResults: Output only. The evaluation results that are part of this
	// run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}/
	// results/{result}`
	EvaluationResults []string `json:"evaluationResults,omitempty"`
	// EvaluationRunSummaries: Output only. Map of evaluation name to
	// EvaluationRunSummary.
	EvaluationRunSummaries map[string]EvaluationRunEvaluationRunSummary `json:"evaluationRunSummaries,omitempty"`
	// EvaluationType: Output only. The type of the evaluations in this run.
	//
	// Possible values:
	//   "EVALUATION_TYPE_UNSPECIFIED" - Evaluation type is not specified.
	//   "GOLDEN" - Golden evaluation.
	//   "SCENARIO" - Scenario evaluation.
	//   "MIXED" - Indicates the run includes a mix of golden and scenario
	// evaluations.
	EvaluationType string `json:"evaluationType,omitempty"`
	// Evaluations: Output only. The evaluations that are part of this run. The
	// list may contain evaluations of either type. This field is mutually
	// exclusive with `evaluation_dataset`. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}`
	Evaluations []string `json:"evaluations,omitempty"`
	// GoldenRunMethod: Output only. The method used to run the evaluation.
	//
	// Possible values:
	//   "GOLDEN_RUN_METHOD_UNSPECIFIED" - Run method is not specified.
	//   "STABLE" - Run the evaluation as stable replay, where each turn is a
	// unique session with the previous expected turns injected as context.
	//   "NAIVE" - Run the evaluation as naive replay, where the run is a single
	// session with no context injected.
	GoldenRunMethod string `json:"goldenRunMethod,omitempty"`
	// InitiatedBy: Output only. The user who initiated the evaluation run.
	InitiatedBy string `json:"initiatedBy,omitempty"`
	// LatencyReport: Output only. Latency report for the evaluation run.
	LatencyReport *LatencyReport `json:"latencyReport,omitempty"`
	// Name: Identifier. The unique identifier of the evaluation run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationRuns/{evaluatio
	// nRun}`
	Name string `json:"name,omitempty"`
	// Operation: Output only. The operation that created this evaluation run.
	// Format: `projects/{project}/locations/{location}/operations/{operation}`
	Operation string `json:"operation,omitempty"`
	// OptimizationConfig: Optional. Configuration for running the optimization
	// step after the evaluation run. If not set, the optimization step will not be
	// run.
	OptimizationConfig *OptimizationConfig `json:"optimizationConfig,omitempty"`
	// PersonaRunConfigs: Output only. The configuration to use for the run per
	// persona.
	PersonaRunConfigs []*PersonaRunConfig `json:"personaRunConfigs,omitempty"`
	// Progress: Output only. The progress of the evaluation run.
	Progress *EvaluationRunProgress `json:"progress,omitempty"`
	// RunCount: Output only. The number of times the evaluations inside the run
	// were run.
	RunCount int64 `json:"runCount,omitempty"`
	// ScheduledEvaluationRun: Output only. The scheduled evaluation run resource
	// name that created this evaluation run. This field is only set if the
	// evaluation run was created by a scheduled evaluation run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/scheduledEvaluationRuns/{
	// scheduled_evaluation_run}`
	ScheduledEvaluationRun string `json:"scheduledEvaluationRun,omitempty"`
	// State: Output only. The state of the evaluation run.
	//
	// Possible values:
	//   "EVALUATION_RUN_STATE_UNSPECIFIED" - Evaluation run state is not
	// specified.
	//   "RUNNING" - Evaluation run is running.
	//   "COMPLETED" - Evaluation run has completed.
	//   "ERROR" - The evaluation run has an error.
	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. "AppVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationRunEvaluationRunSummary: Contains the summary of passed and failed
// result counts for a specific evaluation in an evaluation run.
type EvaluationRunEvaluationRunSummary struct {
	// ErrorCount: Output only. Number of error results for the associated
	// Evaluation in this run.
	ErrorCount int64 `json:"errorCount,omitempty"`
	// FailedCount: Output only. Number of failed results for the associated
	// Evaluation in this run.
	FailedCount int64 `json:"failedCount,omitempty"`
	// PassedCount: Output only. Number of passed results for the associated
	// Evaluation in this run.
	PassedCount int64 `json:"passedCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationRunProgress: The progress of the evaluation run.
type EvaluationRunProgress struct {
	// CompletedCount: Output only. Number of evaluation results that finished
	// successfully. (EvaluationResult.execution_state is COMPLETED).
	CompletedCount int64 `json:"completedCount,omitempty"`
	// ErrorCount: Output only. Number of evaluation results that failed to
	// execute. (EvaluationResult.execution_state is ERROR).
	ErrorCount int64 `json:"errorCount,omitempty"`
	// FailedCount: Output only. Number of completed evaluation results with an
	// outcome of FAIL. (EvaluationResult.execution_state is COMPLETED and
	// EvaluationResult.evaluation_status is FAIL).
	FailedCount int64 `json:"failedCount,omitempty"`
	// PassedCount: Output only. Number of completed evaluation results with an
	// outcome of PASS. (EvaluationResult.execution_state is COMPLETED and
	// EvaluationResult.evaluation_status is PASS).
	PassedCount int64 `json:"passedCount,omitempty"`
	// TotalCount: Output only. Total number of evaluation results in this run.
	TotalCount int64 `json:"totalCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CompletedCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CompletedCount") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationScenario: The config for a scenario
type EvaluationScenario struct {
	// EvaluationExpectations: Optional. The evaluation expectations to evaluate
	// the conversation produced by the simulation against. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationExpectations/{e
	// valuationExpectation}`
	EvaluationExpectations []string `json:"evaluationExpectations,omitempty"`
	// MaxTurns: Optional. The maximum number of turns to simulate. If not
	// specified, the simulation will continue until the task is complete.
	MaxTurns int64 `json:"maxTurns,omitempty"`
	// Rubrics: Required. The rubrics to score the scenario against.
	Rubrics []string `json:"rubrics,omitempty"`
	// ScenarioExpectations: Required. The ScenarioExpectations to evaluate the
	// conversation produced by the user simulation.
	ScenarioExpectations []*EvaluationScenarioExpectation `json:"scenarioExpectations,omitempty"`
	// Task: Required. The task to be targeted by the scenario.
	Task string `json:"task,omitempty"`
	// TaskCompletionBehavior: Optional. Deprecated. Use user_goal_behavior
	// instead.
	//
	// Possible values:
	//   "TASK_COMPLETION_BEHAVIOR_UNSPECIFIED" - Behavior unspecified. Will
	// default to TASK_SATISFIED.
	//   "TASK_SATISFIED" - The user task should be completed successfully.
	//   "TASK_REJECTED" - The user task should be rejected.
	TaskCompletionBehavior string `json:"taskCompletionBehavior,omitempty"`
	// UserFacts: Optional. The user facts to be used by the scenario.
	UserFacts []*EvaluationScenarioUserFact `json:"userFacts,omitempty"`
	// UserGoalBehavior: Optional. The expected behavior of the user goal.
	//
	// Possible values:
	//   "USER_GOAL_BEHAVIOR_UNSPECIFIED" - Behavior unspecified. Will default to
	// USER_GOAL_SATISFIED.
	//   "USER_GOAL_SATISFIED" - The user goal should be completed successfully.
	//   "USER_GOAL_REJECTED" - The user goal should be rejected.
	//   "USER_GOAL_IGNORED" - Ignore the user goal status.
	UserGoalBehavior string `json:"userGoalBehavior,omitempty"`
	// VariableOverrides: Optional. Variables / Session Parameters as context for
	// the session, keyed by variable names. Members of this struct will override
	// any default values set by the system. Note, these are different from user
	// facts, which are facts known to the user. Variables are parameters known to
	// the agent: i.e. MDN (phone number) passed by the telephony system.
	VariableOverrides googleapi.RawMessage `json:"variableOverrides,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationExpectations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationExpectations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationScenarioExpectation: The expectation to evaluate the conversation
// produced by the simulation.
type EvaluationScenarioExpectation struct {
	// AgentResponse: Optional. The agent response to be evaluated.
	AgentResponse *Message `json:"agentResponse,omitempty"`
	// ToolExpectation: Optional. The tool call and response pair to be evaluated.
	ToolExpectation *EvaluationScenarioExpectationToolExpectation `json:"toolExpectation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentResponse") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentResponse") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationScenarioExpectationToolExpectation: The tool call and response
// pair to be evaluated.
type EvaluationScenarioExpectationToolExpectation struct {
	// ExpectedToolCall: Required. The expected tool call, with the parameters of
	// interest specified. Any parameters not specified will be hallucinated by the
	// LLM.
	ExpectedToolCall *ToolCall `json:"expectedToolCall,omitempty"`
	// MockToolResponse: Required. The tool response to mock, with the parameters
	// of interest specified. Any parameters not specified will be hallucinated by
	// the LLM.
	MockToolResponse *ToolResponse `json:"mockToolResponse,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpectedToolCall") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpectedToolCall") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// EvaluationScenarioUserFact: Facts about the user as a key value pair.
type EvaluationScenarioUserFact struct {
	// Name: Required. The name of the user fact.
	Name string `json:"name,omitempty"`
	// Value: Required. The value of the user fact.
	Value string `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 EvaluationScenarioUserFact) MarshalJSON() ([]byte, error) {
	type NoMethod EvaluationScenarioUserFact
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// EvaluationSettings: Settings for evaluation.
type EvaluationSettings struct {
	// GoldenEvaluationToolCallBehaviour: Optional. Configures the default tool
	// call behaviour for golden evaluations.
	//
	// Possible values:
	//   "EVALUATION_TOOL_CALL_BEHAVIOUR_UNSPECIFIED" - Unspecified tool call
	// behavior. Will default to real tool calls.
	//   "REAL" - Use real tool calls.
	//   "FAKE" - Use fake tool calls.
	GoldenEvaluationToolCallBehaviour string `json:"goldenEvaluationToolCallBehaviour,omitempty"`
	// GoldenRunMethod: Optional. The default method used to run golden
	// evaluations. This will be used if no golden_run_method is specified in the
	// RunEvaluationRequest.
	//
	// Possible values:
	//   "GOLDEN_RUN_METHOD_UNSPECIFIED" - Run method is not specified.
	//   "STABLE" - Run the evaluation as stable replay, where each turn is a
	// unique session with the previous expected turns injected as context.
	//   "NAIVE" - Run the evaluation as naive replay, where the run is a single
	// session with no context injected.
	GoldenRunMethod string `json:"goldenRunMethod,omitempty"`
	// MetricsConfig: Optional. Configures the default metrics for evaluations.
	MetricsConfig *EvaluationMetricsConfig `json:"metricsConfig,omitempty"`
	// ScenarioConversationInitiator: Optional. Who starts the conversation in a
	// scenario evaluation.
	//
	// Possible values:
	//   "SCENARIO_CONVERSATION_INITIATOR_UNSPECIFIED" - Unspecified. Defaults to
	// USER.
	//   "USER" - The user starts the conversation.
	//   "AGENT" - The agent starts the conversation.
	ScenarioConversationInitiator string `json:"scenarioConversationInitiator,omitempty"`
	// ScenarioEvaluationToolCallBehaviour: Optional. Configures the default tool
	// call behaviour for scenario evaluations.
	//
	// Possible values:
	//   "EVALUATION_TOOL_CALL_BEHAVIOUR_UNSPECIFIED" - Unspecified tool call
	// behavior. Will default to real tool calls.
	//   "REAL" - Use real tool calls.
	//   "FAKE" - Use fake tool calls.
	ScenarioEvaluationToolCallBehaviour string `json:"scenarioEvaluationToolCallBehaviour,omitempty"`
	// ForceSendFields is a list of field names (e.g.
	// "GoldenEvaluationToolCallBehaviour") to unconditionally include in API
	// requests. By default, fields with empty or default values are omitted from
	// API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g.
	// "GoldenEvaluationToolCallBehaviour") to include in API requests with the
	// JSON null value. By default, fields with empty values are omitted from API
	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
	// more details.
	NullFields []string `json:"-"`
}

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

// EvaluationStep: A step defines a singular action to happen during the
// evaluation.
type EvaluationStep struct {
	// AgentTransfer: Optional. Transfer the conversation to a different agent.
	AgentTransfer *AgentTransfer `json:"agentTransfer,omitempty"`
	// Expectation: Optional. Executes an expectation on the current turn.
	Expectation *EvaluationGoldenExpectation `json:"expectation,omitempty"`
	// UserInput: Optional. User input for the conversation.
	UserInput *SessionInput `json:"userInput,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentTransfer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentTransfer") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// Example: An example represents a sample conversation between the user and
// the agent(s).
type Example struct {
	// CreateTime: Output only. Timestamp when the example was created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Optional. Human-readable description of the example.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. Display name of the example.
	DisplayName string `json:"displayName,omitempty"`
	// EntryAgent: Optional. The agent that initially handles the conversation. If
	// not specified, the example represents a conversation that is handled by the
	// root agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	EntryAgent string `json:"entryAgent,omitempty"`
	// Etag: Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// Invalid: Output only. The example may become invalid if referencing
	// resources are deleted. Invalid examples will not be used as few-shot
	// examples.
	Invalid bool `json:"invalid,omitempty"`
	// Messages: Optional. The collection of messages that make up the
	// conversation.
	Messages []*Message `json:"messages,omitempty"`
	// Name: Identifier. The unique identifier of the example. Format:
	// `projects/{project}/locations/{location}/apps/{app}/examples/{example}`
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. Timestamp when the example 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. "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 Example) MarshalJSON() ([]byte, error) {
	type NoMethod Example
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ExecuteToolRequest: Request message for ToolService.ExecuteTool.
type ExecuteToolRequest struct {
	// Args: Optional. The input parameters and values for the tool in JSON object
	// format.
	Args googleapi.RawMessage `json:"args,omitempty"`
	// Context: Optional. The ToolCallContext
	// (https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/python#environment
	// for details) to be passed to the Python tool.
	Context googleapi.RawMessage `json:"context,omitempty"`
	// MockConfig: Optional. Mock configuration for the tool execution. If this
	// field is set, tools that call other tools will be mocked based on the
	// provided patterns and responses.
	MockConfig *MockConfig `json:"mockConfig,omitempty"`
	// Tool: Optional. The name of the tool to execute. Format:
	// projects/{project}/locations/{location}/apps/{app}/tools/{tool}
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: Optional. The toolset tool to execute. Only one tool should
	// match the predicate from the toolset. Otherwise, an error will be returned.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`
	// Variables: Optional. The variables that are available for the tool
	// execution.
	Variables googleapi.RawMessage `json:"variables,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Args") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Args") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExecuteToolResponse: Response message for ToolService.ExecuteTool.
type ExecuteToolResponse struct {
	// Response: The tool execution result in JSON object format. Use "output" key
	// to specify tool response and "error" key to specify error details (if any).
	// If "output" and "error" keys are not specified, then whole "response" is
	// treated as tool execution result.
	Response googleapi.RawMessage `json:"response,omitempty"`
	// Tool: The name of the tool that got executed. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: The toolset tool that got executed.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`
	// Variables: The variable values at the end of the tool execution.
	Variables googleapi.RawMessage `json:"variables,omitempty"`

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

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

// ExperimentConfig: Experiment for the deployment.
type ExperimentConfig struct {
	// VersionRelease: Optional. Version release for the experiment.
	VersionRelease *ExperimentConfigVersionRelease `json:"versionRelease,omitempty"`
	// ForceSendFields is a list of field names (e.g. "VersionRelease") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "VersionRelease") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExperimentConfigVersionRelease: Version release for the experiment.
type ExperimentConfigVersionRelease struct {
	// State: Optional. State of the version release.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Unspecified state.
	//   "PENDING" - Pending state. Experiment is pending and not valid.
	//   "RUNNING" - Running state. Experiment is running and valid.
	//   "DONE" - Done state. Experiment is done and no longer valid.
	//   "EXPIRED" - Expired state. Experiment is expired and no longer valid.
	State string `json:"state,omitempty"`
	// TrafficAllocations: Optional. Traffic allocations for the version release.
	TrafficAllocations []*ExperimentConfigVersionReleaseTrafficAllocation `json:"trafficAllocations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "State") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "State") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExperimentConfigVersionReleaseTrafficAllocation: Traffic allocation for the
// version release.
type ExperimentConfigVersionReleaseTrafficAllocation struct {
	// AppVersion: Optional. App version of the traffic allocation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	AppVersion string `json:"appVersion,omitempty"`
	// Id: Optional. Id of the traffic allocation. Free format string, up to 128
	// characters.
	Id string `json:"id,omitempty"`
	// TrafficPercentage: Optional. Traffic percentage of the traffic allocation.
	// Must be between 0 and 100.
	TrafficPercentage int64 `json:"trafficPercentage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportAppRequest: Request message for AgentService.ExportApp.
type ExportAppRequest struct {
	// AppVersion: Optional. The resource name of the app version to export.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`.
	AppVersion string `json:"appVersion,omitempty"`
	// ExportFormat: Required. The format to export the app in.
	//
	// Possible values:
	//   "EXPORT_FORMAT_UNSPECIFIED" - The export format is unspecified.
	//   "JSON" - The export format is JSON.
	//   "YAML" - The export format is YAML.
	ExportFormat string `json:"exportFormat,omitempty"`
	// GcsUri: Optional. The Google Cloud Storage
	// (https://cloud.google.com/storage/docs/) URI to which to export the app. The
	// format of this URI must be `gs:///`. The exported app archive will be
	// written directly to the specified GCS object.
	GcsUri string `json:"gcsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppVersion") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersion") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportAppResponse: Response message for AgentService.ExportApp.
type ExportAppResponse struct {
	// AppContent: App folder compressed as a zip file.
	AppContent string `json:"appContent,omitempty"`
	// AppUri: The Google Cloud Storage (https://cloud.google.com/storage/docs/)
	// URI to which the app was exported.
	AppUri string `json:"appUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppContent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationResultsRequest: Request message for
// EvaluationService.ExportEvaluationResults.
type ExportEvaluationResultsRequest struct {
	// ExportOptions: Optional. The export options for the evaluation results.
	ExportOptions *ExportOptions `json:"exportOptions,omitempty"`
	// Names: Required. The resource names of the evaluation results to export.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExportOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExportOptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationResultsResponse: Response message for
// EvaluationService.ExportEvaluationResults.
type ExportEvaluationResultsResponse struct {
	// EvaluationResultsContent: The content of the exported Evaluation Results.
	// This will be populated if gcs_uri was not specified in the request.
	EvaluationResultsContent string `json:"evaluationResultsContent,omitempty"`
	// EvaluationResultsUri: The Google Cloud Storage URI folder where the exported
	// Evaluation Results were written. This will be populated if gcs_uri was
	// specified in the request.
	EvaluationResultsUri string `json:"evaluationResultsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationResultsContent")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationResultsContent") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationRunsRequest: Request message for
// EvaluationService.ExportEvaluationRuns.
type ExportEvaluationRunsRequest struct {
	// ExportOptions: Optional. The export options for the evaluation runs.
	ExportOptions *ExportOptions `json:"exportOptions,omitempty"`
	// Names: Required. The resource names of the evaluation runs to export.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExportOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExportOptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationRunsResponse: Response message for
// EvaluationService.ExportEvaluationRuns.
type ExportEvaluationRunsResponse struct {
	// EvaluationRunsContent: The content of the exported Evaluation Runs. This
	// will be populated if gcs_uri was not specified in the request.
	EvaluationRunsContent string `json:"evaluationRunsContent,omitempty"`
	// EvaluationRunsUri: The Google Cloud Storage URI folder where the exported
	// Evaluation Runs were written. This will be populated if gcs_uri was
	// specified in the request.
	EvaluationRunsUri string `json:"evaluationRunsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationRunsContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationRunsContent") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationsRequest: Request message for
// EvaluationService.ExportEvaluations.
type ExportEvaluationsRequest struct {
	// ExportOptions: Optional. The export options for the evaluations.
	ExportOptions *ExportOptions `json:"exportOptions,omitempty"`
	// IncludeEvaluationResults: Optional. Includes evaluation results in the
	// export. At least one of include_evaluation_results or include_evaluations
	// must be set.
	IncludeEvaluationResults bool `json:"includeEvaluationResults,omitempty"`
	// IncludeEvaluations: Optional. Includes evaluations in the export. At least
	// one of include_evaluation_results or include_evaluations must be set.
	IncludeEvaluations bool `json:"includeEvaluations,omitempty"`
	// Names: Required. The resource names of the evaluations to export.
	Names []string `json:"names,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExportOptions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExportOptions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportEvaluationsResponse: Response message for
// EvaluationService.ExportEvaluations.
type ExportEvaluationsResponse struct {
	// EvaluationsContent: The content of the exported Evaluations. This will be
	// populated if gcs_uri was not specified in the request.
	EvaluationsContent string `json:"evaluationsContent,omitempty"`
	// EvaluationsUri: The Google Cloud Storage URI folder where the exported
	// evaluations were written. This will be populated if gcs_uri was specified in
	// the request.
	EvaluationsUri string `json:"evaluationsUri,omitempty"`
	// FailedEvaluations: Output only. A map of evaluation resource names that
	// could not be exported, to the reason why they failed.
	FailedEvaluations map[string]string `json:"failedEvaluations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationsContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationsContent") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExportOptions: Options for exporting CES evaluation resources.
type ExportOptions struct {
	// ExportFormat: Optional. The format to export the evaluation results in.
	// Defaults to JSON if not specified.
	//
	// Possible values:
	//   "EXPORT_FORMAT_UNSPECIFIED" - Unspecified format.
	//   "JSON" - JSON format.
	//   "YAML" - YAML format.
	ExportFormat string `json:"exportFormat,omitempty"`
	// GcsUri: Optional. The Google Cloud Storage URI to write the exported
	// Evaluation Results to.
	GcsUri string `json:"gcsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExportFormat") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExportFormat") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ExpressionCondition: Expression condition based on session state.
type ExpressionCondition struct {
	// Expression: Required. The string representation of cloud.api.Expression
	// condition.
	Expression string `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 ExpressionCondition) MarshalJSON() ([]byte, error) {
	type NoMethod ExpressionCondition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FileContext: Files to be used as context. Files can be provided as raw
// bytes.
type FileContext struct {
	// FileBytes: Optional. File provided as raw bytes.
	FileBytes *FileContextFileBytes `json:"fileBytes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FileBytes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FileBytes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// FileContextFileBytes: File provided as raw bytes.
type FileContextFileBytes struct {
	// Data: Required. Raw bytes of the file.
	Data string `json:"data,omitempty"`
	// FileName: Required. The name of the file provided as raw bytes.
	FileName string `json:"fileName,omitempty"`
	// MimeType: Required. The IANA standard MIME type of the source 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 FileContextFileBytes) MarshalJSON() ([]byte, error) {
	type NoMethod FileContextFileBytes
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// FileSearchTool: The file search tool allows the agent to search across the
// files uploaded by the app/agent developer. It has presets to give relatively
// good quality search over the uploaded files and summarization of the
// retrieved results.
type FileSearchTool struct {
	// CorpusType: Optional. The type of the corpus. Default is FULLY_MANAGED.
	//
	// Possible values:
	//   "CORPUS_TYPE_UNSPECIFIED" - Unspecified corpus type.
	//   "USER_OWNED" - The corpus is created and owned by the user.
	//   "FULLY_MANAGED" - The corpus is created by the agent.
	CorpusType string `json:"corpusType,omitempty"`
	// Description: Optional. The tool description.
	Description string `json:"description,omitempty"`
	// FileCorpus: Optional. The corpus where files are stored. Format:
	// projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
	FileCorpus string `json:"fileCorpus,omitempty"`
	// Name: Required. The tool name.
	Name string `json:"name,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 FileSearchTool) MarshalJSON() ([]byte, error) {
	type NoMethod FileSearchTool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceRequest: Request message for
// AgentService.GenerateAppResource.
type GenerateAppResourceRequest struct {
	// Agent: The agent resource to be used by the LLM assistant, can be empty for
	// generating a new agent.
	Agent *Agent `json:"agent,omitempty"`
	// AppGenerationConfig: Optional. The configuration to be used to generate the
	// agents and tools.
	AppGenerationConfig *GenerateAppResourceRequestAppGenerationConfig `json:"appGenerationConfig,omitempty"`
	// EvaluationGenerationConfig: Optional. The configuration to be used to
	// generate the evaluations.
	EvaluationGenerationConfig *GenerateAppResourceRequestEvaluationGenerationConfig `json:"evaluationGenerationConfig,omitempty"`
	// EvaluationPersonasGenerationConfig: Optional. The configuration to be used
	// to generate the evaluation personas.
	EvaluationPersonasGenerationConfig *GenerateAppResourceRequestEvaluationPersonasGenerationConfig `json:"evaluationPersonasGenerationConfig,omitempty"`
	// HillClimbingFixConfig: Optional. The configuration to be used for hill
	// climbing fixes.
	HillClimbingFixConfig *GenerateAppResourceRequestHillClimbingFixConfig `json:"hillClimbingFixConfig,omitempty"`
	// QualityReportGenerationConfig: Optional. The configuration to be used for
	// quality report generation.
	QualityReportGenerationConfig *GenerateAppResourceRequestQualityReportGenerationConfig `json:"qualityReportGenerationConfig,omitempty"`
	// RefineInstructions: Optional. List of refine instructions to be used to
	// refine the resource.
	RefineInstructions []*GenerateAppResourceRequestRefineInstructions `json:"refineInstructions,omitempty"`
	// Tool: The tool resource to be used by the LLM assistant, can be empty for
	// generating a new tool.
	Tool *Tool `json:"tool,omitempty"`
	// ToolGenerationConfig: Optional. The configuration to be used to generate the
	// tool.
	ToolGenerationConfig *GenerateAppResourceRequestToolGenerationConfig `json:"toolGenerationConfig,omitempty"`
	// Toolset: The toolset resource to be used by the LLM assistant, can be empty
	// for generating a new toolset.
	Toolset *Toolset `json:"toolset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceRequestAppGenerationConfig: The configuration to be used
// to generate the app.
type GenerateAppResourceRequestAppGenerationConfig struct {
	// Context: Optional. The context which describes the requirements of the
	// agents & tools to be generated.
	Context string `json:"context,omitempty"`
	// DatasetId: Optional. The insights dataset to be used to fetch conversation
	// data for generating the agents & tools. Format:
	// `projects/{project}/locations/{location}/datasets/{dataset}`.
	DatasetId string `json:"datasetId,omitempty"`
	// FileContexts: Optional. The files to be used as context.
	FileContexts []*FileContext `json:"fileContexts,omitempty"`
	// GcsLocation: Optional. The Cloud Storage location to store the generated
	// question answer data to be used by the Datastore tool. This data is
	// generated only when using conversation data as an input source. The location
	// must be in the same project as the app. Format: `gs://...`.
	GcsLocation string `json:"gcsLocation,omitempty"`
	// GenerateEvaluations: Optional. Whether to generate the evaluations for the
	// app. If true, the provided context will be used to generate the evaluations
	// data.
	GenerateEvaluations bool `json:"generateEvaluations,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 GenerateAppResourceRequestAppGenerationConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GenerateAppResourceRequestAppGenerationConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceRequestEvaluationGenerationConfig: The configuration to
// be used to generate the evaluations.
type GenerateAppResourceRequestEvaluationGenerationConfig struct {
	// DatasetId: Optional. The insights dataset to be used to fetch conversation
	// data for generating the evaluations. Format:
	// `projects/{project}/locations/{location}/datasets/{dataset}`.
	DatasetId string `json:"datasetId,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 GenerateAppResourceRequestEvaluationGenerationConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GenerateAppResourceRequestEvaluationGenerationConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceRequestEvaluationPersonasGenerationConfig: The
// configuration to be used to generate the evaluation personas.
type GenerateAppResourceRequestEvaluationPersonasGenerationConfig struct {
}

// GenerateAppResourceRequestHillClimbingFixConfig: The configuration to be
// used for hill climbing fixes.
type GenerateAppResourceRequestHillClimbingFixConfig struct {
	// QualityReport: Required. The quality report used to inform the instruction
	// following fix.
	QualityReport *QualityReport `json:"qualityReport,omitempty"`
	// ForceSendFields is a list of field names (e.g. "QualityReport") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "QualityReport") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceRequestQualityReportGenerationConfig: The configuration
// to be used for quality report generation.
type GenerateAppResourceRequestQualityReportGenerationConfig struct {
	// EvaluationRun: Required. The evaluation run used to inform quality report
	// analysis.
	EvaluationRun string `json:"evaluationRun,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationRun") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationRun") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceRequestRefineInstructions: The instructions to be used to
// refine a part of the resource. The part of the resource can be specified
// with a start index, end index and a field mask. For example, if you want to
// refine a part of the agent instructions you can specify the index of the
// first character of the instructions, the index of the last character of the
// instructions and the field mask as "instructions".
type GenerateAppResourceRequestRefineInstructions struct {
	// EndIndex: Required. The last character (inclusive) of the text to refine.
	EndIndex int64 `json:"endIndex,omitempty,string"`
	// FieldMask: Required. The field of the resource being refined. Only one field
	// is allowed per RefineInstructions. If refining agent instructions, the field
	// mask should be "instructions".
	FieldMask string `json:"fieldMask,omitempty"`
	// Instructions: Required. The instructions to refine the resource.
	Instructions string `json:"instructions,omitempty"`
	// StartIndex: Required. The first character (inclusive) of the text to refine.
	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 GenerateAppResourceRequestRefineInstructions) MarshalJSON() ([]byte, error) {
	type NoMethod GenerateAppResourceRequestRefineInstructions
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceRequestToolGenerationConfig: The configuration to be used
// to generate a tool.
type GenerateAppResourceRequestToolGenerationConfig struct {
	// Context: Optional. The context which describes the tool to be generated.
	// This can be empty if the tool request & response are provided.
	Context string `json:"context,omitempty"`
	// FileContexts: Optional. The files to be used as context.
	FileContexts []*FileContext `json:"fileContexts,omitempty"`
	// OpenApiToolsetGenerationConfig: Optional. The configuration to be used to
	// generate an Open API schema.
	OpenApiToolsetGenerationConfig *GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfig `json:"openApiToolsetGenerationConfig,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 GenerateAppResourceRequestToolGenerationConfig) MarshalJSON() ([]byte, error) {
	type NoMethod GenerateAppResourceRequestToolGenerationConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfig:
//
//	The configuration to be used to generate an Open API schema.
type GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfig struct {
	// OperationGenerationConfigs: Required. The list of operations to be added to
	// the Open API schema.
	OperationGenerationConfigs []*GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfigOperationGenerationConfig `json:"operationGenerationConfigs,omitempty"`
	// Uri: Required. The base uri of the tool.
	Uri string `json:"uri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "OperationGenerationConfigs")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "OperationGenerationConfigs") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfigO
// perationGenerationConfig: The configuration to be used to generate an
// operation in the Open API schema.
type GenerateAppResourceRequestToolGenerationConfigOpenApiToolsetGenerationConfigOperationGenerationConfig struct {
	// Method: Required. The uri of the tool. This should include query and path
	// parameters if any.
	Method string `json:"method,omitempty"`
	// Path: Required. The path of the tool to be appended to the base uri. This
	// should include query and path parameters if any.
	Path string `json:"path,omitempty"`
	// RequestJson: Required. A sample request to the tool in JSON format. Skip if
	// the tool does not support request body.
	RequestJson string `json:"requestJson,omitempty"`
	// ResponseJson: Required. A sample response from the tool in JSON format.
	ResponseJson string `json:"responseJson,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Method") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Method") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceResponse: Response message for
// AgentService.GenerateAppResource.
type GenerateAppResourceResponse struct {
	// Agent: Agent generated by the LLM assistant.
	Agent *Agent `json:"agent,omitempty"`
	// AppResources: The app resources generated by the LLM assistant.
	AppResources *GenerateAppResourceResponseAppResources `json:"appResources,omitempty"`
	// AppSnapshot: App snapshot generated by the LLM assistant. This snapshot
	// contains the app, agents & tools generated by the LLM assistant.
	AppSnapshot *AppSnapshot `json:"appSnapshot,omitempty"`
	// Evaluations: Evaluations generated by the LLM assistant.
	Evaluations *GenerateAppResourceResponseEvaluations `json:"evaluations,omitempty"`
	// GenerateResultInfo: Additional information about the generated result.
	GenerateResultInfo *GenerateAppResourceResponseGenerateResultInfo `json:"generateResultInfo,omitempty"`
	// QualityReport: The quality report generated by the LLM assistant.
	QualityReport *QualityReport `json:"qualityReport,omitempty"`
	// Tools: The list of tools generated by the LLM assistant.
	Tools *GenerateAppResourceResponseTools `json:"tools,omitempty"`
	// Toolset: Toolset generated by the LLM assistant. Supports Open API toolset
	// schema generation.
	Toolset *Toolset `json:"toolset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceResponseAppResources: The list of app resources generated
// by the LLM assistant.
type GenerateAppResourceResponseAppResources struct {
	// AppSnapshot: The app snapshot generated by the LLM assistant. This snapshot
	// contains the app, agents & tools generated by the LLM assistant.
	AppSnapshot *AppSnapshot `json:"appSnapshot,omitempty"`
	// Evaluations: The list of evaluations generated by the LLM assistant.
	Evaluations []*Evaluation `json:"evaluations,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppSnapshot") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppSnapshot") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateAppResourceResponseEvaluations: The list of evaluations generated by
// the LLM assistant.
type GenerateAppResourceResponseEvaluations struct {
	// Evaluations: The list of generated evaluations.
	Evaluations []*Evaluation `json:"evaluations,omitempty"`
	// 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 GenerateAppResourceResponseEvaluations) MarshalJSON() ([]byte, error) {
	type NoMethod GenerateAppResourceResponseEvaluations
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// GenerateAppResourceResponseGenerateResultInfo: This provides additional
// information about the generated result.
type GenerateAppResourceResponseGenerateResultInfo struct {
	// Explanation: An explanation of the changes in the generated resource.
	Explanation string `json:"explanation,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Explanation") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Explanation") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// GenerateChatTokenRequest: Request message for
// WidgetService.GenerateChatToken.
type GenerateChatTokenRequest struct {
	// Deployment: Required. The deployment of the app to use for the session.
	// Format:
	// projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}
	Deployment string `json:"deployment,omitempty"`
	// LiveHandoffEnabled: Optional. Indicates if live handoff is enabled for the
	// session.
	LiveHandoffEnabled bool `json:"liveHandoffEnabled,omitempty"`
	// RecaptchaToken: Optional. The reCAPTCHA token generated by the client-side
	// chat widget.
	RecaptchaToken string `json:"recaptchaToken,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Deployment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Deployment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GenerateChatTokenResponse: Response message for
// WidgetService.GenerateChatToken.
type GenerateChatTokenResponse struct {
	// ChatToken: The session scoped token for chat widget to authenticate with
	// Session APIs.
	ChatToken string `json:"chatToken,omitempty"`
	// ExpireTime: The time at which the chat token expires.
	ExpireTime string `json:"expireTime,omitempty"`

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

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

// GenerateEvaluationOperationMetadata: Operation metadata for
// EvaluationService.GenerateEvaluation.
type GenerateEvaluationOperationMetadata struct {
}

// GenerateEvaluationRequest: Request message for
// EvaluationService.GenerateEvaluation.
type GenerateEvaluationRequest struct {
	// Source: Optional. Indicate the source of the conversation. If not set, all
	// sources will be searched.
	//
	// Possible values:
	//   "SOURCE_UNSPECIFIED" - Unspecified source.
	//   "LIVE" - The conversation is from the live end user.
	//   "SIMULATOR" - The conversation is from the simulator.
	//   "EVAL" - The conversation is from the evaluation.
	//   "AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
	// agent in a separate session, which is persisted for testing and debugging
	// purposes.
	Source string `json:"source,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Source") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Source") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleSearchSuggestions: Search suggestions from Google Search Tool.
type GoogleSearchSuggestions struct {
	// Htmls: Compliant HTML and CSS styling for search suggestions. The provided
	// HTML and CSS automatically adapts to your device settings, displaying in
	// either light or dark mode indicated by `@media(prefers-color-scheme)`.
	Htmls []string `json:"htmls,omitempty"`
	// WebSearchQueries: List of queries used to perform the google search along
	// with the search result URIs forming the search suggestions.
	WebSearchQueries []*WebSearchQuery `json:"webSearchQueries,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Htmls") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Htmls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleSearchTool: Represents a tool to perform Google web searches for
// grounding. See
// https://cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool#google-search.
type GoogleSearchTool struct {
	// ContextUrls: Optional. Content will be fetched directly from these URLs for
	// context and grounding. Example: "https://example.com/path.html". A maximum
	// of 20 URLs are allowed.
	ContextUrls []string `json:"contextUrls,omitempty"`
	// Description: Optional. Description of the tool's purpose.
	Description string `json:"description,omitempty"`
	// ExcludeDomains: Optional. List of domains to be excluded from the search
	// results. Example: "example.com". A maximum of 2000 domains can be excluded.
	ExcludeDomains []string `json:"excludeDomains,omitempty"`
	// Name: Required. The name of the tool.
	Name string `json:"name,omitempty"`
	// PreferredDomains: Optional. Specifies domains to restrict search results to.
	// Example: "example.com", "another.site". A maximum of 20 domains can be
	// specified.
	PreferredDomains []string `json:"preferredDomains,omitempty"`
	// PromptConfig: Optional. Prompt instructions passed to planner on how the
	// search results should be processed for text and voice.
	PromptConfig *GoogleSearchToolPromptConfig `json:"promptConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContextUrls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContextUrls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GoogleSearchToolPromptConfig: Prompt settings used by the model when
// processing or summarizing the google search results.
type GoogleSearchToolPromptConfig struct {
	// TextPrompt: Optional. Defines the prompt used for the system instructions
	// when interacting with the agent in chat conversations. If not set, default
	// prompt will be used.
	TextPrompt string `json:"textPrompt,omitempty"`
	// VoicePrompt: Optional. Defines the prompt used for the system instructions
	// when interacting with the agent in voice conversations. If not set, default
	// prompt will be used.
	VoicePrompt string `json:"voicePrompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "TextPrompt") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "TextPrompt") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Guardrail: Guardrail contains a list of checks and balances to keep the
// agents safe and secure.
type Guardrail struct {
	// Action: Optional. Action to take when the guardrail is triggered.
	Action *TriggerAction `json:"action,omitempty"`
	// CodeCallback: Optional. Guardrail that potentially blocks the conversation
	// based on the result of the callback execution.
	CodeCallback *GuardrailCodeCallback `json:"codeCallback,omitempty"`
	// ContentFilter: Optional. Guardrail that bans certain content from being used
	// in the conversation.
	ContentFilter *GuardrailContentFilter `json:"contentFilter,omitempty"`
	// CreateTime: Output only. Timestamp when the guardrail was created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Optional. Description of the guardrail.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. Display name of the guardrail.
	DisplayName string `json:"displayName,omitempty"`
	// Enabled: Optional. Whether the guardrail is enabled.
	Enabled bool `json:"enabled,omitempty"`
	// Etag: Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// LlmPolicy: Optional. Guardrail that blocks the conversation if the LLM
	// response is considered violating the policy based on the LLM classification.
	LlmPolicy *GuardrailLlmPolicy `json:"llmPolicy,omitempty"`
	// LlmPromptSecurity: Optional. Guardrail that blocks the conversation if the
	// prompt is considered unsafe based on the LLM classification.
	LlmPromptSecurity *GuardrailLlmPromptSecurity `json:"llmPromptSecurity,omitempty"`
	// ModelSafety: Optional. Guardrail that blocks the conversation if the LLM
	// response is considered unsafe based on the model safety settings.
	ModelSafety *GuardrailModelSafety `json:"modelSafety,omitempty"`
	// Name: Identifier. The unique identifier of the guardrail. Format:
	// `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. Timestamp when the guardrail 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. "Action") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Action") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailCodeCallback: Guardrail that blocks the conversation based on the
// code callbacks provided.
type GuardrailCodeCallback struct {
	// AfterAgentCallback: Optional. The callback to execute after the agent is
	// called. Each callback function is expected to return a structure (e.g., a
	// dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'.
	// - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt
	// further processing.
	AfterAgentCallback *Callback `json:"afterAgentCallback,omitempty"`
	// AfterModelCallback: Optional. The callback to execute after the model is
	// called. If there are multiple calls to the model, the callback will be
	// executed multiple times. Each callback function is expected to return a
	// structure (e.g., a dict or object) containing at least: - 'decision': Either
	// 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER'
	// decision may halt further processing.
	AfterModelCallback *Callback `json:"afterModelCallback,omitempty"`
	// BeforeAgentCallback: Optional. The callback to execute before the agent is
	// called. Each callback function is expected to return a structure (e.g., a
	// dict or object) containing at least: - 'decision': Either 'OK' or 'TRIGGER'.
	// - 'reason': A string explaining the decision. A 'TRIGGER' decision may halt
	// further processing.
	BeforeAgentCallback *Callback `json:"beforeAgentCallback,omitempty"`
	// BeforeModelCallback: Optional. The callback to execute before the model is
	// called. If there are multiple calls to the model, the callback will be
	// executed multiple times. Each callback function is expected to return a
	// structure (e.g., a dict or object) containing at least: - 'decision': Either
	// 'OK' or 'TRIGGER'. - 'reason': A string explaining the decision. A 'TRIGGER'
	// decision may halt further processing.
	BeforeModelCallback *Callback `json:"beforeModelCallback,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AfterAgentCallback") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AfterAgentCallback") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailContentFilter: Guardrail that bans certain content from being used
// in the conversation.
type GuardrailContentFilter struct {
	// BannedContents: Optional. List of banned phrases. Applies to both user
	// inputs and agent responses.
	BannedContents []string `json:"bannedContents,omitempty"`
	// BannedContentsInAgentResponse: Optional. List of banned phrases. Applies
	// only to agent responses.
	BannedContentsInAgentResponse []string `json:"bannedContentsInAgentResponse,omitempty"`
	// BannedContentsInUserInput: Optional. List of banned phrases. Applies only to
	// user inputs.
	BannedContentsInUserInput []string `json:"bannedContentsInUserInput,omitempty"`
	// DisregardDiacritics: Optional. If true, diacritics are ignored during
	// matching.
	DisregardDiacritics bool `json:"disregardDiacritics,omitempty"`
	// MatchType: Required. Match type for the content filter.
	//
	// Possible values:
	//   "MATCH_TYPE_UNSPECIFIED" - Match type is not specified.
	//   "SIMPLE_STRING_MATCH" - Content is matched for substrings character by
	// character.
	//   "WORD_BOUNDARY_STRING_MATCH" - Content only matches if the pattern found
	// in the text is surrounded by word delimiters. Banned phrases can also
	// contain word delimiters.
	//   "REGEXP_MATCH" - Content is matched using regular expression syntax.
	MatchType string `json:"matchType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BannedContents") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BannedContents") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailLlmPolicy: Guardrail that blocks the conversation if the LLM
// response is considered violating the policy based on the LLM classification.
type GuardrailLlmPolicy struct {
	// AllowShortUtterance: Optional. By default, the LLM policy check is bypassed
	// for short utterances. Enabling this setting applies the policy check to all
	// utterances, including those that would normally be skipped.
	AllowShortUtterance bool `json:"allowShortUtterance,omitempty"`
	// FailOpen: Optional. If an error occurs during the policy check, fail open
	// and do not trigger the guardrail.
	FailOpen bool `json:"failOpen,omitempty"`
	// MaxConversationMessages: Optional. When checking this policy, consider the
	// last 'n' messages in the conversation. When not set a default value of 10
	// will be used.
	MaxConversationMessages int64 `json:"maxConversationMessages,omitempty"`
	// ModelSettings: Optional. Model settings.
	ModelSettings *ModelSettings `json:"modelSettings,omitempty"`
	// PolicyScope: Required. Defines when to apply the policy check during the
	// conversation. If set to `POLICY_SCOPE_UNSPECIFIED`, the policy will be
	// applied to the user input. When applying the policy to the agent response,
	// additional latency will be introduced before the agent can respond.
	//
	// Possible values:
	//   "POLICY_SCOPE_UNSPECIFIED" - Policy scope is not specified.
	//   "USER_QUERY" - Policy check is triggered on user input.
	//   "AGENT_RESPONSE" - Policy check is triggered on agent response. Applying
	// this policy scope will introduce additional latency before the agent can
	// respond.
	//   "USER_QUERY_AND_AGENT_RESPONSE" - Policy check is triggered on both user
	// input and agent response. Applying this policy scope will introduce
	// additional latency before the agent can respond.
	PolicyScope string `json:"policyScope,omitempty"`
	// Prompt: Required. Policy prompt.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowShortUtterance") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowShortUtterance") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailLlmPromptSecurity: Guardrail that blocks the conversation if the
// input is considered unsafe based on the LLM classification.
type GuardrailLlmPromptSecurity struct {
	// CustomPolicy: Optional. Use a user-defined LlmPolicy to configure the
	// security guardrail.
	CustomPolicy *GuardrailLlmPolicy `json:"customPolicy,omitempty"`
	// DefaultSettings: Optional. Use the system's predefined default security
	// settings. To select this mode, include an empty 'default_settings' message
	// in the request. The 'default_prompt_template' field within will be populated
	// by the server in the response.
	DefaultSettings *GuardrailLlmPromptSecurityDefaultSecuritySettings `json:"defaultSettings,omitempty"`
	// FailOpen: Optional. Determines the behavior when the guardrail encounters an
	// LLM error. - If true: the guardrail is bypassed. - If false (default): the
	// guardrail triggers/blocks. Note: If a custom policy is provided, this field
	// is ignored in favor of the policy's 'fail_open' configuration.
	FailOpen bool `json:"failOpen,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CustomPolicy") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CustomPolicy") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailLlmPromptSecurityDefaultSecuritySettings: Configuration for default
// system security settings.
type GuardrailLlmPromptSecurityDefaultSecuritySettings struct {
	// DefaultPromptTemplate: Output only. The default prompt template used by the
	// system. This field is for display purposes to show the user what prompt the
	// system uses by default. It is OUTPUT_ONLY.
	DefaultPromptTemplate string `json:"defaultPromptTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultPromptTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultPromptTemplate") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailModelSafety: Model safety settings overrides. When this is set, it
// will override the default settings and trigger the guardrail if the response
// is considered unsafe.
type GuardrailModelSafety struct {
	// SafetySettings: Required. List of safety settings.
	SafetySettings []*GuardrailModelSafetySafetySetting `json:"safetySettings,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SafetySettings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SafetySettings") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// GuardrailModelSafetySafetySetting: Safety setting.
type GuardrailModelSafetySafetySetting struct {
	// Category: Required. The 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.
	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 GuardrailModelSafetySafetySetting) MarshalJSON() ([]byte, error) {
	type NoMethod GuardrailModelSafetySafetySetting
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Image: Represents an image input or output in the conversation.
type Image struct {
	// Data: Required. Raw bytes of the image.
	Data string `json:"data,omitempty"`
	// MimeType: Required. The IANA standard MIME type of the source data.
	// Supported image types includes: * image/png * image/jpeg * image/webp
	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 Image) MarshalJSON() ([]byte, error) {
	type NoMethod Image
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImportAppRequest: Request message for AgentService.ImportApp.
type ImportAppRequest struct {
	// AppContent: Raw bytes representing the compressed zip file with the app
	// folder structure.
	AppContent string `json:"appContent,omitempty"`
	// AppId: Optional. The ID to use for the imported app. * If not specified, a
	// unique ID will be automatically assigned for the app. * Otherwise, the
	// imported app will use this ID as the final component of its resource name.
	// If an app with the same ID already exists at the specified location in the
	// project, the content of the existing app will be replaced.
	AppId string `json:"appId,omitempty"`
	// DisplayName: Optional. The display name of the app to import. * If the app
	// is created on import, and the display name is specified, the imported app
	// will use this display name. If a conflict is detected with an existing app,
	// a timestamp will be appended to the display name to make it unique. * If the
	// app is a reimport, this field should not be set. Providing a display name
	// during reimport will result in an INVALID_ARGUMENT error.
	DisplayName string `json:"displayName,omitempty"`
	// GcsUri: The Google Cloud Storage (https://cloud.google.com/storage/docs/)
	// URI from which to import app. The format of this URI must be `gs:///`.
	GcsUri string `json:"gcsUri,omitempty"`
	// IgnoreAppLock: Optional. Flag for overriding the app lock during import. If
	// set to true, the import process will ignore the app lock.
	IgnoreAppLock bool `json:"ignoreAppLock,omitempty"`
	// ImportOptions: Optional. Options governing the import process for the app.
	ImportOptions *ImportAppRequestImportOptions `json:"importOptions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AppContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppContent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ImportAppRequestImportOptions: Configuration options for the app import
// process. These options control how the import behaves, particularly when
// conflicts arise with existing app data.
type ImportAppRequestImportOptions struct {
	// ConflictResolutionStrategy: Optional. The strategy to use when resolving
	// conflicts during import.
	//
	// Possible values:
	//   "CONFLICT_RESOLUTION_STRATEGY_UNSPECIFIED" - The conflict resolution
	// strategy is unspecified.
	//   "REPLACE" - Replace existing data with imported data. If an app with the
	// same `app_id` already exists, its content will be updated based on the
	// imported app. - Resources (App, Agents, Tools, Examples, Guardrails,
	// Toolsets) in the imported app that have the same display name as existing
	// resources will overwrite the existing ones. - Imported resources with new
	// display names will be created. - Existing resources that do not have a
	// matching display name in the imported app will remain untouched.
	//   "OVERWRITE" - Overwrite existing data with imported data. If an app with
	// the same `app_id` already exists, its content will be overwritten with the
	// imported app. - Existing resources (Agents, Tools, Examples, Guardrails,
	// Toolsets) in the app will be deleted. - Imported resources will be created
	// as new resources.
	ConflictResolutionStrategy string `json:"conflictResolutionStrategy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConflictResolutionStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConflictResolutionStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ImportAppResponse: Response message for AgentService.ImportApp.
type ImportAppResponse struct {
	// Name: The resource name of the app that was imported.
	Name string `json:"name,omitempty"`
	// Warnings: Warning messages generated during the import process. If errors
	// occur for specific resources, they will not be included in the imported app
	// and the error will be mentioned here.
	Warnings []string `json:"warnings,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 ImportAppResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ImportAppResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImportEvaluationsOperationMetadata: Represents the metadata of the
// long-running operation for EvaluationService.ImportEvaluations.
type ImportEvaluationsOperationMetadata struct {
	// CreateTime: Output only. The time the operation was created.
	CreateTime string `json:"createTime,omitempty"`
	// EndTime: Output only. The time the operation finished running.
	EndTime string `json:"endTime,omitempty"`
	// StatusMessage: Output only. Human-readable status of the operation, if any.
	StatusMessage string `json:"statusMessage,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 ImportEvaluationsOperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod ImportEvaluationsOperationMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ImportEvaluationsRequest: Request message for
// EvaluationService.ImportEvaluations.
type ImportEvaluationsRequest struct {
	// ConversationList: The conversations to import the evaluations from.
	ConversationList *ImportEvaluationsRequestConversationList `json:"conversationList,omitempty"`
	// CsvContent: Raw bytes representing the csv file with the evaluations
	// structure.
	CsvContent string `json:"csvContent,omitempty"`
	// GcsUri: The Google Cloud Storage (https://cloud.google.com/storage/docs/)
	// URI from which to import evaluations. The format of this URI must be
	// `gs:///`.
	GcsUri string `json:"gcsUri,omitempty"`
	// ImportOptions: Optional. Options governing the import process for the
	// evaluations.
	ImportOptions *ImportEvaluationsRequestImportOptions `json:"importOptions,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConversationList") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConversationList") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

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

// ImportEvaluationsRequestImportOptions: Configuration options for the
// evaluation import process. These options control how the import behaves,
// particularly when conflicts arise with existing evaluations data.
type ImportEvaluationsRequestImportOptions struct {
	// ConflictResolutionStrategy: Optional. The strategy to use when resolving
	// conflicts during import.
	//
	// Possible values:
	//   "CONFLICT_RESOLUTION_STRATEGY_UNSPECIFIED" - The conflict resolution
	// strategy is unspecified.
	//   "OVERWRITE" - Overwrite the existing evaluation with the new one.
	//   "SKIP" - Keep the existing evaluation and skip the new one.
	//   "DUPLICATE" - Keep the existing evaluation and duplicate the new one as a
	// new evaluation.
	ConflictResolutionStrategy string `json:"conflictResolutionStrategy,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ConflictResolutionStrategy")
	// to unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConflictResolutionStrategy") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ImportEvaluationsResponse: Response message for
// EvaluationService.ImportEvaluations.
type ImportEvaluationsResponse struct {
	// ErrorMessages: Optional. A list of error messages associated with
	// evaluations that failed to be imported.
	ErrorMessages []string `json:"errorMessages,omitempty"`
	// EvaluationResultImportFailureCount: The number of evaluation results that
	// either failed to import entirely or completed import with one or more
	// errors.
	EvaluationResultImportFailureCount int64 `json:"evaluationResultImportFailureCount,omitempty"`
	// EvaluationResults: The list of evaluation results that were imported into
	// the app.
	EvaluationResults []*EvaluationResult `json:"evaluationResults,omitempty"`
	// EvaluationRunImportFailureCount: The number of evaluation runs that either
	// failed to import entirely or completed import with one or more errors.
	EvaluationRunImportFailureCount int64 `json:"evaluationRunImportFailureCount,omitempty"`
	// EvaluationRuns: The list of evaluation runs that were imported into the app.
	EvaluationRuns []*EvaluationRun `json:"evaluationRuns,omitempty"`
	// Evaluations: The list of evaluations that were imported into the app.
	Evaluations []*Evaluation `json:"evaluations,omitempty"`
	// ImportFailureCount: The number of evaluations that either failed to import
	// entirely or completed import with one or more errors.
	ImportFailureCount int64 `json:"importFailureCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ErrorMessages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ErrorMessages") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// InputAudioConfig: InputAudioConfig configures how the CES agent should
// interpret the incoming audio data.
type InputAudioConfig struct {
	// AudioEncoding: Required. The encoding of the input audio data.
	//
	// Possible values:
	//   "AUDIO_ENCODING_UNSPECIFIED" - Unspecified audio encoding.
	//   "LINEAR16" - 16-bit linear PCM audio encoding.
	//   "MULAW" - 8-bit samples that compand 14-bit audio samples using G.711
	// PCMU/mu-law.
	//   "ALAW" - 8-bit samples that compand 14-bit audio samples using G.711
	// PCMU/A-law.
	AudioEncoding string `json:"audioEncoding,omitempty"`
	// NoiseSuppressionLevel: Optional. Whether to enable noise suppression on the
	// input audio. Available values are "low", "moderate", "high", "very_high".
	NoiseSuppressionLevel string `json:"noiseSuppressionLevel,omitempty"`
	// SampleRateHertz: Required. The sample rate (in Hertz) of the input audio
	// data.
	SampleRateHertz int64 `json:"sampleRateHertz,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioEncoding") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioEncoding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LanguageSettings: Language settings of the app.
type LanguageSettings struct {
	// DefaultLanguageCode: Optional. The default language code of the app.
	DefaultLanguageCode string `json:"defaultLanguageCode,omitempty"`
	// EnableMultilingualSupport: Optional. Enables multilingual support. If true,
	// agents in the app will use pre-built instructions to improve handling of
	// multilingual input.
	EnableMultilingualSupport bool `json:"enableMultilingualSupport,omitempty"`
	// FallbackAction: Optional. Deprecated: This feature is no longer supported.
	// Use `enable_multilingual_support` instead to improve handling of
	// multilingual input. The action to perform when an agent receives input in an
	// unsupported language. This can be a predefined action or a custom tool call.
	// Valid values are: - A tool's full resource name, which triggers a specific
	// tool execution. - A predefined system action, such as "escalate" or "exit",
	// which triggers an EndSession signal with corresponding metadata to terminate
	// the conversation.
	FallbackAction string `json:"fallbackAction,omitempty"`
	// SupportedLanguageCodes: Optional. List of languages codes supported by the
	// app, in addition to the `default_language_code`.
	SupportedLanguageCodes []string `json:"supportedLanguageCodes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DefaultLanguageCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DefaultLanguageCode") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReport: Latency report for the evaluation run.
type LatencyReport struct {
	// CallbackLatencies: Output only. Unordered list. Latency metrics for each
	// callback.
	CallbackLatencies []*LatencyReportCallbackLatency `json:"callbackLatencies,omitempty"`
	// GuardrailLatencies: Output only. Unordered list. Latency metrics for each
	// guardrail.
	GuardrailLatencies []*LatencyReportGuardrailLatency `json:"guardrailLatencies,omitempty"`
	// LlmCallLatencies: Output only. Unordered list. Latency metrics for each LLM
	// call.
	LlmCallLatencies []*LatencyReportLlmCallLatency `json:"llmCallLatencies,omitempty"`
	// SessionCount: Output only. The total number of sessions considered in the
	// latency report.
	SessionCount int64 `json:"sessionCount,omitempty"`
	// ToolLatencies: Output only. Unordered list. Latency metrics for each tool.
	ToolLatencies []*LatencyReportToolLatency `json:"toolLatencies,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallbackLatencies") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallbackLatencies") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReportCallbackLatency: Latency metrics for a single callback.
type LatencyReportCallbackLatency struct {
	// LatencyMetrics: Output only. The latency metrics for the callback.
	LatencyMetrics *LatencyReportLatencyMetrics `json:"latencyMetrics,omitempty"`
	// Stage: Output only. The stage of the callback.
	Stage string `json:"stage,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LatencyMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LatencyMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReportGuardrailLatency: Latency metrics for a single guardrail.
type LatencyReportGuardrailLatency struct {
	// Guardrail: Output only. The name of the guardrail. Format:
	// `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`.
	Guardrail string `json:"guardrail,omitempty"`
	// GuardrailDisplayName: Output only. The display name of the guardrail.
	GuardrailDisplayName string `json:"guardrailDisplayName,omitempty"`
	// LatencyMetrics: Output only. The latency metrics for the guardrail.
	LatencyMetrics *LatencyReportLatencyMetrics `json:"latencyMetrics,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Guardrail") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Guardrail") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReportLatencyMetrics: Latency metrics for a component.
type LatencyReportLatencyMetrics struct {
	// CallCount: Output only. The number of times the resource was called.
	CallCount int64 `json:"callCount,omitempty"`
	// P50Latency: Output only. The 50th percentile latency.
	P50Latency string `json:"p50Latency,omitempty"`
	// P90Latency: Output only. The 90th percentile latency.
	P90Latency string `json:"p90Latency,omitempty"`
	// P99Latency: Output only. The 99th percentile latency.
	P99Latency string `json:"p99Latency,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CallCount") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CallCount") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReportLlmCallLatency: Latency metrics for a single LLM call.
type LatencyReportLlmCallLatency struct {
	// LatencyMetrics: Output only. The latency metrics for the LLM call.
	LatencyMetrics *LatencyReportLatencyMetrics `json:"latencyMetrics,omitempty"`
	// Model: Output only. The name of the model.
	Model string `json:"model,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LatencyMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LatencyMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LatencyReportToolLatency: Latency metrics for a single tool.
type LatencyReportToolLatency struct {
	// LatencyMetrics: Output only. The latency metrics for the tool.
	LatencyMetrics *LatencyReportLatencyMetrics `json:"latencyMetrics,omitempty"`
	// Tool: Output only. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`.
	Tool string `json:"tool,omitempty"`
	// ToolDisplayName: Output only. The display name of the tool.
	ToolDisplayName string `json:"toolDisplayName,omitempty"`
	// ToolsetTool: Output only. The toolset tool identifier.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LatencyMetrics") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LatencyMetrics") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1Artifact: Artifacts represent task outputs.
type LfA2aV1Artifact struct {
	// ArtifactId: Required. Unique identifier (e.g. UUID) for the artifact. It
	// must be unique within a task.
	ArtifactId string `json:"artifactId,omitempty"`
	// Description: Optional. A human readable description of the artifact.
	Description string `json:"description,omitempty"`
	// Extensions: The URIs of extensions that are present or contributed to this
	// Artifact.
	Extensions []string `json:"extensions,omitempty"`
	// Metadata: Optional. Metadata included with the artifact.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Name: A human readable name for the artifact.
	Name string `json:"name,omitempty"`
	// Parts: Required. The content of the artifact. Must contain at least one
	// part.
	Parts []*LfA2aV1Part `json:"parts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ArtifactId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ArtifactId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1AuthenticationInfo: Defines authentication details, used for push
// notifications.
type LfA2aV1AuthenticationInfo struct {
	// Credentials: Push Notification credentials. Format depends on the scheme
	// (e.g., token for Bearer).
	Credentials string `json:"credentials,omitempty"`
	// Scheme: Required. HTTP Authentication Scheme from the IANA registry
	// (https://www.iana.org/assignments/http-authschemes/). Examples: `Bearer`,
	// `Basic`, `Digest`. Scheme names are case-insensitive per RFC 9110 Section
	// 11.1 (https://www.rfc-editor.org/rfc/rfc9110#section-11.1).
	Scheme string `json:"scheme,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Credentials") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Credentials") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1Message: `Message` is one unit of communication between client and
// server. It can be associated with a context and/or a task. For server
// messages, `context_id` must be provided, and `task_id` only if a task was
// created. For client messages, both fields are optional, with the caveat that
// if both are provided, they have to match (the `context_id` has to be the one
// that is set on the task). If only `task_id` is provided, the server will
// infer `context_id` from it.
type LfA2aV1Message struct {
	// ContextId: Optional. The context id of the message. If set, the message will
	// be associated with the given context.
	ContextId string `json:"contextId,omitempty"`
	// Extensions: The URIs of extensions that are present or contributed to this
	// Message.
	Extensions []string `json:"extensions,omitempty"`
	// MessageId: Required. The unique identifier (e.g. UUID) of the message. This
	// is created by the message creator.
	MessageId string `json:"messageId,omitempty"`
	// Metadata: Optional. Any metadata to provide along with the message.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Parts: Required. Parts is the container of the message content.
	Parts []*LfA2aV1Part `json:"parts,omitempty"`
	// ReferenceTaskIds: A list of task IDs that this message references for
	// additional context.
	ReferenceTaskIds []string `json:"referenceTaskIds,omitempty"`
	// Role: Required. Identifies the sender of the message.
	//
	// Possible values:
	//   "ROLE_UNSPECIFIED" - The role is unspecified.
	//   "ROLE_USER" - The message is from the client to the server.
	//   "ROLE_AGENT" - The message is from the server to the client.
	Role string `json:"role,omitempty"`
	// TaskId: Optional. The task id of the message. If set, the message will be
	// associated with the given task.
	TaskId string `json:"taskId,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ContextId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ContextId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1Part: `Part` represents a container for a section of communication
// content. Parts can be purely textual, some sort of file (image, video, etc)
// or a structured data blob (i.e. JSON).
type LfA2aV1Part struct {
	// Data: Arbitrary structured `data` as a JSON value (object, array, string,
	// number, boolean, or null).
	Data interface{} `json:"data,omitempty"`
	// Filename: An optional `filename` for the file (e.g., "document.pdf").
	Filename string `json:"filename,omitempty"`
	// MediaType: The `media_type` (MIME type) of the part content (e.g.,
	// "text/plain", "application/json", "image/png"). This field is available for
	// all part types.
	MediaType string `json:"mediaType,omitempty"`
	// Metadata: Optional. metadata associated with this part.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Raw: The `raw` byte content of a file. In JSON serialization, this is
	// encoded as a base64 string.
	Raw string `json:"raw,omitempty"`
	// Text: The string content of the `text` part.
	Text string `json:"text,omitempty"`
	// Url: A `url` pointing to the file's content.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Data") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Data") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1SendMessageConfiguration: Configuration of a send message request.
type LfA2aV1SendMessageConfiguration struct {
	// AcceptedOutputModes: A list of media types the client is prepared to accept
	// for response parts. Agents SHOULD use this to tailor their output.
	AcceptedOutputModes []string `json:"acceptedOutputModes,omitempty"`
	// HistoryLength: The maximum number of most recent messages from the task's
	// history to retrieve in the response. An unset value means the client does
	// not impose any limit. A value of zero is a request to not include any
	// messages. The server MUST NOT return more messages than the provided value,
	// but MAY apply a lower limit.
	HistoryLength int64 `json:"historyLength,omitempty"`
	// ReturnImmediately: If `true`, the operation returns immediately after
	// creating the task, even if processing is still in progress. If `false`
	// (default), the operation MUST wait until the task reaches a terminal
	// (`COMPLETED`, `FAILED`, `CANCELED`, `REJECTED`) or interrupted
	// (`INPUT_REQUIRED`, `AUTH_REQUIRED`) state before returning.
	ReturnImmediately bool `json:"returnImmediately,omitempty"`
	// TaskPushNotificationConfig: Configuration for the agent to send push
	// notifications for task updates. Task id should be empty when sending this
	// configuration in a `SendMessage` request.
	TaskPushNotificationConfig *LfA2aV1TaskPushNotificationConfig `json:"taskPushNotificationConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AcceptedOutputModes") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AcceptedOutputModes") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1SendMessageRequest: Represents a request for the `SendMessage`
// method.
type LfA2aV1SendMessageRequest struct {
	// Configuration: Configuration for the send request.
	Configuration *LfA2aV1SendMessageConfiguration `json:"configuration,omitempty"`
	// Message: Required. The message to send to the agent.
	Message *LfA2aV1Message `json:"message,omitempty"`
	// Metadata: A flexible key-value map for passing additional context or
	// parameters.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Configuration") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Configuration") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1SendMessageResponse: Represents the response for the `SendMessage`
// method.
type LfA2aV1SendMessageResponse struct {
	// Message: A message from the agent.
	Message *LfA2aV1Message `json:"message,omitempty"`
	// Task: The task created or updated by the message.
	Task *LfA2aV1Task `json:"task,omitempty"`

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

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

// LfA2aV1Task: `Task` is the core unit of action for A2A. It has a current
// status and when results are created for the task they are stored in the
// artifact. If there are multiple turns for a task, these are stored in
// history.
type LfA2aV1Task struct {
	// Artifacts: A set of output artifacts for a `Task`.
	Artifacts []*LfA2aV1Artifact `json:"artifacts,omitempty"`
	// ContextId: Unique identifier (e.g. UUID) for the contextual collection of
	// interactions (tasks and messages).
	ContextId string `json:"contextId,omitempty"`
	// History: protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of
	// interactions from a `Task`.
	History []*LfA2aV1Message `json:"history,omitempty"`
	// Id: Required. Unique identifier (e.g. UUID) for the task, generated by the
	// server for a new task.
	Id string `json:"id,omitempty"`
	// Metadata: protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value
	// object to store custom metadata about a task.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Status: Required. The current status of a `Task`, including `state` and a
	// `message`.
	Status *LfA2aV1TaskStatus `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Artifacts") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Artifacts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1TaskPushNotificationConfig: A container associating a push
// notification configuration with a specific task.
type LfA2aV1TaskPushNotificationConfig struct {
	// Authentication: Authentication information required to send the
	// notification.
	Authentication *LfA2aV1AuthenticationInfo `json:"authentication,omitempty"`
	// Id: The push notification configuration details. A unique identifier (e.g.
	// UUID) for this push notification configuration.
	Id string `json:"id,omitempty"`
	// TaskId: The ID of the task this configuration is associated with.
	TaskId string `json:"taskId,omitempty"`
	// Tenant: Optional. Tenant ID.
	Tenant string `json:"tenant,omitempty"`
	// Token: A token unique for this task or session.
	Token string `json:"token,omitempty"`
	// Url: Required. The URL where the notification should be sent.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Authentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Authentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// LfA2aV1TaskStatus: A container for the status of a task
type LfA2aV1TaskStatus struct {
	// Message: A message associated with the status.
	Message *LfA2aV1Message `json:"message,omitempty"`
	// State: Required. The current state of this task.
	//
	// Possible values:
	//   "TASK_STATE_UNSPECIFIED" - The task is in an unknown or indeterminate
	// state.
	//   "TASK_STATE_SUBMITTED" - Indicates that a task has been successfully
	// submitted and acknowledged.
	//   "TASK_STATE_WORKING" - Indicates that a task is actively being processed
	// by the agent.
	//   "TASK_STATE_COMPLETED" - Indicates that a task has finished successfully.
	// This is a terminal state.
	//   "TASK_STATE_FAILED" - Indicates that a task has finished with an error.
	// This is a terminal state.
	//   "TASK_STATE_CANCELED" - Indicates that a task was canceled before
	// completion. This is a terminal state.
	//   "TASK_STATE_INPUT_REQUIRED" - Indicates that the agent requires additional
	// user input to proceed. This is an interrupted state.
	//   "TASK_STATE_REJECTED" - Indicates that the agent has decided to not
	// perform the task. This may be done during initial task creation or later
	// once an agent has determined it can't or won't proceed. This is a terminal
	// state.
	//   "TASK_STATE_AUTH_REQUIRED" - Indicates that authentication is required to
	// proceed. This is an interrupted state.
	State string `json:"state,omitempty"`
	// Timestamp: ISO 8601 Timestamp when the status was recorded. Example:
	// "2023-10-27T10:00:00Z"
	Timestamp string `json:"timestamp,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Message") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Message") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListAgentsResponse: Response message for AgentService.ListAgents.
type ListAgentsResponse struct {
	// Agents: The list of agents.
	Agents []*Agent `json:"agents,omitempty"`
	// NextPageToken: A token that can be sent as ListAgentsRequest.page_token to
	// retrieve the next page. Absence of this field indicates 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. "Agents") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agents") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListAppVersionsResponse: Response message for AgentService.ListAppVersions.
type ListAppVersionsResponse struct {
	// AppVersions: The list of app versions.
	AppVersions []*AppVersion `json:"appVersions,omitempty"`
	// NextPageToken: A token that can be sent as ListAppVersionsRequest.page_token
	// to retrieve the next page. Absence of this field indicates 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. "AppVersions") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AppVersions") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListAppsResponse: Response message for AgentService.ListApps.
type ListAppsResponse struct {
	// Apps: The list of apps.
	Apps []*App `json:"apps,omitempty"`
	// NextPageToken: A token that can be sent as ListAppsRequest.page_token to
	// retrieve the next page. Absence of this field indicates there are no
	// subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Unreachable: Unordered list. Locations that could not be reached.
	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. "Apps") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Apps") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListChangelogsResponse: Response message for AgentService.ListChangelogs.
type ListChangelogsResponse struct {
	// Changelogs: The list of changelogs.
	Changelogs []*Changelog `json:"changelogs,omitempty"`
	// NextPageToken: A token that can be sent as ListChangelogsRequest.page_token
	// to retrieve the next page. Absence of this field indicates 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. "Changelogs") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Changelogs") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListConversationsResponse: Response message for
// AgentService.ListConversations.
type ListConversationsResponse struct {
	// Conversations: The list of conversations.
	Conversations []*Conversation `json:"conversations,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListConversationsRequest.page_token to retrieve the next page. Absence of
	// this field indicates 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. "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 ListConversationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListConversationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListDeploymentsResponse: Response message for AgentService.ListDeployments.
type ListDeploymentsResponse struct {
	// Deployments: The list of deployments.
	Deployments []*Deployment `json:"deployments,omitempty"`
	// 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"`

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

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

// ListEvaluationDatasetsResponse: Response message for
// EvaluationService.ListEvaluationDatasets.
type ListEvaluationDatasetsResponse struct {
	// EvaluationDatasets: The list of evaluation datasets.
	EvaluationDatasets []*EvaluationDataset `json:"evaluationDatasets,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListEvaluationDatasetsRequest.page_token to retrieve the next page. Absence
	// of this field indicates 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. "EvaluationDatasets") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationDatasets") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListEvaluationExpectationsResponse: Response message for
// EvaluationService.ListEvaluationExpectations.
type ListEvaluationExpectationsResponse struct {
	// EvaluationExpectations: The list of evaluation expectations.
	EvaluationExpectations []*EvaluationExpectation `json:"evaluationExpectations,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListEvaluationExpectationsRequest.page_token to retrieve the next page.
	// Absence of this field indicates 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. "EvaluationExpectations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationExpectations") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListEvaluationResultsResponse: Response message for
// EvaluationService.ListEvaluationResults.
type ListEvaluationResultsResponse struct {
	// EvaluationResults: The list of evaluation results.
	EvaluationResults []*EvaluationResult `json:"evaluationResults,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListEvaluationResultsRequest.page_token to retrieve the next page. Absence
	// of this field indicates 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 ListEvaluationResultsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListEvaluationResultsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListEvaluationRunsResponse: Response message for
// EvaluationService.ListEvaluationRuns.
type ListEvaluationRunsResponse struct {
	// EvaluationRuns: The list of evaluation runs.
	EvaluationRuns []*EvaluationRun `json:"evaluationRuns,omitempty"`
	// NextPageToken: A token that can be sent as
	// ListEvaluationRunsRequest.page_token to retrieve the next page. Absence of
	// this field indicates 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. "EvaluationRuns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationRuns") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListEvaluationsResponse: Response message for
// EvaluationService.ListEvaluations.
type ListEvaluationsResponse struct {
	// Evaluations: The list of evaluations.
	Evaluations []*Evaluation `json:"evaluations,omitempty"`
	// NextPageToken: A token that can be sent as ListEvaluationsRequest.page_token
	// to retrieve the next page. Absence of this field indicates 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 ListEvaluationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListEvaluationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListExamplesResponse: Response message for AgentService.ListExamples.
type ListExamplesResponse struct {
	// Examples: The list of examples.
	Examples []*Example `json:"examples,omitempty"`
	// NextPageToken: A token that can be sent as ListExamplesRequest.page_token to
	// retrieve the next page. Absence of this field indicates 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. "Examples") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Examples") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListGuardrailsResponse: Response message for AgentService.ListGuardrails.
type ListGuardrailsResponse struct {
	// Guardrails: The list of guardrails.
	Guardrails []*Guardrail `json:"guardrails,omitempty"`
	// NextPageToken: A token that can be sent as ListGuardrailsRequest.page_token
	// to retrieve the next page. Absence of this field indicates 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. "Guardrails") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Guardrails") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListLocationsResponse: The response message for Locations.ListLocations.
type ListLocationsResponse struct {
	// Locations: A list of locations that matches the specified filter in the
	// request.
	Locations []*Location `json:"locations,omitempty"`
	// NextPageToken: The standard List next-page token.
	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. "Locations") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Locations") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ListOperationsResponse: The response message for Operations.ListOperations.
type ListOperationsResponse 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 []*Operation `json:"operations,omitempty"`
	// Unreachable: Unordered list. Unreachable resources. Populated when the
	// request sets `ListOperationsRequest.return_partial_success` and reads across
	// collections. For example, 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 ListOperationsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListOperationsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListScheduledEvaluationRunsResponse: Response message for
// EvaluationService.ListScheduledEvaluationRuns.
type ListScheduledEvaluationRunsResponse struct {
	// NextPageToken: A token that can be sent as
	// ListScheduledEvaluationRunsRequest.page_token to retrieve the next page.
	// Absence of this field indicates there are no subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// ScheduledEvaluationRuns: The list of scheduled evaluation runs.
	ScheduledEvaluationRuns []*ScheduledEvaluationRun `json:"scheduledEvaluationRuns,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 ListScheduledEvaluationRunsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListScheduledEvaluationRunsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListToolsResponse: Response message for AgentService.ListTools.
type ListToolsResponse struct {
	// NextPageToken: A token that can be sent as ListToolsRequest.page_token to
	// retrieve the next page. Absence of this field indicates there are no
	// subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Tools: The list of tools.
	Tools []*Tool `json:"tools,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 ListToolsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListToolsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ListToolsetsResponse: Response message for AgentService.ListToolsets.
type ListToolsetsResponse struct {
	// NextPageToken: A token that can be sent as ListToolsetsRequest.page_token to
	// retrieve the next page. Absence of this field indicates there are no
	// subsequent pages.
	NextPageToken string `json:"nextPageToken,omitempty"`
	// Toolsets: The list of toolsets.
	Toolsets []*Toolset `json:"toolsets,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 ListToolsetsResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ListToolsetsResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Location: A resource that represents a Google Cloud location.
type Location struct {
	// DisplayName: The friendly name for this location, typically a nearby city
	// name. For example, "Tokyo".
	DisplayName string `json:"displayName,omitempty"`
	// Labels: Cross-service attributes for the location. For example
	// {"cloud.googleapis.com/region": "us-east1"}
	Labels map[string]string `json:"labels,omitempty"`
	// LocationId: The canonical id for this location. For example: "us-east1".
	LocationId string `json:"locationId,omitempty"`
	// Metadata: Service-specific metadata. For example the available capacity at
	// the given location.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Name: Resource name for the location, which may vary between
	// implementations. For example:
	// "projects/example-project/locations/us-east1"
	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. "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 Location) MarshalJSON() ([]byte, error) {
	type NoMethod Location
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// LoggingSettings: Settings to describe the logging behaviors for the app.
type LoggingSettings struct {
	// AudioRecordingConfig: Optional. Configuration for how audio interactions
	// should be recorded. The audio is subject to redaction as configured in
	// RedactionConfig.
	AudioRecordingConfig *AudioRecordingConfig `json:"audioRecordingConfig,omitempty"`
	// BigqueryExportSettings: Optional. Configures the BigQuery export behaviors
	// for the app. The conversation data is subject to redaction as configured in
	// RedactionConfig.
	BigqueryExportSettings *BigQueryExportSettings `json:"bigqueryExportSettings,omitempty"`
	// CloudLoggingSettings: Optional. Settings to describe the Cloud Logging
	// behaviors for the app.
	CloudLoggingSettings *CloudLoggingSettings `json:"cloudLoggingSettings,omitempty"`
	// ConversationLoggingSettings: Optional. Settings to describe the conversation
	// logging behaviors for the app.
	ConversationLoggingSettings *ConversationLoggingSettings `json:"conversationLoggingSettings,omitempty"`
	// EvaluationAudioRecordingConfig: Optional. Configuration for how audio
	// interactions should be recorded for the evaluation. By default, audio
	// recording is not enabled for evaluation sessions.
	EvaluationAudioRecordingConfig *AudioRecordingConfig `json:"evaluationAudioRecordingConfig,omitempty"`
	// MetricAnalysisSettings: Optional. Settings to describe the conversation data
	// collection behaviors for the LLM analysis pipeline for the app.
	MetricAnalysisSettings *MetricAnalysisSettings `json:"metricAnalysisSettings,omitempty"`
	// RedactionConfig: Optional. Configuration for how sensitive data should be
	// redacted.
	RedactionConfig *RedactionConfig `json:"redactionConfig,omitempty"`
	// UnredactedAudioRecordingConfig: Optional. Configures an additional recording
	// of unredacted audio. This can be used to maintain a raw audio copy when
	// audio redaction is enabled, typically for auditing or monitoring purposes.
	UnredactedAudioRecordingConfig *AudioRecordingConfig `json:"unredactedAudioRecordingConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioRecordingConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioRecordingConfig") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// McpTool: An MCP tool. See
// https://modelcontextprotocol.io/specification/2025-06-18/server/tools for
// more details.
type McpTool struct {
	// ApiAuthentication: Optional. Authentication information required to execute
	// the tool against the MCP server. For bearer token authentication, the token
	// applies only to tool execution, not to listing tools. This requires that
	// tools can be listed without authentication.
	ApiAuthentication *ApiAuthentication `json:"apiAuthentication,omitempty"`
	// CustomHeaders: Optional. The custom headers to send in the request to the
	// MCP server. The values must be in the format `$context.variables.` and can
	// be set in the session variables. See
	// https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection
	// for more details.
	CustomHeaders map[string]string `json:"customHeaders,omitempty"`
	// Description: Optional. The description of the MCP tool.
	Description string `json:"description,omitempty"`
	// InputSchema: Optional. The schema of the input arguments of the MCP tool.
	InputSchema *Schema `json:"inputSchema,omitempty"`
	// Name: Required. The name of the MCP tool.
	Name string `json:"name,omitempty"`
	// NameOverride: Optional. The name override of the MCP tool. This is populated
	// if the name was overridden by a Toolset override.
	NameOverride string `json:"nameOverride,omitempty"`
	// OutputSchema: Optional. The schema of the output arguments of the MCP tool.
	OutputSchema *Schema `json:"outputSchema,omitempty"`
	// ServerAddress: Required. The server address of the MCP server, e.g.,
	// "https://example.com/mcp/". If the server is built with the MCP SDK, the url
	// should be suffixed with "/mcp/". Only Streamable HTTP transport based
	// servers are supported. This is the same as the server_address in the
	// McpToolset. See
	// https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http
	// for more details.
	ServerAddress string `json:"serverAddress,omitempty"`
	// ServiceDirectoryConfig: Optional. Service Directory configuration for
	// VPC-SC, used to resolve service names within a perimeter.
	ServiceDirectoryConfig *ServiceDirectoryConfig `json:"serviceDirectoryConfig,omitempty"`
	// State: Output only. The dynamic availability state of the tool on the
	// external server.
	//
	// Possible values:
	//   "STATE_UNSPECIFIED" - Default state.
	//   "ACTIVE" - The tool is available and actively offered by the server.
	//   "INACTIVE" - The tool is configured or pinned, but currently not offered
	// by the server.
	//   "STALE" - The tool exists on the server, but does not match the version on
	// the server.
	State string `json:"state,omitempty"`
	// TlsConfig: Optional. The TLS configuration. Includes the custom server
	// certificates that the client should trust.
	TlsConfig *TlsConfig `json:"tlsConfig,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiAuthentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiAuthentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// McpToolDefinition: Container for a tool's core definition elements that are
// snapshot. Schemas in the snapshot are used as-is and cannot be overridden.
type McpToolDefinition struct {
	// Description: Output only. The description of the MCP tool. This can be
	// overridden by `description_override` in `McpToolOverride`.
	Description string `json:"description,omitempty"`
	// InputSchema: Output only. The schema of the input arguments of the MCP tool.
	InputSchema *Schema `json:"inputSchema,omitempty"`
	// OutputSchema: Output only. The schema of the output arguments of the MCP
	// tool.
	OutputSchema *Schema `json:"outputSchema,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 McpToolDefinition) MarshalJSON() ([]byte, error) {
	type NoMethod McpToolDefinition
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// McpToolOverride: Overrides associated with a given tool in a Toolset. This
// enables "pinning" or "overriding" of tool definitions from the external
// dynamic server.
type McpToolOverride struct {
	// DescriptionOverride: Optional. If present, this tool uses this description
	// instead of the original description from the server.
	DescriptionOverride string `json:"descriptionOverride,omitempty"`
	// NameOverride: Optional. If present, this tool uses this name in the Agent
	// instead of the original name. This is primarily used as an alias if the MCP
	// server offers poorly named tools.
	NameOverride string `json:"nameOverride,omitempty"`
	// Snapshot: Output only. If present, this tool is "Pinned" and uses the
	// snapshot values as fallbacks if the server becomes temporarily unavailable
	// or if no Override is present.
	Snapshot *McpToolDefinition `json:"snapshot,omitempty"`
	// Tool: Required. The original name of the tool as it is emitted by the MCP
	// server.
	Tool string `json:"tool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DescriptionOverride") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DescriptionOverride") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// McpToolset: A toolset that contains a list of tools that are offered by the
// MCP server.
type McpToolset struct {
	// ApiAuthentication: Optional. Authentication information required to access
	// tools and execute a tool against the MCP server. For bearer token
	// authentication, the token applies only to tool execution, not to listing
	// tools. This requires that tools can be listed without authentication.
	ApiAuthentication *ApiAuthentication `json:"apiAuthentication,omitempty"`
	// CustomHeaders: Optional. The custom headers to send in the request to the
	// MCP server. The values must be in the format `$context.variables.` and can
	// be set in the session variables. See
	// https://docs.cloud.google.com/customer-engagement-ai/conversational-agents/ps/tool/open-api#openapi-injection
	// for more details.
	CustomHeaders map[string]string `json:"customHeaders,omitempty"`
	// ServerAddress: Required. The address of the MCP server, for example,
	// "https://example.com/mcp/". If the server is built with the MCP SDK, the url
	// should be suffixed with "/mcp/". Only Streamable HTTP transport based
	// servers are supported. See
	// https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http
	// for more details.
	ServerAddress string `json:"serverAddress,omitempty"`
	// ServiceDirectoryConfig: Optional. Service Directory configuration for
	// VPC-SC, used to resolve service names within a perimeter.
	ServiceDirectoryConfig *ServiceDirectoryConfig `json:"serviceDirectoryConfig,omitempty"`
	// TlsConfig: Optional. The TLS configuration. Includes the custom server
	// certificates that the client should trust.
	TlsConfig *TlsConfig `json:"tlsConfig,omitempty"`
	// ToolOverrides: Optional. Overrides for individual tools within this toolset.
	// This allows overriding specific details like descriptions, names, or pinning
	// the tools' states so they aren't fully dynamic.
	ToolOverrides []*McpToolOverride `json:"toolOverrides,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiAuthentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiAuthentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Message: A message within a conversation.
type Message struct {
	// Chunks: Optional. Content of the message as a series of chunks.
	Chunks []*Chunk `json:"chunks,omitempty"`
	// EventTime: Optional. Timestamp when the message was sent or received. Should
	// not be used if the message is part of an example.
	EventTime string `json:"eventTime,omitempty"`
	// Role: Optional. The role within the conversation, e.g., user, agent.
	Role string `json:"role,omitempty"`
	// 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 Message) MarshalJSON() ([]byte, error) {
	type NoMethod Message
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// MetricAnalysisSettings: Settings to describe the conversation data
// collection behaviors for LLM analysis metrics pipeline.
type MetricAnalysisSettings struct {
	// LlmMetricsOptedOut: Optional. Whether to collect conversation data for llm
	// analysis metrics. If true, conversation data will not be collected for llm
	// analysis metrics; otherwise, conversation data will be collected.
	LlmMetricsOptedOut bool `json:"llmMetricsOptedOut,omitempty"`
	// ForceSendFields is a list of field names (e.g. "LlmMetricsOptedOut") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "LlmMetricsOptedOut") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MockConfig: Mock tool calls configuration for the session.
type MockConfig struct {
	// MockedToolCalls: Optional. All tool calls to mock for the duration of the
	// session.
	MockedToolCalls []*MockedToolCall `json:"mockedToolCalls,omitempty"`
	// UnmatchedToolCallBehavior: Required. Beavhior for tool calls that don't
	// match any args patterns in mocked_tool_calls.
	//
	// Possible values:
	//   "UNMATCHED_TOOL_CALL_BEHAVIOR_UNSPECIFIED" - Default value. This value is
	// unused.
	//   "FAIL" - Throw an error for any tool calls that don't match a mock
	// expected input pattern.
	//   "PASS_THROUGH" - For unmatched tool calls, pass the tool call through to
	// real tool.
	UnmatchedToolCallBehavior string `json:"unmatchedToolCallBehavior,omitempty"`
	// ForceSendFields is a list of field names (e.g. "MockedToolCalls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "MockedToolCalls") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// MockedToolCall: A mocked tool call. Expresses the target tool + a pattern to
// match against that tool's args / inputs. If the pattern matches, then the
// mock response will be returned.
type MockedToolCall struct {
	// ExpectedArgsPattern: Required. A pattern to match against the args / inputs
	// of all dispatched tool calls. If the tool call inputs match this pattern,
	// then mock output will be returned.
	ExpectedArgsPattern googleapi.RawMessage `json:"expectedArgsPattern,omitempty"`
	// MockResponse: Optional. The mock response / output to return if the tool
	// call args / inputs match the pattern.
	MockResponse googleapi.RawMessage `json:"mockResponse,omitempty"`
	// Tool: Optional. Deprecated. Use tool_identifier instead.
	Tool string `json:"tool,omitempty"`
	// ToolId: Optional. The name of the tool to mock. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	ToolId string `json:"toolId,omitempty"`
	// Toolset: Optional. The toolset to mock.
	Toolset *ToolsetTool `json:"toolset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpectedArgsPattern") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpectedArgsPattern") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ModelSettings: Model settings contains various configurations for the LLM
// model.
type ModelSettings struct {
	// Model: Optional. The LLM model that the agent should use. If not set, the
	// agent will inherit the model from its parent agent.
	Model string `json:"model,omitempty"`
	// Temperature: Optional. If set, this temperature will be used for the LLM
	// model. Temperature controls the randomness of the model's responses. Lower
	// temperatures produce responses that are more predictable. Higher
	// temperatures produce responses that are more creative.
	Temperature float64 `json:"temperature,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Model") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Model") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// OAuthConfig: Configurations for authentication with OAuth.
type OAuthConfig struct {
	// ClientId: Required. The client ID from the OAuth provider.
	ClientId string `json:"clientId,omitempty"`
	// ClientSecretVersion: Required. The name of the SecretManager secret version
	// resource storing the client secret. Format:
	// `projects/{project}/secrets/{secret}/versions/{version}` Note: You should
	// grant `roles/secretmanager.secretAccessor` role to the CES service agent
	// `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	ClientSecretVersion string `json:"clientSecretVersion,omitempty"`
	// OauthGrantType: Required. OAuth grant types.
	//
	// Possible values:
	//   "OAUTH_GRANT_TYPE_UNSPECIFIED" - Unspecified. Defaults to
	// CLIENT_CREDENTIAL.
	//   "CLIENT_CREDENTIAL" - Represents the [client credential
	// flow](https://oauth.net/2/grant-types/client-credentials).
	OauthGrantType string `json:"oauthGrantType,omitempty"`
	// Scopes: Optional. The OAuth scopes to grant.
	Scopes []string `json:"scopes,omitempty"`
	// TokenEndpoint: Required. The token endpoint in the OAuth provider to
	// exchange for an access token.
	TokenEndpoint string `json:"tokenEndpoint,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ClientId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ClientId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// OpenApiTool: A remote API tool defined by an OpenAPI schema.
type OpenApiTool struct {
	// ApiAuthentication: Optional. Authentication information required by the API.
	ApiAuthentication *ApiAuthentication `json:"apiAuthentication,omitempty"`
	// Description: Optional. The description of the tool. If not provided, the
	// description of the tool will be derived from the OpenAPI schema, from
	// `operation.description` or `operation.summary`.
	Description string `json:"description,omitempty"`
	// IgnoreUnknownFields: Optional. If true, the agent will ignore unknown fields
	// in the API response.
	IgnoreUnknownFields bool `json:"ignoreUnknownFields,omitempty"`
	// Name: Optional. The name of the tool. If not provided, the name of the tool
	// will be derived from the OpenAPI schema, from `operation.operationId`.
	Name string `json:"name,omitempty"`
	// OpenApiSchema: Required. The OpenAPI schema in JSON or YAML format.
	OpenApiSchema string `json:"openApiSchema,omitempty"`
	// ServiceDirectoryConfig: Optional. Service Directory configuration.
	ServiceDirectoryConfig *ServiceDirectoryConfig `json:"serviceDirectoryConfig,omitempty"`
	// TlsConfig: Optional. The TLS configuration. Includes the custom server
	// certificates that the client will trust.
	TlsConfig *TlsConfig `json:"tlsConfig,omitempty"`
	// Url: Optional. The server URL of the Open API schema. This field is only set
	// in tools in the environment dependencies during the export process if the
	// schema contains a server url. During the import process, if this url is
	// present in the environment dependencies and the schema has the $env_var
	// placeholder, it will replace the placeholder in the schema.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiAuthentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiAuthentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// OpenApiToolset: A toolset that contains a list of tools that are defined by
// an OpenAPI schema.
type OpenApiToolset struct {
	// ApiAuthentication: Optional. Authentication information required by the API.
	ApiAuthentication *ApiAuthentication `json:"apiAuthentication,omitempty"`
	// IgnoreUnknownFields: Optional. If true, the agent will ignore unknown fields
	// in the API response for all operations defined in the OpenAPI schema.
	IgnoreUnknownFields bool `json:"ignoreUnknownFields,omitempty"`
	// OpenApiSchema: Required. The OpenAPI schema of the toolset.
	OpenApiSchema string `json:"openApiSchema,omitempty"`
	// ServiceDirectoryConfig: Optional. Service Directory configuration.
	ServiceDirectoryConfig *ServiceDirectoryConfig `json:"serviceDirectoryConfig,omitempty"`
	// TlsConfig: Optional. The TLS configuration. Includes the custom server
	// certificates
	TlsConfig *TlsConfig `json:"tlsConfig,omitempty"`
	// Url: Optional. The server URL of the Open API schema. This field is only set
	// in toolsets in the environment dependencies during the export process if the
	// schema contains a server url. During the import process, if this url is
	// present in the environment dependencies and the schema has the $env_var
	// placeholder, it will replace the placeholder in the schema.
	Url string `json:"url,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ApiAuthentication") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ApiAuthentication") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Operation: This resource represents a long-running operation that is the
// result of a network API call.
type Operation struct {
	// Done: If the value is `false`, it means the operation is still in progress.
	// If `true`, the operation is completed, and either `error` or `response` is
	// available.
	Done bool `json:"done,omitempty"`
	// Error: The error result of the operation in case of failure or cancellation.
	Error *Status `json:"error,omitempty"`
	// Metadata: Service-specific metadata associated with the operation. It
	// typically contains progress information and common metadata such as create
	// time. Some services might not provide such metadata. Any method that returns
	// a long-running operation should document the metadata type, if any.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
	// Name: The server-assigned name, which is only unique within the same service
	// that originally returns it. If you use the default HTTP mapping, the `name`
	// should be a resource name ending with `operations/{unique_id}`.
	Name string `json:"name,omitempty"`
	// Response: The normal, successful response of the operation. If the original
	// method returns no data on success, such as `Delete`, the response is
	// `google.protobuf.Empty`. If the original method is standard
	// `Get`/`Create`/`Update`, the response should be the resource. For other
	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
	// original method name. For example, if the original method name is
	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
	Response googleapi.RawMessage `json:"response,omitempty"`

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

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

// OperationMetadata: Represents the metadata of the long-running operation.
type OperationMetadata struct {
	// CreateTime: Output only. The time the operation was created.
	CreateTime string `json:"createTime,omitempty"`
	// EndTime: Output only. The time the operation finished running.
	EndTime string `json:"endTime,omitempty"`
	// RequestedCancellation: Output only. Identifies whether the user has
	// requested cancellation of the operation. Operations that have been cancelled
	// successfully have google.longrunning.Operation.error value with a
	// google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.
	RequestedCancellation bool `json:"requestedCancellation,omitempty"`
	// StatusMessage: Output only. Human-readable status of the operation, if any.
	StatusMessage string `json:"statusMessage,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 OperationMetadata) MarshalJSON() ([]byte, error) {
	type NoMethod OperationMetadata
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// OptimizationConfig: Configuration for running the optimization step after
// the evaluation run.
type OptimizationConfig struct {
	// AssistantSession: Output only. The assistant session to use for the
	// optimization based on this evaluation run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/assistantSessions/{assist
	// antSession}`
	AssistantSession string `json:"assistantSession,omitempty"`
	// ErrorMessage: Output only. The error message if the optimization run failed.
	ErrorMessage string `json:"errorMessage,omitempty"`
	// GenerateLossReport: Optional. Whether to generate a loss report.
	GenerateLossReport bool `json:"generateLossReport,omitempty"`
	// LossReport: Output only. The generated loss report.
	LossReport googleapi.RawMessage `json:"lossReport,omitempty"`
	// ReportSummary: Output only. The summary of the loss report.
	ReportSummary string `json:"reportSummary,omitempty"`
	// ShouldSuggestFix: Output only. Whether to suggest a fix for the losses.
	ShouldSuggestFix bool `json:"shouldSuggestFix,omitempty"`
	// Status: Output only. The status of the optimization run.
	//
	// Possible values:
	//   "OPTIMIZATION_STATUS_UNSPECIFIED" - Optimization status is not specified.
	//   "RUNNING" - Optimization is running.
	//   "COMPLETED" - Optimization has completed.
	//   "ERROR" - Optimization failed due to an internal error.
	Status string `json:"status,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AssistantSession") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AssistantSession") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// OutputAudioConfig: OutputAudioConfig configures how the CES agent should
// synthesize outgoing audio responses.
type OutputAudioConfig struct {
	// AudioEncoding: Required. The encoding of the output audio data.
	//
	// Possible values:
	//   "AUDIO_ENCODING_UNSPECIFIED" - Unspecified audio encoding.
	//   "LINEAR16" - 16-bit linear PCM audio encoding.
	//   "MULAW" - 8-bit samples that compand 14-bit audio samples using G.711
	// PCMU/mu-law.
	//   "ALAW" - 8-bit samples that compand 14-bit audio samples using G.711
	// PCMU/A-law.
	AudioEncoding string `json:"audioEncoding,omitempty"`
	// SampleRateHertz: Required. The sample rate (in Hertz) of the output audio
	// data.
	SampleRateHertz int64 `json:"sampleRateHertz,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioEncoding") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioEncoding") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// PersonaRunConfig: Configuration for running an evaluation for a specific
// persona.
type PersonaRunConfig struct {
	// Persona: Optional. The persona to use for the evaluation. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationPersonas/{evalu
	// ationPersona}`
	Persona string `json:"persona,omitempty"`
	// TaskCount: Optional. The number of tasks to run for the persona.
	TaskCount int64 `json:"taskCount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Persona") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Persona") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// PythonCodeCondition: Python code block to evaluate the condition.
type PythonCodeCondition struct {
	// PythonCode: Required. The python code to execute.
	PythonCode string `json:"pythonCode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PythonCode") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PythonCode") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// PythonFunction: A Python function tool.
type PythonFunction struct {
	// Description: Output only. The description of the Python function, parsed
	// from the python code's docstring.
	Description string `json:"description,omitempty"`
	// Name: Optional. The name of the Python function to execute. Must match a
	// Python function name defined in the python code. Case sensitive. If the name
	// is not provided, the first function defined in the python code will be used.
	Name string `json:"name,omitempty"`
	// PythonCode: Optional. The Python code to execute for the tool.
	PythonCode string `json:"pythonCode,omitempty"`
	// ServiceDirectoryConfig: Optional. Service Directory configuration for the
	// tool.
	ServiceDirectoryConfig *ServiceDirectoryConfig `json:"serviceDirectoryConfig,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 PythonFunction) MarshalJSON() ([]byte, error) {
	type NoMethod PythonFunction
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// QualityReport: The report describing any identified quality issues in the
// app.
type QualityReport struct {
	// EvaluationRuns: Optional. A list of evaluation runs used to generate the
	// quality report. Format:
	// `projects/{project}/locations/{location}/evaluationRuns/{evaluationRun}`.
	EvaluationRuns []string `json:"evaluationRuns,omitempty"`
	// GeneralIssues: Optional. General issues not specific to any agent.
	GeneralIssues []*QualityReportIssue `json:"generalIssues,omitempty"`
	// Issues: Optional. The issues grouped by agent.
	Issues []*QualityReportAgentIssues `json:"issues,omitempty"`
	// ForceSendFields is a list of field names (e.g. "EvaluationRuns") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "EvaluationRuns") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// QualityReportAgentIssues: Issues identified for a single agent.
type QualityReportAgentIssues struct {
	// Agent: Optional. The name of the agent to which the issues are related.
	// Format: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	Agent string `json:"agent,omitempty"`
	// Issues: Optional. List of issues found for this agent.
	Issues []*QualityReportIssue `json:"issues,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// QualityReportIssue: The issue identified.
type QualityReportIssue struct {
	// Description: Optional. Description of the issue found.
	Description string `json:"description,omitempty"`
	// OccurrenceCount: Optional. How many times this issue occurred.
	OccurrenceCount int64 `json:"occurrenceCount,omitempty"`
	// ProposedSolution: Optional. Proposed solution to fix the issue by modifying
	// instructions or tools.
	ProposedSolution string `json:"proposedSolution,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 QualityReportIssue) MarshalJSON() ([]byte, error) {
	type NoMethod QualityReportIssue
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// RedactionConfig: Configuration to instruct how sensitive data should be
// handled.
type RedactionConfig struct {
	// DeidentifyTemplate: Optional. DLP (https://cloud.google.com/dlp/docs)
	// deidentify template name to instruct on how to de-identify content. Format:
	// `projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_temp
	// late}`
	DeidentifyTemplate string `json:"deidentifyTemplate,omitempty"`
	// EnableRedaction: Optional. If true, redaction will be applied in various
	// logging scenarios, including conversation history, Cloud Logging and audio
	// recording.
	EnableRedaction bool `json:"enableRedaction,omitempty"`
	// InspectTemplate: Optional. DLP (https://cloud.google.com/dlp/docs) inspect
	// template name to configure detection of sensitive data types. Format:
	// `projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`
	InspectTemplate string `json:"inspectTemplate,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DeidentifyTemplate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DeidentifyTemplate") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RemoteAgentTool: Represents a tool that allows the agent to call another
// remote agent.
type RemoteAgentTool struct {
	// AgentCard: Required. The agent card of the remote agent that this tool
	// invokes.
	AgentCard *AgentCard `json:"agentCard,omitempty"`
	// Description: Required. The description of the tool.
	Description string `json:"description,omitempty"`
	// Name: Required. The name of the tool.
	Name string `json:"name,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AgentCard") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AgentCard") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RestoreAppVersionRequest: Request message for AgentService.RestoreAppVersion
type RestoreAppVersionRequest struct {
}

// RetrieveToolSchemaRequest: Request message for
// ToolService.RetrieveToolSchema.
type RetrieveToolSchemaRequest struct {
	// Tool: Optional. The name of the tool to retrieve the schema for. Format:
	// projects/{project}/locations/{location}/apps/{app}/tools/{tool}
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: Optional. The toolset tool to retrieve the schema for. Only one
	// tool should match the predicate from the toolset. Otherwise, an error will
	// be returned.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Tool") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Tool") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RetrieveToolSchemaResponse: Response message for
// ToolService.RetrieveToolSchema.
type RetrieveToolSchemaResponse struct {
	// InputSchema: The schema of the tool input parameters.
	InputSchema *Schema `json:"inputSchema,omitempty"`
	// OutputSchema: The schema of the tool output parameters.
	OutputSchema *Schema `json:"outputSchema,omitempty"`
	// Tool: The name of the tool that the schema is for. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: The toolset tool that the schema is for.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`

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

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

// RetrieveToolsRequest: Request message for ToolService.RetrieveTools.
type RetrieveToolsRequest struct {
	// BypassPersistenceConfig: Optional. If true, the returned tools will contain
	// raw descriptions and schemas directly from the server, bypassing any stored
	// persistence configurations (overrides/snapshots).
	BypassPersistenceConfig bool `json:"bypassPersistenceConfig,omitempty"`
	// ToolIds: Optional. The identifiers of the tools to retrieve from the
	// toolset. If empty, all tools in the toolset will be returned.
	ToolIds []string `json:"toolIds,omitempty"`
	// ForceSendFields is a list of field names (e.g. "BypassPersistenceConfig") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "BypassPersistenceConfig") to
	// include in API requests with the JSON null value. By default, fields with
	// empty values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RetrieveToolsResponse: Response message for ToolService.RetrieveTools.
type RetrieveToolsResponse struct {
	// Tools: The list of tools that are included in the specified toolset.
	Tools []*Tool `json:"tools,omitempty"`

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

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

// RunEvaluationRequest: Request message for EvaluationService.RunEvaluation.
type RunEvaluationRequest struct {
	// App: Required. The app to evaluate. Format:
	// `projects/{project}/locations/{location}/apps/{app}`
	App string `json:"app,omitempty"`
	// AppVersion: Optional. The app version to evaluate. Format:
	// `projects/{project}/locations/{location}/apps/{app}/versions/{version}`
	AppVersion string `json:"appVersion,omitempty"`
	// Config: Optional. The configuration to use for the run.
	Config *EvaluationConfig `json:"config,omitempty"`
	// DisplayName: Optional. The display name of the evaluation run.
	DisplayName string `json:"displayName,omitempty"`
	// EvaluationDataset: Optional. An evaluation dataset to run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{evalu
	// ationDataset}`
	EvaluationDataset string `json:"evaluationDataset,omitempty"`
	// Evaluations: Optional. List of evaluations to run. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation}`
	Evaluations []string `json:"evaluations,omitempty"`
	// GenerateLatencyReport: Optional. Whether to generate a latency report for
	// the evaluation run.
	GenerateLatencyReport bool `json:"generateLatencyReport,omitempty"`
	// GoldenRunMethod: Optional. The method to run the evaluation if it is a
	// golden evaluation. If not set, default to STABLE.
	//
	// Possible values:
	//   "GOLDEN_RUN_METHOD_UNSPECIFIED" - Run method is not specified.
	//   "STABLE" - Run the evaluation as stable replay, where each turn is a
	// unique session with the previous expected turns injected as context.
	//   "NAIVE" - Run the evaluation as naive replay, where the run is a single
	// session with no context injected.
	GoldenRunMethod string `json:"goldenRunMethod,omitempty"`
	// OptimizationConfig: Optional. Configuration for running the optimization
	// step after the evaluation run. If not set, the optimization step will not be
	// run.
	OptimizationConfig *OptimizationConfig `json:"optimizationConfig,omitempty"`
	// PersonaRunConfigs: Optional. The configuration to use for the run per
	// persona.
	PersonaRunConfigs []*PersonaRunConfig `json:"personaRunConfigs,omitempty"`
	// RunCount: Optional. The number of times to run the evaluation. If not set,
	// the default value is 1 per golden, and 5 per scenario.
	RunCount int64 `json:"runCount,omitempty"`
	// ScheduledEvaluationRun: Optional. The resource name of the
	// `ScheduledEvaluationRun` that is triggering this evaluation run. If this
	// field is set, the `scheduled_evaluation_run` field on the created
	// `EvaluationRun` resource will be populated from this value. Format:
	// `projects/{project}/locations/{location}/apps/{app}/scheduledEvaluationRuns/{
	// scheduled_evaluation_run}`
	ScheduledEvaluationRun string `json:"scheduledEvaluationRun,omitempty"`
	// ForceSendFields is a list of field names (e.g. "App") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "App") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RunSessionRequest: Request message for SessionService.RunSession.
type RunSessionRequest struct {
	// Config: Required. The configuration for the session.
	Config *SessionConfig `json:"config,omitempty"`
	// Inputs: Required. Inputs for the session.
	Inputs []*SessionInput `json:"inputs,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Config") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Config") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// RunSessionResponse: Response message for SessionService.RunSession.
type RunSessionResponse struct {
	// Outputs: Outputs for the session.
	Outputs []*SessionOutput `json:"outputs,omitempty"`

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

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

// ScheduledEvaluationRun: Represents a scheduled evaluation run configuration.
type ScheduledEvaluationRun struct {
	// Active: Optional. Whether this config is active
	Active bool `json:"active,omitempty"`
	// CreateTime: Output only. Timestamp when the scheduled evaluation run was
	// created.
	CreateTime string `json:"createTime,omitempty"`
	// CreatedBy: Output only. The user who created the scheduled evaluation run.
	CreatedBy string `json:"createdBy,omitempty"`
	// Description: Optional. User-defined description of the scheduled evaluation
	// run.
	Description string `json:"description,omitempty"`
	// DisplayName: Required. User-defined display name of the scheduled evaluation
	// run config.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Output only. Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// LastCompletedRun: Output only. The last successful EvaluationRun of this
	// scheduled execution. Format:
	// `projects/{project}/locations/{location}/apps/{app}/evaluationRuns/{evaluatio
	// nRun}`
	LastCompletedRun string `json:"lastCompletedRun,omitempty"`
	// LastUpdatedBy: Output only. The user who last updated the evaluation.
	LastUpdatedBy string `json:"lastUpdatedBy,omitempty"`
	// Name: Identifier. The unique identifier of the scheduled evaluation run
	// config. Format:
	// projects/{projectId}/locations/{locationId}/apps/{appId}/scheduledEvaluationR
	// uns/{scheduledEvaluationRunId}
	Name string `json:"name,omitempty"`
	// NextScheduledExecutionTime: Output only. The next time this is scheduled to
	// execute
	NextScheduledExecutionTime string `json:"nextScheduledExecutionTime,omitempty"`
	// Request: Required. The RunEvaluationRequest to schedule
	Request *RunEvaluationRequest `json:"request,omitempty"`
	// SchedulingConfig: Required. Configuration for the timing and frequency with
	// which to execute the evaluations.
	SchedulingConfig *ScheduledEvaluationRunSchedulingConfig `json:"schedulingConfig,omitempty"`
	// TotalExecutions: Output only. The total number of times this run has been
	// executed
	TotalExecutions int64 `json:"totalExecutions,omitempty"`
	// UpdateTime: Output only. Timestamp when the evaluation 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. "Active") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Active") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ScheduledEvaluationRunSchedulingConfig: Eval scheduling configuration
// details
type ScheduledEvaluationRunSchedulingConfig struct {
	// DaysOfWeek: Optional. The days of the week to run the eval. Applicable only
	// for Weekly and Biweekly frequencies. 1 is Monday, 2 is Tuesday, ..., 7 is
	// Sunday.
	DaysOfWeek []int64 `json:"daysOfWeek,omitempty"`
	// Frequency: Required. The frequency with which to run the eval
	//
	// Possible values:
	//   "FREQUENCY_UNSPECIFIED" - The frequency is unspecified.
	//   "NONE" - Indicates a one-time scheduled run that should not repeat
	//   "DAILY" - Run the evaluation daily.
	//   "WEEKLY" - Run the evaluation weekly.
	//   "BIWEEKLY" - Run the evaluation biweekly.
	Frequency string `json:"frequency,omitempty"`
	// StartTime: Required. Timestamp when the eval should start.
	StartTime string `json:"startTime,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DaysOfWeek") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DaysOfWeek") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Schema: Represents a select subset of an OpenAPI 3.0 schema object.
type Schema struct {
	// AdditionalProperties: Optional. Can either be a boolean or an object,
	// controls the presence of additional properties.
	AdditionalProperties *Schema `json:"additionalProperties,omitempty"`
	// AnyOf: Optional. The value should be validated against any (one or more) of
	// the subschemas in the list.
	AnyOf []*Schema `json:"anyOf,omitempty"`
	// Default: Optional. Default value of the data.
	Default interface{} `json:"default,omitempty"`
	// Defs: Optional. A map of definitions for use by `ref`. Only allowed at the
	// root of the schema.
	Defs map[string]Schema `json:"defs,omitempty"`
	// Description: Optional. The description of the data.
	Description string `json:"description,omitempty"`
	// Enum: Optional. Possible values of the element of primitive type with enum
	// format. Examples: 1. We can define direction as : {type:STRING, format:enum,
	// enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as
	// : {type:INTEGER, format:enum, enum:["101", "201", "301"]}
	Enum []string `json:"enum,omitempty"`
	// Items: Optional. Schema of the elements of Type.ARRAY.
	Items *Schema `json:"items,omitempty"`
	// MaxItems: Optional. Maximum number of the elements for Type.ARRAY.
	MaxItems int64 `json:"maxItems,omitempty,string"`
	// Maximum: Optional. Maximum value for Type.INTEGER and Type.NUMBER.
	Maximum float64 `json:"maximum,omitempty"`
	// MinItems: Optional. Minimum number of the elements for Type.ARRAY.
	MinItems int64 `json:"minItems,omitempty,string"`
	// Minimum: Optional. Minimum value for Type.INTEGER and Type.NUMBER.
	Minimum float64 `json:"minimum,omitempty"`
	// Nullable: Optional. Indicates if the value may be null.
	Nullable bool `json:"nullable,omitempty"`
	// PrefixItems: Optional. Schemas of initial elements of Type.ARRAY.
	PrefixItems []*Schema `json:"prefixItems,omitempty"`
	// Properties: Optional. Properties of Type.OBJECT.
	Properties map[string]Schema `json:"properties,omitempty"`
	// Ref: Optional. Allows indirect references between schema nodes. The value
	// should be a valid reference to a child of the root `defs`. For example, the
	// following schema defines a reference to a schema node named "Pet": ``` type:
	// object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties:
	// name: type: string ``` The value of the "pet" property is a reference to the
	// schema node named "Pet". See details in
	// https://json-schema.org/understanding-json-schema/structuring.
	Ref string `json:"ref,omitempty"`
	// Required: Optional. Required properties of Type.OBJECT.
	Required []string `json:"required,omitempty"`
	// Title: Optional. The title of the schema.
	Title string `json:"title,omitempty"`
	// Type: Required. The type of the data.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Type unspecified.
	//   "STRING" - String type.
	//   "INTEGER" - Integer type.
	//   "NUMBER" - Number type.
	//   "BOOLEAN" - Boolean type.
	//   "OBJECT" - Object type.
	//   "ARRAY" - Array type.
	Type string `json:"type,omitempty"`
	// UniqueItems: Optional. Indicate the items in the array must be unique. Only
	// applies to TYPE.ARRAY.
	UniqueItems bool `json:"uniqueItems,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AdditionalProperties") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AdditionalProperties") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

func (s *Schema) UnmarshalJSON(data []byte) error {
	type NoMethod Schema
	var s1 struct {
		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.Maximum = float64(s1.Maximum)
	s.Minimum = float64(s1.Minimum)
	return nil
}

// SecuritySettings: Project/Location level security settings for CES.
type SecuritySettings struct {
	// CreateTime: Output only. Create time of the security settings.
	CreateTime string `json:"createTime,omitempty"`
	// EndpointControlPolicy: Optional. Endpoint control related settings.
	EndpointControlPolicy *EndpointControlPolicy `json:"endpointControlPolicy,omitempty"`
	// Etag: Output only. Etag of the security settings.
	Etag string `json:"etag,omitempty"`
	// Name: Identifier. The unique identifier of the security settings. Format:
	// `projects/{project}/locations/{location}/securitySettings`
	Name string `json:"name,omitempty"`
	// UpdateTime: Output only. Last update time of the security settings.
	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. "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 SecuritySettings) MarshalJSON() ([]byte, error) {
	type NoMethod SecuritySettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ServiceAccountAuthConfig: Configurations for authentication using a custom
// service account.
type ServiceAccountAuthConfig struct {
	// Scopes: Optional. The OAuth scopes to grant. If not specified, the default
	// scope `https://www.googleapis.com/auth/cloud-platform` is used.
	Scopes []string `json:"scopes,omitempty"`
	// ServiceAccount: Required. The email address of the service account used for
	// authentication. CES uses this service account to exchange an access token
	// and the access token is then sent in the `Authorization` header of the
	// request. The service account must have the
	// `roles/iam.serviceAccountTokenCreator` role granted to the CES service agent
	// `service-@gcp-sa-ces.iam.gserviceaccount.com`.
	ServiceAccount string `json:"serviceAccount,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Scopes") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Scopes") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ServiceAgentIdTokenAuthConfig: Configurations for authentication with ID
// token (https://cloud.google.com/docs/authentication/token-types#id)
// generated from service agent.
type ServiceAgentIdTokenAuthConfig struct {
}

// ServiceDirectoryConfig: Configuration for tools using Service Directory.
type ServiceDirectoryConfig struct {
	// Service: Required. The name of Service Directory
	// (https://cloud.google.com/service-directory) service. Format:
	// `projects/{project}/locations/{location}/namespaces/{namespace}/services/{ser
	// vice}`. Location of the service directory must be the same as the location
	// of the app.
	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 ServiceDirectoryConfig) MarshalJSON() ([]byte, error) {
	type NoMethod ServiceDirectoryConfig
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SessionConfig: The configuration for the session.
type SessionConfig struct {
	// Deployment: Optional. The deployment of the app to use for the session.
	// Format:
	// `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}`
	Deployment string `json:"deployment,omitempty"`
	// EnableTextStreaming: Optional. Whether to enable streaming text outputs from
	// the model. By default, text outputs from the model are collected before
	// sending to the client. NOTE: This is only supported for text (non-voice)
	// sessions via StreamRunSession or BidiRunSession.
	EnableTextStreaming bool `json:"enableTextStreaming,omitempty"`
	// EntryAgent: Optional. The entry agent to handle the session. If not
	// specified, the session will be handled by the root agent of the app. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	EntryAgent string `json:"entryAgent,omitempty"`
	// HistoricalContexts: Optional. The historical context of the session,
	// including user inputs, agent responses, and other messages. Typically, CES
	// agent would manage session automatically so client doesn't need to
	// explicitly populate this field. However, client can optionally override the
	// historical contexts to force the session start from certain state.
	HistoricalContexts []*Message `json:"historicalContexts,omitempty"`
	// InputAudioConfig: Optional. Configuration for processing the input audio.
	InputAudioConfig *InputAudioConfig `json:"inputAudioConfig,omitempty"`
	// OutputAudioConfig: Optional. Configuration for generating the output audio.
	OutputAudioConfig *OutputAudioConfig `json:"outputAudioConfig,omitempty"`
	// RemoteDialogflowQueryParameters: Optional. QueryParameters
	// (https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#queryparameters)
	// to send to the remote Dialogflow
	// (https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
	// agent when the session control is transferred to the remote agent.
	RemoteDialogflowQueryParameters *SessionConfigRemoteDialogflowQueryParameters `json:"remoteDialogflowQueryParameters,omitempty"`
	// TimeZone: Optional. The time zone of the user. If provided, the agent will
	// use the time zone for date and time related variables. Otherwise, the agent
	// will use the time zone specified in the App.time_zone_settings. The format
	// is the IANA Time Zone Database time zone, e.g. "America/Los_Angeles".
	TimeZone string `json:"timeZone,omitempty"`
	// UseToolFakes: Optional. Whether to use tool fakes for the session. If this
	// field is set, the agent will attempt use tool fakes instead of calling the
	// real tools.
	UseToolFakes bool `json:"useToolFakes,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Deployment") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Deployment") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SessionConfigRemoteDialogflowQueryParameters: QueryParameters
// (https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#queryparameters)
// to send to the remote Dialogflow
// (https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)
// agent when the session control is transferred to the remote agent.
type SessionConfigRemoteDialogflowQueryParameters struct {
	// EndUserMetadata: Optional. The end user metadata to be sent in
	// QueryParameters
	// (https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#queryparameters).
	EndUserMetadata googleapi.RawMessage `json:"endUserMetadata,omitempty"`
	// Payload: Optional. The payload to be sent in QueryParameters
	// (https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#queryparameters).
	Payload googleapi.RawMessage `json:"payload,omitempty"`
	// WebhookHeaders: Optional. The HTTP headers to be sent as webhook_headers in
	// QueryParameters
	// (https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#queryparameters).
	WebhookHeaders map[string]string `json:"webhookHeaders,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 SessionConfigRemoteDialogflowQueryParameters) MarshalJSON() ([]byte, error) {
	type NoMethod SessionConfigRemoteDialogflowQueryParameters
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// SessionInput: Input for the session.
type SessionInput struct {
	// Audio: Optional. Audio data from the end user.
	Audio string `json:"audio,omitempty"`
	// Blob: Optional. Blob data from the end user.
	Blob *Blob `json:"blob,omitempty"`
	// Dtmf: Optional. DTMF digits from the end user.
	Dtmf string `json:"dtmf,omitempty"`
	// Event: Optional. Event input.
	Event *Event `json:"event,omitempty"`
	// Image: Optional. Image data from the end user.
	Image *Image `json:"image,omitempty"`
	// Text: Optional. Text data from the end user.
	Text string `json:"text,omitempty"`
	// ToolResponses: Optional. Execution results for the tool calls from the
	// client.
	ToolResponses *ToolResponses `json:"toolResponses,omitempty"`
	// Variables: Optional. Contextual variables for the session, keyed by name.
	// Only variables declared in the app will be used by the CES agent.
	// Unrecognized variables will still be sent to the Dialogflow agent as
	// additional session parameters.
	Variables googleapi.RawMessage `json:"variables,omitempty"`
	// WillContinue: Optional. A flag to indicate if the current message is a
	// fragment of a larger input in the bidi streaming session. When set to
	// `true`, the agent defers processing until it receives a subsequent message
	// where `will_continue` is `false`, or until the system detects an endpoint in
	// the audio input. NOTE: This field does not apply to audio and DTMF inputs,
	// as they are always processed automatically based on the endpointing signal.
	WillContinue bool `json:"willContinue,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audio") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audio") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SessionOutput: Output for the session.
type SessionOutput struct {
	// Audio: Output audio from the CES agent.
	Audio string `json:"audio,omitempty"`
	// Citations: Citations that provide the source information for the agent's
	// generated text.
	Citations *Citations `json:"citations,omitempty"`
	// DiagnosticInfo: Optional. Diagnostic information contains execution details
	// during the processing of the input. Only populated in the last SessionOutput
	// (with `turn_completed=true`) for each turn.
	DiagnosticInfo *SessionOutputDiagnosticInfo `json:"diagnosticInfo,omitempty"`
	// EndSession: Indicates the session has ended.
	EndSession *EndSession `json:"endSession,omitempty"`
	// GoogleSearchSuggestions: The suggestions returned from Google Search as a
	// result of invoking the GoogleSearchTool.
	GoogleSearchSuggestions *GoogleSearchSuggestions `json:"googleSearchSuggestions,omitempty"`
	// Payload: Custom payload with structured output from the CES agent.
	Payload googleapi.RawMessage `json:"payload,omitempty"`
	// Text: Output text from the CES agent.
	Text string `json:"text,omitempty"`
	// ToolCalls: Request for the client to execute the tools.
	ToolCalls *ToolCalls `json:"toolCalls,omitempty"`
	// TurnCompleted: If true, the CES agent has detected the end of the current
	// conversation turn and will provide no further output for this turn.
	TurnCompleted bool `json:"turnCompleted,omitempty"`
	// TurnIndex: Indicates the sequential order of conversation turn to which this
	// output belongs to, starting from 1.
	TurnIndex int64 `json:"turnIndex,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Audio") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Audio") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SessionOutputDiagnosticInfo: Contains execution details during the
// processing.
type SessionOutputDiagnosticInfo struct {
	// Messages: List of the messages that happened during the processing.
	Messages []*Message `json:"messages,omitempty"`
	// RootSpan: A trace of the entire request processing, represented as a root
	// span. This span can contain nested child spans for specific operations.
	RootSpan *Span `json:"rootSpan,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Messages") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Messages") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Span: A span is a unit of work or a single operation during the request
// processing.
type Span struct {
	// Attributes: Output only. Key-value attributes associated with the span.
	Attributes googleapi.RawMessage `json:"attributes,omitempty"`
	// ChildSpans: Output only. The child spans that are nested under this span.
	ChildSpans []*Span `json:"childSpans,omitempty"`
	// Duration: Output only. The duration of the span.
	Duration string `json:"duration,omitempty"`
	// EndTime: Output only. The end time of the span.
	EndTime string `json:"endTime,omitempty"`
	// Name: Output only. The name of the span.
	Name string `json:"name,omitempty"`
	// StartTime: Output only. The start time of the span.
	StartTime string `json:"startTime,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 Span) MarshalJSON() ([]byte, error) {
	type NoMethod Span
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// Status: The `Status` type defines a logical error model that is suitable for
// different programming environments, including REST APIs and RPC APIs. It is
// used by gRPC (https://github.com/grpc). Each `Status` message contains three
// pieces of data: error code, error message, and error details. You can find
// out more about this error model and how to work with it in the API Design
// Guide (https://cloud.google.com/apis/design/errors).
type Status struct {
	// Code: The status code, which should be an enum value of google.rpc.Code.
	Code int64 `json:"code,omitempty"`
	// Details: A list of messages that carry the error details. There is a common
	// set of message types for APIs to use.
	Details []googleapi.RawMessage `json:"details,omitempty"`
	// Message: A developer-facing error message, which should be in English. Any
	// user-facing error message should be localized and sent in the
	// google.rpc.Status.details field, or localized by the client.
	Message string `json:"message,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Code") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// SynthesizeSpeechConfig: Configuration for how the agent response should be
// synthesized.
type SynthesizeSpeechConfig struct {
	// SpeakingRate: Optional. The speaking rate/speed in the range [0.25, 2.0].
	// 1.0 is the normal native speed supported by the specific voice. 2.0 is twice
	// as fast, and 0.5 is half as fast. Values outside of the range [0.25, 2.0]
	// will return an error.
	SpeakingRate float64 `json:"speakingRate,omitempty"`
	// Voice: Optional. The name of the voice. If not set, the service will choose
	// a voice based on the other parameters such as language_code. For the list of
	// available voices, please refer to Supported voices and languages
	// (https://cloud.google.com/text-to-speech/docs/voices) from Cloud
	// Text-to-Speech.
	Voice string `json:"voice,omitempty"`
	// ForceSendFields is a list of field names (e.g. "SpeakingRate") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "SpeakingRate") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

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

// SystemTool: Pre-defined system tool.
type SystemTool struct {
	// Description: Output only. The description of the system tool.
	Description string `json:"description,omitempty"`
	// Name: Required. The name of the system tool.
	Name string `json:"name,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 SystemTool) MarshalJSON() ([]byte, error) {
	type NoMethod SystemTool
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TestPersonaVoiceRequest: Request message for
// EvaluationService.TestPersonaVoice.
type TestPersonaVoiceRequest struct {
	// PersonaId: Required. The persona ID to test the voice for. Also accepts
	// "default".
	PersonaId string `json:"personaId,omitempty"`
	// Text: Required. The text to test the voice for.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "PersonaId") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "PersonaId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TestPersonaVoiceResponse: Response message for
// EvaluationService.TestPersonaVoice.
type TestPersonaVoiceResponse struct {
	// Audio: The audio data bytes of the synthesized voice.
	Audio string `json:"audio,omitempty"`

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

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

// TimeZoneSettings: TimeZone settings of the app.
type TimeZoneSettings struct {
	// TimeZone: Optional. The time zone of the app from the time zone database
	// (https://www.iana.org/time-zones), e.g., America/Los_Angeles, Europe/Paris.
	TimeZone string `json:"timeZone,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 TimeZoneSettings) MarshalJSON() ([]byte, error) {
	type NoMethod TimeZoneSettings
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// TlsConfig: The TLS configuration.
type TlsConfig struct {
	// CaCerts: Required. Specifies a list of allowed custom CA certificates for
	// HTTPS verification.
	CaCerts []*TlsConfigCaCert `json:"caCerts,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CaCerts") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CaCerts") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TlsConfigCaCert: The CA certificate.
type TlsConfigCaCert struct {
	// Cert: Required. The allowed custom CA certificates (in DER format) for HTTPS
	// verification. This overrides the default SSL trust store. If this is empty
	// or unspecified, CES will use Google's default trust store to verify
	// certificates. N.B. Make sure the HTTPS server certificates are signed with
	// "subject alt name". For instance a certificate can be self-signed using the
	// following command: ``` openssl x509 -req -days 200 -in example.com.csr \
	// -signkey example.com.key \ -out example.com.crt \ -extfile <(printf
	// "\nsubjectAltName='DNS:www.example.com'") ```
	Cert string `json:"cert,omitempty"`
	// DisplayName: Required. The name of the allowed custom CA certificates. This
	// can be used to disambiguate the custom CA certificates.
	DisplayName string `json:"displayName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Cert") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Cert") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Tool: A tool represents an action that the CES agent can take to achieve
// certain goals.
type Tool struct {
	// AgentTool: Optional. The agent tool.
	AgentTool *AgentTool `json:"agentTool,omitempty"`
	// ClientFunction: Optional. The client function.
	ClientFunction *ClientFunction `json:"clientFunction,omitempty"`
	// ConnectorTool: Optional. The Integration Connector tool.
	ConnectorTool *ConnectorTool `json:"connectorTool,omitempty"`
	// CreateTime: Output only. Timestamp when the tool was created.
	CreateTime string `json:"createTime,omitempty"`
	// DataStoreTool: Optional. The data store tool.
	DataStoreTool *DataStoreTool `json:"dataStoreTool,omitempty"`
	// DisplayName: Output only. The display name of the tool, derived based on the
	// tool's type. For example, display name of a ClientFunction is derived from
	// its `name` property.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: Etag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// ExecutionType: Optional. The execution type of the tool.
	//
	// Possible values:
	//   "EXECUTION_TYPE_UNSPECIFIED" - The execution type is unspecified. Defaults
	// to `SYNCHRONOUS` if unspecified.
	//   "SYNCHRONOUS" - The tool is executed synchronously. The session is blocked
	// until the tool returns.
	//   "ASYNCHRONOUS" - The tool is executed asynchronously. The session will
	// continue while the tool is executing.
	ExecutionType string `json:"executionType,omitempty"`
	// FileSearchTool: Optional. The file search tool.
	FileSearchTool *FileSearchTool `json:"fileSearchTool,omitempty"`
	// GeneratedSummary: Output only. If the tool is generated by the LLM
	// assistant, this field contains a descriptive summary of the generation.
	GeneratedSummary string `json:"generatedSummary,omitempty"`
	// GoogleSearchTool: Optional. The google search tool.
	GoogleSearchTool *GoogleSearchTool `json:"googleSearchTool,omitempty"`
	// McpTool: Optional. The MCP tool. An MCP tool cannot be created or updated
	// directly and is managed by the MCP toolset.
	McpTool *McpTool `json:"mcpTool,omitempty"`
	// Name: Identifier. The resource name of the tool. Format: *
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` for
	// standalone tools. *
	// `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tools/
	// {tool}` for tools retrieved from a toolset. These tools are dynamic and
	// output-only; they cannot be referenced directly where a tool is expected.
	Name string `json:"name,omitempty"`
	// OpenApiTool: Optional. The open API tool.
	OpenApiTool *OpenApiTool `json:"openApiTool,omitempty"`
	// PythonFunction: Optional. The python function tool.
	PythonFunction *PythonFunction `json:"pythonFunction,omitempty"`
	// RemoteAgentTool: Optional. The remote agent tool.
	RemoteAgentTool *RemoteAgentTool `json:"remoteAgentTool,omitempty"`
	// SystemTool: Optional. The system tool.
	SystemTool *SystemTool `json:"systemTool,omitempty"`
	// Timeout: Optional. The timeout for the tool execution. If not set, the
	// default timeout is 30 seconds for `SYNCHRONOUS` tools and 60 seconds for
	// `ASYNCHRONOUS` tools.
	Timeout string `json:"timeout,omitempty"`
	// ToolFakeConfig: Optional. Configuration for tool behavior in fake mode.
	ToolFakeConfig *ToolFakeConfig `json:"toolFakeConfig,omitempty"`
	// UpdateTime: Output only. Timestamp when the tool was last updated.
	UpdateTime string `json:"updateTime,omitempty"`
	// WidgetTool: Optional. The widget tool.
	WidgetTool *WidgetTool `json:"widgetTool,omitempty"`

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

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

// ToolCall: Request for the client or the agent to execute the specified tool.
type ToolCall struct {
	// Args: Optional. The input parameters and values for the tool in JSON object
	// format.
	Args googleapi.RawMessage `json:"args,omitempty"`
	// DisplayName: Output only. Display name of the tool.
	DisplayName string `json:"displayName,omitempty"`
	// Id: Optional. The unique identifier of the tool call. If populated, the
	// client should return the execution result with the matching ID in
	// ToolResponse.
	Id string `json:"id,omitempty"`
	// Tool: Optional. The name of the tool to execute. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: Optional. The toolset tool to execute.
	ToolsetTool *ToolsetTool `json:"toolsetTool,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Args") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Args") to include in API requests
	// with the JSON null value. By default, fields with empty values are omitted
	// from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ToolCalls: Request for the client to execute the tools and return the
// execution results before continuing the session.
type ToolCalls struct {
	// ToolCalls: Optional. The list of tool calls to execute.
	ToolCalls []*ToolCall `json:"toolCalls,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolCalls") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolCalls") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ToolFakeConfig: Configuration for tool behavior in fake mode.
type ToolFakeConfig struct {
	// CodeBlock: Optional. Code block which will be executed instead of a real
	// tool call.
	CodeBlock *CodeBlock `json:"codeBlock,omitempty"`
	// EnableFakeMode: Optional. Whether the tool is using fake mode.
	EnableFakeMode bool `json:"enableFakeMode,omitempty"`
	// ForceSendFields is a list of field names (e.g. "CodeBlock") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "CodeBlock") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ToolResponse: The execution result of a specific tool from the client or the
// agent.
type ToolResponse struct {
	// DisplayName: Output only. Display name of the tool.
	DisplayName string `json:"displayName,omitempty"`
	// Id: Optional. The matching ID of the tool call the response is for.
	Id string `json:"id,omitempty"`
	// Response: Required. The tool execution result in JSON object format. Use
	// "output" key to specify tool response and "error" key to specify error
	// details (if any). If "output" and "error" keys are not specified, then whole
	// "response" is treated as tool execution result.
	Response googleapi.RawMessage `json:"response,omitempty"`
	// Tool: Optional. The name of the tool to execute. Format:
	// `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
	Tool string `json:"tool,omitempty"`
	// ToolsetTool: Optional. The toolset tool that got executed.
	ToolsetTool *ToolsetTool `json:"toolsetTool,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 ToolResponse) MarshalJSON() ([]byte, error) {
	type NoMethod ToolResponse
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// ToolResponses: Execution results for the requested tool calls from the
// client.
type ToolResponses struct {
	// ToolResponses: Optional. The list of tool execution results.
	ToolResponses []*ToolResponse `json:"toolResponses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolResponses") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolResponses") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// Toolset: A toolset represents a group of dynamically managed tools that can
// be used by the agent.
type Toolset struct {
	// ConnectorToolset: Optional. A toolset that generates tools from an
	// Integration Connectors Connection.
	ConnectorToolset *ConnectorToolset `json:"connectorToolset,omitempty"`
	// CreateTime: Output only. Timestamp when the toolset was created.
	CreateTime string `json:"createTime,omitempty"`
	// Description: Optional. The description of the toolset.
	Description string `json:"description,omitempty"`
	// DisplayName: Optional. The display name of the toolset. Must be unique
	// within the same app.
	DisplayName string `json:"displayName,omitempty"`
	// Etag: ETag used to ensure the object hasn't changed during a
	// read-modify-write operation. If the etag is empty, the update will overwrite
	// any concurrent changes.
	Etag string `json:"etag,omitempty"`
	// ExecutionType: Optional. The execution type of the tools in the toolset.
	//
	// Possible values:
	//   "EXECUTION_TYPE_UNSPECIFIED" - The execution type is unspecified. Defaults
	// to `SYNCHRONOUS` if unspecified.
	//   "SYNCHRONOUS" - The tool is executed synchronously. The session is blocked
	// until the tool returns.
	//   "ASYNCHRONOUS" - The tool is executed asynchronously. The session will
	// continue while the tool is executing.
	ExecutionType string `json:"executionType,omitempty"`
	// McpToolset: Optional. A toolset that contains a list of tools that are
	// offered by the MCP server.
	McpToolset *McpToolset `json:"mcpToolset,omitempty"`
	// Name: Identifier. The unique identifier of the toolset. Format:
	// `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
	Name string `json:"name,omitempty"`
	// OpenApiToolset: Optional. A toolset that contains a list of tools that are
	// defined by an OpenAPI schema.
	OpenApiToolset *OpenApiToolset `json:"openApiToolset,omitempty"`
	// ToolFakeConfig: Optional. Configuration for tools behavior in fake mode.
	ToolFakeConfig *ToolFakeConfig `json:"toolFakeConfig,omitempty"`
	// UpdateTime: Output only. Timestamp when the toolset 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. "ConnectorToolset") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ConnectorToolset") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// ToolsetTool: A tool that is created from a toolset.
type ToolsetTool struct {
	// ToolId: Optional. The tool ID to filter the tools to retrieve the schema
	// for.
	ToolId string `json:"toolId,omitempty"`
	// Toolset: Required. The resource name of the Toolset from which this tool is
	// derived. Format:
	// `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`
	Toolset string `json:"toolset,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ToolId") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ToolId") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TransferRule: Rule for transferring to a specific agent.
type TransferRule struct {
	// ChildAgent: Required. The resource name of the child agent the rule applies
	// to. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	ChildAgent string `json:"childAgent,omitempty"`
	// DeterministicTransfer: Optional. A rule that immediately transfers to the
	// target agent when the condition is met.
	DeterministicTransfer *TransferRuleDeterministicTransfer `json:"deterministicTransfer,omitempty"`
	// Direction: Required. The direction of the transfer.
	//
	// Possible values:
	//   "DIRECTION_UNSPECIFIED" - Unspecified direction.
	//   "PARENT_TO_CHILD" - Transfer from the parent agent to the child agent.
	//   "CHILD_TO_PARENT" - Transfer from the child agent to the parent agent.
	Direction string `json:"direction,omitempty"`
	// DisablePlannerTransfer: Optional. Rule that prevents the planner from
	// transferring to the target agent.
	DisablePlannerTransfer *TransferRuleDisablePlannerTransfer `json:"disablePlannerTransfer,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ChildAgent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ChildAgent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TransferRuleDeterministicTransfer: Deterministic transfer rule. When the
// condition evaluates to true, the transfer occurs.
type TransferRuleDeterministicTransfer struct {
	// ExpressionCondition: Optional. A rule that evaluates a session state
	// condition. If the condition evaluates to true, the transfer occurs.
	ExpressionCondition *ExpressionCondition `json:"expressionCondition,omitempty"`
	// PythonCodeCondition: Optional. A rule that uses Python code block to
	// evaluate the conditions. If the condition evaluates to true, the transfer
	// occurs.
	PythonCodeCondition *PythonCodeCondition `json:"pythonCodeCondition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpressionCondition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpressionCondition") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TransferRuleDisablePlannerTransfer: A rule that prevents the planner from
// transferring to the target agent.
type TransferRuleDisablePlannerTransfer struct {
	// ExpressionCondition: Required. If the condition evaluates to true, planner
	// will not be allowed to transfer to the target agent.
	ExpressionCondition *ExpressionCondition `json:"expressionCondition,omitempty"`
	// ForceSendFields is a list of field names (e.g. "ExpressionCondition") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "ExpressionCondition") to include
	// in API requests with the JSON null value. By default, fields with empty
	// values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TriggerAction: Action that is taken when a certain precondition is met.
type TriggerAction struct {
	// GenerativeAnswer: Optional. Respond with a generative answer.
	GenerativeAnswer *TriggerActionGenerativeAnswer `json:"generativeAnswer,omitempty"`
	// RespondImmediately: Optional. Immediately respond with a preconfigured
	// response.
	RespondImmediately *TriggerActionRespondImmediately `json:"respondImmediately,omitempty"`
	// TransferAgent: Optional. Transfer the conversation to a different agent.
	TransferAgent *TriggerActionTransferAgent `json:"transferAgent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "GenerativeAnswer") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "GenerativeAnswer") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TriggerActionGenerativeAnswer: The agent will immediately respond with a
// generative answer.
type TriggerActionGenerativeAnswer struct {
	// Prompt: Required. The prompt to use for the generative answer.
	Prompt string `json:"prompt,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Prompt") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Prompt") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TriggerActionRespondImmediately: The agent will immediately respond with a
// preconfigured response.
type TriggerActionRespondImmediately struct {
	// Responses: Required. The canned responses for the agent to choose from. The
	// response is chosen randomly.
	Responses []*TriggerActionResponse `json:"responses,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Responses") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Responses") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TriggerActionResponse: Represents a response from the agent.
type TriggerActionResponse struct {
	// Disabled: Optional. Whether the response is disabled. Disabled responses are
	// not used by the agent.
	Disabled bool `json:"disabled,omitempty"`
	// Text: Required. Text for the agent to respond with.
	Text string `json:"text,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Disabled") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Disabled") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// TriggerActionTransferAgent: The agent will transfer the conversation to a
// different agent.
type TriggerActionTransferAgent struct {
	// Agent: Required. The name of the agent to transfer the conversation to. The
	// agent must be in the same app as the current agent. Format:
	// `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`
	Agent string `json:"agent,omitempty"`
	// ForceSendFields is a list of field names (e.g. "Agent") to unconditionally
	// include in API requests. By default, fields with empty or default values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "Agent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// UploadEvaluationAudioRequest: Request message for
// EvaluationService.UploadEvaluationAudio.
type UploadEvaluationAudioRequest struct {
	// AudioContent: Required. The raw audio bytes. The format of the audio must be
	// single-channel LINEAR16 with a sample rate of 16kHz (default
	// InputAudioConfig).
	AudioContent string `json:"audioContent,omitempty"`
	// PreviousAudioGcsUri: Optional. The Google Cloud Storage URI of the
	// previously uploaded audio file to be deleted. Format: `gs:///`
	PreviousAudioGcsUri string `json:"previousAudioGcsUri,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AudioContent") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AudioContent") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// UploadEvaluationAudioResponse: Response message for
// EvaluationService.UploadEvaluationAudio.
type UploadEvaluationAudioResponse struct {
	// AudioGcsUri: The Google Cloud Storage URI where the uploaded audio file is
	// stored. Format: `gs:///`
	AudioGcsUri string `json:"audioGcsUri,omitempty"`
	// Duration: The duration of the audio.
	Duration string `json:"duration,omitempty"`
	// Transcript: The transcript of the audio, generated by Cloud Speech-to-Text.
	Transcript string `json:"transcript,omitempty"`

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

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

// VpcScSettings: VPC-SC settings for the app.
type VpcScSettings struct {
	// AllowedOrigins: Optional. The allowed HTTP(s) origins that OpenAPI tools in
	// the App are able to directly call when VPC Service Controls are enabled.
	// These strings must match the origin exactly, including the port if
	// specified. For example, "https://example.com" or "https://example.com:443".
	// This list does not yet apply to Python tools that may make direct HTTP
	// calls.
	AllowedOrigins []string `json:"allowedOrigins,omitempty"`
	// ForceSendFields is a list of field names (e.g. "AllowedOrigins") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "AllowedOrigins") to include in
	// API requests with the JSON null value. By default, fields with empty values
	// are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WebSearchQuery: Represents a single web search query and its associated
// search uri.
type WebSearchQuery struct {
	// Query: The search query text.
	Query string `json:"query,omitempty"`
	// Uri: The URI to the Google Search results page for the query.
	Uri string `json:"uri,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 WebSearchQuery) MarshalJSON() ([]byte, error) {
	type NoMethod WebSearchQuery
	return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}

// WidgetTool: Represents a widget tool that the agent can invoke. When the
// tool is chosen by the agent, agent will return the widget to the client. The
// client is responsible for processing the widget and generating the next user
// query to continue the interaction with the agent.
type WidgetTool struct {
	// DataMapping: Optional. The mapping that defines how data from a source tool
	// is mapped to the widget's input parameters.
	DataMapping *WidgetToolDataMapping `json:"dataMapping,omitempty"`
	// Description: Optional. The description of the widget tool.
	Description string `json:"description,omitempty"`
	// Name: Required. The display name of the widget tool.
	Name string `json:"name,omitempty"`
	// Parameters: Optional. The input parameters of the widget tool.
	Parameters *Schema `json:"parameters,omitempty"`
	// TextResponseConfig: Optional. Configuration for always-included text
	// responses.
	TextResponseConfig *WidgetToolTextResponseConfig `json:"textResponseConfig,omitempty"`
	// UiConfig: Optional. Configuration for rendering the widget.
	UiConfig googleapi.RawMessage `json:"uiConfig,omitempty"`
	// WidgetType: Optional. The type of the widget tool. If not specified, the
	// default type will be CUSTOMIZED.
	//
	// Possible values:
	//   "WIDGET_TYPE_UNSPECIFIED" - Unspecified widget type.
	//   "CUSTOM" - Custom widget type.
	//   "PRODUCT_CAROUSEL" - Product carousel widget.
	//   "PRODUCT_DETAILS" - Product details widget.
	//   "QUICK_ACTIONS" - Quick actions widget.
	//   "PRODUCT_COMPARISON" - Product comparison widget.
	//   "ADVANCED_PRODUCT_DETAILS" - Advanced product details widget.
	//   "SHORT_FORM" - Short form widget.
	//   "OVERALL_SATISFACTION" - Overall satisfaction widget.
	//   "ORDER_SUMMARY" - Order summary widget.
	//   "APPOINTMENT_DETAILS" - Appointment details widget.
	//   "APPOINTMENT_SCHEDULER" - Appointment scheduler widget.
	//   "CONTACT_FORM" - Contact form widget.
	WidgetType string `json:"widgetType,omitempty"`
	// ForceSendFields is a list of field names (e.g. "DataMapping") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "DataMapping") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WidgetToolDataMapping: Configuration for mapping data from a source tool to
// the widget's input parameters.
type WidgetToolDataMapping struct {
	// FieldMappings: Optional. A map of widget input parameter fields to the
	// corresponding output fields of the source tool.
	FieldMappings map[string]string `json:"fieldMappings,omitempty"`
	// Mode: Optional. The mode of the data mapping.
	//
	// Possible values:
	//   "MODE_UNSPECIFIED" - Unspecified mode.
	//   "FIELD_MAPPING" - Use the `field_mappings` map for data transformation.
	//   "PYTHON_SCRIPT" - Use the `python_script` for data transformation.
	Mode string `json:"mode,omitempty"`
	// PythonFunction: Optional. Configuration for a Python function used to
	// transform the source tool's output into the widget's input format.
	PythonFunction *PythonFunction `json:"pythonFunction,omitempty"`
	// PythonScript: Deprecated: Use `python_function` instead.
	PythonScript string `json:"pythonScript,omitempty"`
	// SourceToolName: Optional. The resource name of the tool that provides the
	// data for the widget (e.g., a search tool or a custom function). Format:
	// `projects/{project}/locations/{location}/agents/{agent}/tools/{tool}`
	SourceToolName string `json:"sourceToolName,omitempty"`
	// ForceSendFields is a list of field names (e.g. "FieldMappings") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "FieldMappings") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

// WidgetToolTextResponseConfig: Configuration for the text response returned
// with the widget.
type WidgetToolTextResponseConfig struct {
	// StaticText: Optional. The static text response to return when type is
	// STATIC.
	StaticText string `json:"staticText,omitempty"`
	// TextResponseInstruction: Optional. Instruction for the LLM on how to
	// generate the text response. Used as the description for the text response
	// parameter if type is LLM_GENERATED.
	TextResponseInstruction string `json:"textResponseInstruction,omitempty"`
	// Type: Optional. The strategy for providing the text response.
	//
	// Possible values:
	//   "TYPE_UNSPECIFIED" - Unspecified type.
	//   "NONE" - The LLM dynamically decides whether to generate a text response
	// alongside the widget based on the conversation context.
	//   "LLM_GENERATED" - The LLM is explicitly required to generate a text
	// response.
	//   "STATIC" - A pre-defined static text response is always used.
	Type string `json:"type,omitempty"`
	// ForceSendFields is a list of field names (e.g. "StaticText") to
	// unconditionally include in API requests. By default, fields with empty or
	// default values are omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
	// details.
	ForceSendFields []string `json:"-"`
	// NullFields is a list of field names (e.g. "StaticText") to include in API
	// requests with the JSON null value. By default, fields with empty values are
	// omitted from API requests. See
	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
	NullFields []string `json:"-"`
}

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

type ProjectsLocationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets information about a location.
//
// - name: Resource name for the location.
func (r *ProjectsLocationsService) Get(name string) *ProjectsLocationsGetCall {
	c := &ProjectsLocationsGetCall{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 *ProjectsLocationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetCall {
	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 *ProjectsLocationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGetCall) Context(ctx context.Context) *ProjectsLocationsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGetCall) 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, "v1beta/{+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", "ces.projects.locations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Location.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsGetCall) Do(opts ...googleapi.CallOption) (*Location, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Location{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsGetSecuritySettingsCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// GetSecuritySettings: Retrieves the security settings for the project and
// location.
//
//   - name: The resource name of the security settings to retrieve. Format:
//     `projects/{project}/locations/{location}/securitySettings`.
func (r *ProjectsLocationsService) GetSecuritySettings(name string) *ProjectsLocationsGetSecuritySettingsCall {
	c := &ProjectsLocationsGetSecuritySettingsCall{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 *ProjectsLocationsGetSecuritySettingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetSecuritySettingsCall {
	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 *ProjectsLocationsGetSecuritySettingsCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetSecuritySettingsCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsGetSecuritySettingsCall) Context(ctx context.Context) *ProjectsLocationsGetSecuritySettingsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsGetSecuritySettingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsGetSecuritySettingsCall) 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, "v1beta/{+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", "ces.projects.locations.getSecuritySettings", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.getSecuritySettings" call.
// Any non-2xx status code is an error. Response headers are in either
// *SecuritySettings.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsGetSecuritySettingsCall) Do(opts ...googleapi.CallOption) (*SecuritySettings, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SecuritySettings{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.getSecuritySettings", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsListCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists information about the supported locations for this service. This
// method lists locations based on the resource scope provided in the
// ListLocationsRequest.name field: * **Global locations**: If `name` is empty,
// the method lists the public locations available to all projects. *
// **Project-specific locations**: If `name` follows the format
// `projects/{project}`, the method lists locations visible to that specific
// project. This includes public, private, or other project-specific locations
// enabled for the project. For gRPC and client library implementations, the
// resource name is passed as the `name` field. For direct service calls, the
// resource name is incorporated into the request path based on the specific
// service implementation and version.
//
// - name: The resource that owns the locations collection, if applicable.
func (r *ProjectsLocationsService) List(name string) *ProjectsLocationsListCall {
	c := &ProjectsLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// ExtraLocationTypes sets the optional parameter "extraLocationTypes": Do not
// use this field unless explicitly documented otherwise. This is primarily for
// internal usage.
func (c *ProjectsLocationsListCall) ExtraLocationTypes(extraLocationTypes ...string) *ProjectsLocationsListCall {
	c.urlParams_.SetMulti("extraLocationTypes", append([]string{}, extraLocationTypes...))
	return c
}

// Filter sets the optional parameter "filter": A filter to narrow down results
// to a preferred subset. The filtering language accepts strings like
// "displayName=tokyo", and is documented in more detail in AIP-160
// (https://google.aip.dev/160).
func (c *ProjectsLocationsListCall) Filter(filter string) *ProjectsLocationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// results to return. If not set, the service selects a default.
func (c *ProjectsLocationsListCall) PageSize(pageSize int64) *ProjectsLocationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token received
// from the `next_page_token` field in the response. Send that page token to
// receive the subsequent page.
func (c *ProjectsLocationsListCall) PageToken(pageToken string) *ProjectsLocationsListCall {
	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 *ProjectsLocationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsListCall {
	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 *ProjectsLocationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsListCall) Context(ctx context.Context) *ProjectsLocationsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsListCall) 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, "v1beta/{+name}/locations")
	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", "ces.projects.locations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListLocationsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsListCall) Do(opts ...googleapi.CallOption) (*ListLocationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListLocationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.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 *ProjectsLocationsListCall) Pages(ctx context.Context, f func(*ListLocationsResponse) 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 ProjectsLocationsUpdateSecuritySettingsCall struct {
	s                *Service
	nameid           string
	securitysettings *SecuritySettings
	urlParams_       gensupport.URLParams
	ctx_             context.Context
	header_          http.Header
}

// UpdateSecuritySettings: Updates the security settings for the project and
// location.
//
//   - name: Identifier. The unique identifier of the security settings. Format:
//     `projects/{project}/locations/{location}/securitySettings`.
func (r *ProjectsLocationsService) UpdateSecuritySettings(nameid string, securitysettings *SecuritySettings) *ProjectsLocationsUpdateSecuritySettingsCall {
	c := &ProjectsLocationsUpdateSecuritySettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.securitysettings = securitysettings
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsUpdateSecuritySettingsCall) UpdateMask(updateMask string) *ProjectsLocationsUpdateSecuritySettingsCall {
	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 *ProjectsLocationsUpdateSecuritySettingsCall) Fields(s ...googleapi.Field) *ProjectsLocationsUpdateSecuritySettingsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsUpdateSecuritySettingsCall) Context(ctx context.Context) *ProjectsLocationsUpdateSecuritySettingsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsUpdateSecuritySettingsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsUpdateSecuritySettingsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.securitysettings)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.updateSecuritySettings", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.updateSecuritySettings" call.
// Any non-2xx status code is an error. Response headers are in either
// *SecuritySettings.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsUpdateSecuritySettingsCall) Do(opts ...googleapi.CallOption) (*SecuritySettings, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &SecuritySettings{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.updateSecuritySettings", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsCreateCall struct {
	s          *Service
	parent     string
	app        *App
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new app in the given project and location.
//
// - parent: The resource name of the location to create an app in.
func (r *ProjectsLocationsAppsService) Create(parent string, app *App) *ProjectsLocationsAppsCreateCall {
	c := &ProjectsLocationsAppsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.app = app
	return c
}

// AppId sets the optional parameter "appId": The ID to use for the app, which
// will become the final component of the app's resource name. If not provided,
// a unique ID will be automatically assigned for the app.
func (c *ProjectsLocationsAppsCreateCall) AppId(appId string) *ProjectsLocationsAppsCreateCall {
	c.urlParams_.Set("appId", appId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.app)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/apps")
	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", "ces.projects.locations.apps.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified app.
//
// - name: The resource name of the app to delete.
func (r *ProjectsLocationsAppsService) Delete(name string) *ProjectsLocationsAppsDeleteCall {
	c := &ProjectsLocationsAppsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the app. If an
// etag is not provided, the deletion will overwrite any concurrent changes. If
// an etag is provided and does not match the current etag of the app, deletion
// will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsDeleteCall) Etag(etag string) *ProjectsLocationsAppsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsExecuteToolCall struct {
	s                  *Service
	parent             string
	executetoolrequest *ExecuteToolRequest
	urlParams_         gensupport.URLParams
	ctx_               context.Context
	header_            http.Header
}

// ExecuteTool: Executes the given tool with the given arguments.
//
//   - parent: The resource name of the app which the tool/toolset belongs to.
//     Format: `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) ExecuteTool(parent string, executetoolrequest *ExecuteToolRequest) *ProjectsLocationsAppsExecuteToolCall {
	c := &ProjectsLocationsAppsExecuteToolCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.executetoolrequest = executetoolrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsExecuteToolCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExecuteToolCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExecuteToolCall) Context(ctx context.Context) *ProjectsLocationsAppsExecuteToolCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExecuteToolCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExecuteToolCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.executetoolrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:executeTool")
	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", "ces.projects.locations.apps.executeTool", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.executeTool" call.
// Any non-2xx status code is an error. Response headers are in either
// *ExecuteToolResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsExecuteToolCall) Do(opts ...googleapi.CallOption) (*ExecuteToolResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ExecuteToolResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.executeTool", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsExportAppCall struct {
	s                *Service
	name             string
	exportapprequest *ExportAppRequest
	urlParams_       gensupport.URLParams
	ctx_             context.Context
	header_          http.Header
}

// ExportApp: Exports the specified app.
//
// - name: The resource name of the app to export.
func (r *ProjectsLocationsAppsService) ExportApp(name string, exportapprequest *ExportAppRequest) *ProjectsLocationsAppsExportAppCall {
	c := &ProjectsLocationsAppsExportAppCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.exportapprequest = exportapprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsExportAppCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExportAppCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExportAppCall) Context(ctx context.Context) *ProjectsLocationsAppsExportAppCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExportAppCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExportAppCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.exportapprequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}:exportApp")
	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", "ces.projects.locations.apps.exportApp", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.exportApp" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsExportAppCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.exportApp", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGenerateAppResourceCall struct {
	s                          *Service
	parent                     string
	generateappresourcerequest *GenerateAppResourceRequest
	urlParams_                 gensupport.URLParams
	ctx_                       context.Context
	header_                    http.Header
}

// GenerateAppResource: Generates specific resources (e.g. agent) in the app
// using LLM assistant.
//
// - parent: The resource name of the app to generate the resource for.
func (r *ProjectsLocationsAppsService) GenerateAppResource(parent string, generateappresourcerequest *GenerateAppResourceRequest) *ProjectsLocationsAppsGenerateAppResourceCall {
	c := &ProjectsLocationsAppsGenerateAppResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.generateappresourcerequest = generateappresourcerequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsGenerateAppResourceCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGenerateAppResourceCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGenerateAppResourceCall) Context(ctx context.Context) *ProjectsLocationsAppsGenerateAppResourceCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGenerateAppResourceCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGenerateAppResourceCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.generateappresourcerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:generateAppResource")
	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", "ces.projects.locations.apps.generateAppResource", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.generateAppResource" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGenerateAppResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.generateAppResource", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified app.
//
// - name: The resource name of the app to retrieve.
func (r *ProjectsLocationsAppsService) Get(name string) *ProjectsLocationsAppsGetCall {
	c := &ProjectsLocationsAppsGetCall{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 *ProjectsLocationsAppsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGetCall {
	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 *ProjectsLocationsAppsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *App.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGetCall) Do(opts ...googleapi.CallOption) (*App, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &App{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsImportAppCall struct {
	s                *Service
	parent           string
	importapprequest *ImportAppRequest
	urlParams_       gensupport.URLParams
	ctx_             context.Context
	header_          http.Header
}

// ImportApp: Imports the specified app.
//
// - parent: The parent resource name with the location of the app to import.
func (r *ProjectsLocationsAppsService) ImportApp(parent string, importapprequest *ImportAppRequest) *ProjectsLocationsAppsImportAppCall {
	c := &ProjectsLocationsAppsImportAppCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.importapprequest = importapprequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsImportAppCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsImportAppCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsImportAppCall) Context(ctx context.Context) *ProjectsLocationsAppsImportAppCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsImportAppCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsImportAppCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.importapprequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/apps:importApp")
	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", "ces.projects.locations.apps.importApp", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.importApp" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsImportAppCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.importApp", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsImportEvaluationsCall struct {
	s                        *Service
	parent                   string
	importevaluationsrequest *ImportEvaluationsRequest
	urlParams_               gensupport.URLParams
	ctx_                     context.Context
	header_                  http.Header
}

// ImportEvaluations: Imports evaluations into the app.
//
//   - parent: The app to import the evaluations into. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) ImportEvaluations(parent string, importevaluationsrequest *ImportEvaluationsRequest) *ProjectsLocationsAppsImportEvaluationsCall {
	c := &ProjectsLocationsAppsImportEvaluationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.importevaluationsrequest = importevaluationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsImportEvaluationsCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsImportEvaluationsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsImportEvaluationsCall) Context(ctx context.Context) *ProjectsLocationsAppsImportEvaluationsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsImportEvaluationsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsImportEvaluationsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.importevaluationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:importEvaluations")
	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", "ces.projects.locations.apps.importEvaluations", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.importEvaluations" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsImportEvaluationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.importEvaluations", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists apps in the given project and location.
//
// - parent: The resource name of the location to list apps from.
func (r *ProjectsLocationsAppsService) List(parent string) *ProjectsLocationsAppsListCall {
	c := &ProjectsLocationsAppsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the apps. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsListCall) Filter(filter string) *ProjectsLocationsAppsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListApps call.
func (c *ProjectsLocationsAppsListCall) PageToken(pageToken string) *ProjectsLocationsAppsListCall {
	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 *ProjectsLocationsAppsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsListCall {
	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 *ProjectsLocationsAppsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsListCall) Context(ctx context.Context) *ProjectsLocationsAppsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsListCall) 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, "v1beta/{+parent}/apps")
	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", "ces.projects.locations.apps.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListAppsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsListCall) Do(opts ...googleapi.CallOption) (*ListAppsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListAppsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.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 *ProjectsLocationsAppsListCall) Pages(ctx context.Context, f func(*ListAppsResponse) 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 ProjectsLocationsAppsPatchCall struct {
	s          *Service
	nameid     string
	app        *App
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified app.
//
//   - name: Identifier. The unique identifier of the app. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) Patch(nameid string, app *App) *ProjectsLocationsAppsPatchCall {
	c := &ProjectsLocationsAppsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.app = app
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsPatchCall {
	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 *ProjectsLocationsAppsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.app)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *App.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsPatchCall) Do(opts ...googleapi.CallOption) (*App, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &App{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsRetrieveToolSchemaCall struct {
	s                         *Service
	parent                    string
	retrievetoolschemarequest *RetrieveToolSchemaRequest
	urlParams_                gensupport.URLParams
	ctx_                      context.Context
	header_                   http.Header
}

// RetrieveToolSchema: Retrieve the schema of the given tool. The schema is
// computed on the fly for the given instance of the tool.
//
//   - parent: The resource name of the app which the tool/toolset belongs to.
//     Format: `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) RetrieveToolSchema(parent string, retrievetoolschemarequest *RetrieveToolSchemaRequest) *ProjectsLocationsAppsRetrieveToolSchemaCall {
	c := &ProjectsLocationsAppsRetrieveToolSchemaCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.retrievetoolschemarequest = retrievetoolschemarequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsRetrieveToolSchemaCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsRetrieveToolSchemaCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsRetrieveToolSchemaCall) Context(ctx context.Context) *ProjectsLocationsAppsRetrieveToolSchemaCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsRetrieveToolSchemaCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsRetrieveToolSchemaCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.retrievetoolschemarequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}:retrieveToolSchema")
	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", "ces.projects.locations.apps.retrieveToolSchema", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.retrieveToolSchema" call.
// Any non-2xx status code is an error. Response headers are in either
// *RetrieveToolSchemaResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsRetrieveToolSchemaCall) Do(opts ...googleapi.CallOption) (*RetrieveToolSchemaResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &RetrieveToolSchemaResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.retrieveToolSchema", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsRunEvaluationCall struct {
	s                    *Service
	app                  string
	runevaluationrequest *RunEvaluationRequest
	urlParams_           gensupport.URLParams
	ctx_                 context.Context
	header_              http.Header
}

// RunEvaluation: Runs an evaluation of the app.
//
//   - app: The app to evaluate. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) RunEvaluation(app string, runevaluationrequest *RunEvaluationRequest) *ProjectsLocationsAppsRunEvaluationCall {
	c := &ProjectsLocationsAppsRunEvaluationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.app = app
	c.runevaluationrequest = runevaluationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsRunEvaluationCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsRunEvaluationCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsRunEvaluationCall) Context(ctx context.Context) *ProjectsLocationsAppsRunEvaluationCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsRunEvaluationCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsRunEvaluationCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.runevaluationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+app}:runEvaluation")
	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{
		"app": c.app,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.runEvaluation", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.runEvaluation" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsRunEvaluationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.runEvaluation", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsTestPersonaVoiceCall struct {
	s                       *Service
	app                     string
	testpersonavoicerequest *TestPersonaVoiceRequest
	urlParams_              gensupport.URLParams
	ctx_                    context.Context
	header_                 http.Header
}

// TestPersonaVoice: Tests the voice of a persona. Also accepts a default
// persona.
//
//   - app: the resource name of the app to test the persona voice for. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsService) TestPersonaVoice(app string, testpersonavoicerequest *TestPersonaVoiceRequest) *ProjectsLocationsAppsTestPersonaVoiceCall {
	c := &ProjectsLocationsAppsTestPersonaVoiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.app = app
	c.testpersonavoicerequest = testpersonavoicerequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsTestPersonaVoiceCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsTestPersonaVoiceCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsTestPersonaVoiceCall) Context(ctx context.Context) *ProjectsLocationsAppsTestPersonaVoiceCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsTestPersonaVoiceCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsTestPersonaVoiceCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.testpersonavoicerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+app}:testPersonaVoice")
	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{
		"app": c.app,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.testPersonaVoice", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.testPersonaVoice" call.
// Any non-2xx status code is an error. Response headers are in either
// *TestPersonaVoiceResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsTestPersonaVoiceCall) Do(opts ...googleapi.CallOption) (*TestPersonaVoiceResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &TestPersonaVoiceResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.testPersonaVoice", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsAgentsCreateCall struct {
	s          *Service
	parent     string
	agent      *Agent
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new agent in the given app.
//
// - parent: The resource name of the app to create an agent in.
func (r *ProjectsLocationsAppsAgentsService) Create(parent string, agent *Agent) *ProjectsLocationsAppsAgentsCreateCall {
	c := &ProjectsLocationsAppsAgentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.agent = agent
	return c
}

// AgentId sets the optional parameter "agentId": The ID to use for the agent,
// which will become the final component of the agent's resource name. If not
// provided, a unique ID will be automatically assigned for the agent.
func (c *ProjectsLocationsAppsAgentsCreateCall) AgentId(agentId string) *ProjectsLocationsAppsAgentsCreateCall {
	c.urlParams_.Set("agentId", agentId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsAgentsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsAgentsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsAgentsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsAgentsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsAgentsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsAgentsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.agent)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/agents")
	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", "ces.projects.locations.apps.agents.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.agents.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Agent.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsAgentsCreateCall) Do(opts ...googleapi.CallOption) (*Agent, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Agent{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsAgentsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified agent.
//
// - name: The resource name of the agent to delete.
func (r *ProjectsLocationsAppsAgentsService) Delete(name string) *ProjectsLocationsAppsAgentsDeleteCall {
	c := &ProjectsLocationsAppsAgentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the agent. If
// an etag is not provided, the deletion will overwrite any concurrent changes.
// If an etag is provided and does not match the current etag of the agent,
// deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Etag(etag string) *ProjectsLocationsAppsAgentsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Force sets the optional parameter "force": Indicates whether to forcefully
// delete the agent, even if it is still referenced by other
// app/agents/examples. * If `force = false`, the deletion fails if other
// agents/examples reference it. * If `force = true`, delete the agent and
// remove it from all referencing apps/agents/examples.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Force(force bool) *ProjectsLocationsAppsAgentsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsAgentsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsAgentsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsAgentsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.agents.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.agents.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsAgentsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsAgentsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified agent.
//
// - name: The resource name of the agent to retrieve.
func (r *ProjectsLocationsAppsAgentsService) Get(name string) *ProjectsLocationsAppsAgentsGetCall {
	c := &ProjectsLocationsAppsAgentsGetCall{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 *ProjectsLocationsAppsAgentsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsAgentsGetCall {
	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 *ProjectsLocationsAppsAgentsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsAgentsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsAgentsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsAgentsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsAgentsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsAgentsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.agents.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.agents.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Agent.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsAgentsGetCall) Do(opts ...googleapi.CallOption) (*Agent, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Agent{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsAgentsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists agents in the given app.
//
// - parent: The resource name of the app to list agents from.
func (r *ProjectsLocationsAppsAgentsService) List(parent string) *ProjectsLocationsAppsAgentsListCall {
	c := &ProjectsLocationsAppsAgentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the agents. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsAgentsListCall) Filter(filter string) *ProjectsLocationsAppsAgentsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsAgentsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsAgentsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsAgentsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsAgentsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListAgents call.
func (c *ProjectsLocationsAppsAgentsListCall) PageToken(pageToken string) *ProjectsLocationsAppsAgentsListCall {
	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 *ProjectsLocationsAppsAgentsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsAgentsListCall {
	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 *ProjectsLocationsAppsAgentsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsAgentsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsAgentsListCall) Context(ctx context.Context) *ProjectsLocationsAppsAgentsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsAgentsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsAgentsListCall) 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, "v1beta/{+parent}/agents")
	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", "ces.projects.locations.apps.agents.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.agents.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListAgentsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsAgentsListCall) Do(opts ...googleapi.CallOption) (*ListAgentsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListAgentsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.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 *ProjectsLocationsAppsAgentsListCall) Pages(ctx context.Context, f func(*ListAgentsResponse) 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 ProjectsLocationsAppsAgentsPatchCall struct {
	s          *Service
	nameid     string
	agent      *Agent
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified agent.
//
//   - name: Identifier. The unique identifier of the agent. Format:
//     `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`.
func (r *ProjectsLocationsAppsAgentsService) Patch(nameid string, agent *Agent) *ProjectsLocationsAppsAgentsPatchCall {
	c := &ProjectsLocationsAppsAgentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.agent = agent
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsAgentsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsAgentsPatchCall {
	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 *ProjectsLocationsAppsAgentsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsAgentsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsAgentsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsAgentsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsAgentsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsAgentsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.agent)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.agents.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Agent.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsAgentsPatchCall) Do(opts ...googleapi.CallOption) (*Agent, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Agent{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.agents.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsChangelogsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets the specified changelog.
//
// - name: The resource name of the changelog to retrieve.
func (r *ProjectsLocationsAppsChangelogsService) Get(name string) *ProjectsLocationsAppsChangelogsGetCall {
	c := &ProjectsLocationsAppsChangelogsGetCall{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 *ProjectsLocationsAppsChangelogsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsChangelogsGetCall {
	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 *ProjectsLocationsAppsChangelogsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsChangelogsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsChangelogsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsChangelogsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsChangelogsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsChangelogsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.changelogs.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.changelogs.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Changelog.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsChangelogsGetCall) Do(opts ...googleapi.CallOption) (*Changelog, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Changelog{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.changelogs.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsChangelogsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists the changelogs of the specified app.
//
// - parent: The resource name of the app to list changelogs from.
func (r *ProjectsLocationsAppsChangelogsService) List(parent string) *ProjectsLocationsAppsChangelogsListCall {
	c := &ProjectsLocationsAppsChangelogsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the changelogs. See https://google.aip.dev/160 for more details. The
// filter string can be used to filter by `action`, `resource_type`,
// `resource_name`, `author`, and `create_time`. The `:` comparator can be used
// for case-insensitive partial matching on string fields, while `=` performs
// an exact case-sensitive match. Examples: * `action:update` (case-insensitive
// partial match) * `action="Create" (case-sensitive exact match) *
// `resource_type:agent` * `resource_name:my-agent` * `author:me@example.com` *
// `create_time > "2025-01-01T00:00:00Z" * `create_time <=
// "2025-01-01T00:00:00Z" AND resource_type:tool`
func (c *ProjectsLocationsAppsChangelogsListCall) Filter(filter string) *ProjectsLocationsAppsChangelogsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsChangelogsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsChangelogsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsChangelogsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsChangelogsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListChangelogs call.
func (c *ProjectsLocationsAppsChangelogsListCall) PageToken(pageToken string) *ProjectsLocationsAppsChangelogsListCall {
	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 *ProjectsLocationsAppsChangelogsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsChangelogsListCall {
	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 *ProjectsLocationsAppsChangelogsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsChangelogsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsChangelogsListCall) Context(ctx context.Context) *ProjectsLocationsAppsChangelogsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsChangelogsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsChangelogsListCall) 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, "v1beta/{+parent}/changelogs")
	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", "ces.projects.locations.apps.changelogs.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.changelogs.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListChangelogsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsChangelogsListCall) Do(opts ...googleapi.CallOption) (*ListChangelogsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListChangelogsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.changelogs.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 *ProjectsLocationsAppsChangelogsListCall) Pages(ctx context.Context, f func(*ListChangelogsResponse) 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 ProjectsLocationsAppsConversationsBatchDeleteCall struct {
	s                               *Service
	parent                          string
	batchdeleteconversationsrequest *BatchDeleteConversationsRequest
	urlParams_                      gensupport.URLParams
	ctx_                            context.Context
	header_                         http.Header
}

// BatchDelete: Batch deletes the specified conversations.
//
//   - parent: The resource name of the app to delete conversations from. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsConversationsService) BatchDelete(parent string, batchdeleteconversationsrequest *BatchDeleteConversationsRequest) *ProjectsLocationsAppsConversationsBatchDeleteCall {
	c := &ProjectsLocationsAppsConversationsBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.batchdeleteconversationsrequest = batchdeleteconversationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsConversationsBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsConversationsBatchDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsConversationsBatchDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsConversationsBatchDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsConversationsBatchDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsConversationsBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.batchdeleteconversationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/conversations: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", "ces.projects.locations.apps.conversations.batchDelete", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.conversations.batchDelete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsConversationsBatchDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.conversations.batchDelete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsConversationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified conversation.
//
// - name: The resource name of the conversation to delete.
func (r *ProjectsLocationsAppsConversationsService) Delete(name string) *ProjectsLocationsAppsConversationsDeleteCall {
	c := &ProjectsLocationsAppsConversationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Source sets the optional parameter "source": Indicate the source of the
// conversation. If not set, Source.Live will be applied by default.
//
// Possible values:
//
//	"SOURCE_UNSPECIFIED" - Unspecified source.
//	"LIVE" - The conversation is from the live end user.
//	"SIMULATOR" - The conversation is from the simulator.
//	"EVAL" - The conversation is from the evaluation.
//	"AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
//
// agent in a separate session, which is persisted for testing and debugging
// purposes.
func (c *ProjectsLocationsAppsConversationsDeleteCall) Source(source string) *ProjectsLocationsAppsConversationsDeleteCall {
	c.urlParams_.Set("source", source)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsConversationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsConversationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsConversationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsConversationsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsConversationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsConversationsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.conversations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.conversations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsConversationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.conversations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsConversationsGenerateEvaluationCall struct {
	s                         *Service
	conversation              string
	generateevaluationrequest *GenerateEvaluationRequest
	urlParams_                gensupport.URLParams
	ctx_                      context.Context
	header_                   http.Header
}

// GenerateEvaluation: Creates a golden evaluation from a conversation.
//
//   - conversation: The conversation to create the golden evaluation for.
//     Format:
//     `projects/{project}/locations/{location}/apps/{app}/conversations/{conversa
//     tion}`.
func (r *ProjectsLocationsAppsConversationsService) GenerateEvaluation(conversation string, generateevaluationrequest *GenerateEvaluationRequest) *ProjectsLocationsAppsConversationsGenerateEvaluationCall {
	c := &ProjectsLocationsAppsConversationsGenerateEvaluationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.conversation = conversation
	c.generateevaluationrequest = generateevaluationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsConversationsGenerateEvaluationCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsConversationsGenerateEvaluationCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsConversationsGenerateEvaluationCall) Context(ctx context.Context) *ProjectsLocationsAppsConversationsGenerateEvaluationCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsConversationsGenerateEvaluationCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsConversationsGenerateEvaluationCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.generateevaluationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+conversation}:generateEvaluation")
	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{
		"conversation": c.conversation,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.conversations.generateEvaluation", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.conversations.generateEvaluation" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsConversationsGenerateEvaluationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.conversations.generateEvaluation", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsConversationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified conversation.
//
// - name: The resource name of the conversation to retrieve.
func (r *ProjectsLocationsAppsConversationsService) Get(name string) *ProjectsLocationsAppsConversationsGetCall {
	c := &ProjectsLocationsAppsConversationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Source sets the optional parameter "source": Indicate the source of the
// conversation. If not set, all source will be searched.
//
// Possible values:
//
//	"SOURCE_UNSPECIFIED" - Unspecified source.
//	"LIVE" - The conversation is from the live end user.
//	"SIMULATOR" - The conversation is from the simulator.
//	"EVAL" - The conversation is from the evaluation.
//	"AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
//
// agent in a separate session, which is persisted for testing and debugging
// purposes.
func (c *ProjectsLocationsAppsConversationsGetCall) Source(source string) *ProjectsLocationsAppsConversationsGetCall {
	c.urlParams_.Set("source", source)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsConversationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsConversationsGetCall {
	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 *ProjectsLocationsAppsConversationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsConversationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsConversationsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsConversationsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsConversationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsConversationsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.conversations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.conversations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Conversation.ServerResponse.Header or (if a response was returned at all)
// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsConversationsGetCall) Do(opts ...googleapi.CallOption) (*Conversation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Conversation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.conversations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsConversationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists conversations in the given app.
//
// - parent: The resource name of the app to list conversations from.
func (r *ProjectsLocationsAppsConversationsService) List(parent string) *ProjectsLocationsAppsConversationsListCall {
	c := &ProjectsLocationsAppsConversationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the conversations. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsConversationsListCall) Filter(filter string) *ProjectsLocationsAppsConversationsListCall {
	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, server will pick an
// appropriate default.
func (c *ProjectsLocationsAppsConversationsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsConversationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListConversations call.
func (c *ProjectsLocationsAppsConversationsListCall) PageToken(pageToken string) *ProjectsLocationsAppsConversationsListCall {
	c.urlParams_.Set("pageToken", pageToken)
	return c
}

// Source sets the optional parameter "source": Indicate the source of the
// conversation. If not set, Source.Live will be applied by default. Will be
// deprecated in favor of `sources` field.
//
// Possible values:
//
//	"SOURCE_UNSPECIFIED" - Unspecified source.
//	"LIVE" - The conversation is from the live end user.
//	"SIMULATOR" - The conversation is from the simulator.
//	"EVAL" - The conversation is from the evaluation.
//	"AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
//
// agent in a separate session, which is persisted for testing and debugging
// purposes.
func (c *ProjectsLocationsAppsConversationsListCall) Source(source string) *ProjectsLocationsAppsConversationsListCall {
	c.urlParams_.Set("source", source)
	return c
}

// Sources sets the optional parameter "sources": Indicate the sources of the
// conversations. If not set, all available sources will be applied by default.
//
// Possible values:
//
//	"SOURCE_UNSPECIFIED" - Unspecified source.
//	"LIVE" - The conversation is from the live end user.
//	"SIMULATOR" - The conversation is from the simulator.
//	"EVAL" - The conversation is from the evaluation.
//	"AGENT_TOOL" - The conversation is from an agent tool. Agent tool runs the
//
// agent in a separate session, which is persisted for testing and debugging
// purposes.
func (c *ProjectsLocationsAppsConversationsListCall) Sources(sources ...string) *ProjectsLocationsAppsConversationsListCall {
	c.urlParams_.SetMulti("sources", append([]string{}, sources...))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsConversationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsConversationsListCall {
	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 *ProjectsLocationsAppsConversationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsConversationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsConversationsListCall) Context(ctx context.Context) *ProjectsLocationsAppsConversationsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsConversationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsConversationsListCall) 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, "v1beta/{+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", "ces.projects.locations.apps.conversations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.conversations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListConversationsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsConversationsListCall) Do(opts ...googleapi.CallOption) (*ListConversationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListConversationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.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 *ProjectsLocationsAppsConversationsListCall) Pages(ctx context.Context, f func(*ListConversationsResponse) 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 ProjectsLocationsAppsDeploymentsCreateCall struct {
	s          *Service
	parent     string
	deployment *Deployment
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new deployment in the given app.
//
//   - parent: The parent app. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsDeploymentsService) Create(parent string, deployment *Deployment) *ProjectsLocationsAppsDeploymentsCreateCall {
	c := &ProjectsLocationsAppsDeploymentsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.deployment = deployment
	return c
}

// DeploymentId sets the optional parameter "deploymentId": The ID to use for
// the deployment, which will become the final component of the deployment's
// resource name. If not provided, a unique ID will be automatically assigned
// for the deployment.
func (c *ProjectsLocationsAppsDeploymentsCreateCall) DeploymentId(deploymentId string) *ProjectsLocationsAppsDeploymentsCreateCall {
	c.urlParams_.Set("deploymentId", deploymentId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsDeploymentsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeploymentsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeploymentsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsDeploymentsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeploymentsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeploymentsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.deployment)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/deployments")
	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", "ces.projects.locations.apps.deployments.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.deployments.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Deployment.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeploymentsCreateCall) Do(opts ...googleapi.CallOption) (*Deployment, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Deployment{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.deployments.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsDeploymentsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified deployment.
//
//   - name: The name of the deployment to delete. Format:
//     `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment
//     }`.
func (r *ProjectsLocationsAppsDeploymentsService) Delete(name string) *ProjectsLocationsAppsDeploymentsDeleteCall {
	c := &ProjectsLocationsAppsDeploymentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The etag of the deployment. If an
// etag is provided and does not match the current etag of the deployment,
// deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsDeploymentsDeleteCall) Etag(etag string) *ProjectsLocationsAppsDeploymentsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsDeploymentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeploymentsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeploymentsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsDeploymentsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeploymentsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeploymentsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.deployments.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.deployments.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeploymentsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.deployments.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsDeploymentsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified deployment.
//
//   - name: The name of the deployment. Format:
//     `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment
//     }`.
func (r *ProjectsLocationsAppsDeploymentsService) Get(name string) *ProjectsLocationsAppsDeploymentsGetCall {
	c := &ProjectsLocationsAppsDeploymentsGetCall{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 *ProjectsLocationsAppsDeploymentsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeploymentsGetCall {
	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 *ProjectsLocationsAppsDeploymentsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsDeploymentsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeploymentsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsDeploymentsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeploymentsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeploymentsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.deployments.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.deployments.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Deployment.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeploymentsGetCall) Do(opts ...googleapi.CallOption) (*Deployment, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Deployment{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.deployments.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsDeploymentsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists deployments in the given app.
//
//   - parent: The parent app. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsDeploymentsService) List(parent string) *ProjectsLocationsAppsDeploymentsListCall {
	c := &ProjectsLocationsAppsDeploymentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsDeploymentsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsDeploymentsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	return c
}

// PageSize sets the optional parameter "pageSize": The maximum number of
// deployments to return. The service may return fewer than this value. If
// unspecified, at most 50 deployments will be returned. The maximum value is
// 1000; values above 1000 will be coerced to 1000.
func (c *ProjectsLocationsAppsDeploymentsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsDeploymentsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous `ListDeployments` call. Provide this to retrieve the
// subsequent page. When paginating, all other parameters provided to
// `ListDeployments` must match the call that provided the page token.
func (c *ProjectsLocationsAppsDeploymentsListCall) PageToken(pageToken string) *ProjectsLocationsAppsDeploymentsListCall {
	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 *ProjectsLocationsAppsDeploymentsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeploymentsListCall {
	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 *ProjectsLocationsAppsDeploymentsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsDeploymentsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeploymentsListCall) Context(ctx context.Context) *ProjectsLocationsAppsDeploymentsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeploymentsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeploymentsListCall) 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, "v1beta/{+parent}/deployments")
	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", "ces.projects.locations.apps.deployments.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.deployments.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListDeploymentsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeploymentsListCall) Do(opts ...googleapi.CallOption) (*ListDeploymentsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListDeploymentsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.deployments.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 *ProjectsLocationsAppsDeploymentsListCall) Pages(ctx context.Context, f func(*ListDeploymentsResponse) 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 ProjectsLocationsAppsDeploymentsPatchCall struct {
	s          *Service
	name       string
	deployment *Deployment
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified deployment.
//
//   - name: Identifier. The resource name of the deployment. Format:
//     `projects/{project}/locations/{location}/apps/{app}/deployments/{deployment
//     }`.
func (r *ProjectsLocationsAppsDeploymentsService) Patch(name string, deployment *Deployment) *ProjectsLocationsAppsDeploymentsPatchCall {
	c := &ProjectsLocationsAppsDeploymentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.deployment = deployment
	return c
}

// UpdateMask sets the optional parameter "updateMask": The list of fields to
// update.
func (c *ProjectsLocationsAppsDeploymentsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsDeploymentsPatchCall {
	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 *ProjectsLocationsAppsDeploymentsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsDeploymentsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsDeploymentsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsDeploymentsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsDeploymentsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsDeploymentsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.deployment)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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", "ces.projects.locations.apps.deployments.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.deployments.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Deployment.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsDeploymentsPatchCall) Do(opts ...googleapi.CallOption) (*Deployment, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Deployment{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.deployments.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationDatasetsCreateCall struct {
	s                 *Service
	parent            string
	evaluationdataset *EvaluationDataset
	urlParams_        gensupport.URLParams
	ctx_              context.Context
	header_           http.Header
}

// Create: Creates an evaluation dataset.
//
//   - parent: The app to create the evaluation for. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsEvaluationDatasetsService) Create(parent string, evaluationdataset *EvaluationDataset) *ProjectsLocationsAppsEvaluationDatasetsCreateCall {
	c := &ProjectsLocationsAppsEvaluationDatasetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.evaluationdataset = evaluationdataset
	return c
}

// EvaluationDatasetId sets the optional parameter "evaluationDatasetId": The
// ID to use for the evaluation dataset, which will become the final component
// of the evaluation dataset's resource name. If not provided, a unique ID will
// be automatically assigned for the evaluation.
func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) EvaluationDatasetId(evaluationDatasetId string) *ProjectsLocationsAppsEvaluationDatasetsCreateCall {
	c.urlParams_.Set("evaluationDatasetId", evaluationDatasetId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationDatasetsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationDatasetsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluationdataset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/evaluationDatasets")
	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", "ces.projects.locations.apps.evaluationDatasets.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationDatasets.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationDataset.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsCreateCall) Do(opts ...googleapi.CallOption) (*EvaluationDataset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationDataset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationDatasetsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an evaluation dataset.
//
// - name: The resource name of the evaluation dataset to delete.
func (r *ProjectsLocationsAppsEvaluationDatasetsService) Delete(name string) *ProjectsLocationsAppsEvaluationDatasetsDeleteCall {
	c := &ProjectsLocationsAppsEvaluationDatasetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the evaluation
// dataset. If an etag is not provided, the deletion will overwrite any
// concurrent changes. If an etag is provided and does not match the current
// etag of the evaluation dataset, deletion will be blocked and an ABORTED
// error will be returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) Etag(etag string) *ProjectsLocationsAppsEvaluationDatasetsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationDatasetsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationDatasetsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationDatasets.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationDatasets.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationDatasetsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified evaluation dataset.
//
// - name: The resource name of the evaluation dataset to retrieve.
func (r *ProjectsLocationsAppsEvaluationDatasetsService) Get(name string) *ProjectsLocationsAppsEvaluationDatasetsGetCall {
	c := &ProjectsLocationsAppsEvaluationDatasetsGetCall{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 *ProjectsLocationsAppsEvaluationDatasetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationDatasetsGetCall {
	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 *ProjectsLocationsAppsEvaluationDatasetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationDatasetsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationDatasetsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationDatasetsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationDatasetsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationDatasetsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationDatasets.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationDatasets.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationDataset.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsGetCall) Do(opts ...googleapi.CallOption) (*EvaluationDataset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationDataset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationDatasetsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all evaluation datasets in the given app.
//
// - parent: The resource name of the app to list evaluation datasets from.
func (r *ProjectsLocationsAppsEvaluationDatasetsService) List(parent string) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c := &ProjectsLocationsAppsEvaluationDatasetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the evaluation datasets. See https://google.aip.dev/160 for more
// details.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) Filter(filter string) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time", and "update_time" are supported. Time fields are ordered
// in descending order, and the name field is ordered in ascending order. If
// not included, "update_time" will be the default. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListEvaluationDatasets call.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) PageToken(pageToken string) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	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 *ProjectsLocationsAppsEvaluationDatasetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	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 *ProjectsLocationsAppsEvaluationDatasetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationDatasetsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) 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, "v1beta/{+parent}/evaluationDatasets")
	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", "ces.projects.locations.apps.evaluationDatasets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationDatasets.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEvaluationDatasetsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsListCall) Do(opts ...googleapi.CallOption) (*ListEvaluationDatasetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEvaluationDatasetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.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 *ProjectsLocationsAppsEvaluationDatasetsListCall) Pages(ctx context.Context, f func(*ListEvaluationDatasetsResponse) 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 ProjectsLocationsAppsEvaluationDatasetsPatchCall struct {
	s                 *Service
	nameid            string
	evaluationdataset *EvaluationDataset
	urlParams_        gensupport.URLParams
	ctx_              context.Context
	header_           http.Header
}

// Patch: Updates an evaluation dataset.
//
//   - name: Identifier. The unique identifier of this evaluation dataset.
//     Format:
//     `projects/{project}/locations/{location}/apps/{app}/evaluationDatasets/{eva
//     luationDataset}`.
func (r *ProjectsLocationsAppsEvaluationDatasetsService) Patch(nameid string, evaluationdataset *EvaluationDataset) *ProjectsLocationsAppsEvaluationDatasetsPatchCall {
	c := &ProjectsLocationsAppsEvaluationDatasetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.evaluationdataset = evaluationdataset
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsEvaluationDatasetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsEvaluationDatasetsPatchCall {
	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 *ProjectsLocationsAppsEvaluationDatasetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationDatasetsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationDatasetsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationDatasetsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationDatasetsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationDatasetsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluationdataset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationDatasets.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationDataset.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationDatasetsPatchCall) Do(opts ...googleapi.CallOption) (*EvaluationDataset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationDataset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationDatasets.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationExpectationsCreateCall struct {
	s                     *Service
	parent                string
	evaluationexpectation *EvaluationExpectation
	urlParams_            gensupport.URLParams
	ctx_                  context.Context
	header_               http.Header
}

// Create: Creates an evaluation expectation.
//
//   - parent: The app to create the evaluation expectation for. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsEvaluationExpectationsService) Create(parent string, evaluationexpectation *EvaluationExpectation) *ProjectsLocationsAppsEvaluationExpectationsCreateCall {
	c := &ProjectsLocationsAppsEvaluationExpectationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.evaluationexpectation = evaluationexpectation
	return c
}

// EvaluationExpectationId sets the optional parameter
// "evaluationExpectationId": The ID to use for the evaluation expectation,
// which will become the final component of the evaluation expectation's
// resource name. If not provided, a unique ID will be automatically assigned
// for the evaluation expectation.
func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) EvaluationExpectationId(evaluationExpectationId string) *ProjectsLocationsAppsEvaluationExpectationsCreateCall {
	c.urlParams_.Set("evaluationExpectationId", evaluationExpectationId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationExpectationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationExpectationsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluationexpectation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/evaluationExpectations")
	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", "ces.projects.locations.apps.evaluationExpectations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationExpectations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationExpectation.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsCreateCall) Do(opts ...googleapi.CallOption) (*EvaluationExpectation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationExpectation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationExpectationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an evaluation expectation.
//
// - name: The resource name of the evaluation expectation to delete.
func (r *ProjectsLocationsAppsEvaluationExpectationsService) Delete(name string) *ProjectsLocationsAppsEvaluationExpectationsDeleteCall {
	c := &ProjectsLocationsAppsEvaluationExpectationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the evaluation
// expectation. If an etag is not provided, the deletion will overwrite any
// concurrent changes. If an etag is provided and does not match the current
// etag of the evaluation expectation, deletion will be blocked and an ABORTED
// error will be returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) Etag(etag string) *ProjectsLocationsAppsEvaluationExpectationsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationExpectationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationExpectationsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationExpectations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationExpectations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationExpectationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified evaluation expectation.
//
// - name: The resource name of the evaluation expectation to retrieve.
func (r *ProjectsLocationsAppsEvaluationExpectationsService) Get(name string) *ProjectsLocationsAppsEvaluationExpectationsGetCall {
	c := &ProjectsLocationsAppsEvaluationExpectationsGetCall{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 *ProjectsLocationsAppsEvaluationExpectationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationExpectationsGetCall {
	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 *ProjectsLocationsAppsEvaluationExpectationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationExpectationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationExpectationsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationExpectationsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationExpectationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationExpectationsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationExpectations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationExpectations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationExpectation.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsGetCall) Do(opts ...googleapi.CallOption) (*EvaluationExpectation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationExpectation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationExpectationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all evaluation expectations in the given app.
//
// - parent: The resource name of the app to list evaluation expectations from.
func (r *ProjectsLocationsAppsEvaluationExpectationsService) List(parent string) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c := &ProjectsLocationsAppsEvaluationExpectationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the evaluation expectations. See https://google.aip.dev/160 for more
// details.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) Filter(filter string) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time", and "update_time" are supported. Time fields are ordered
// in descending order, and the name field is ordered in ascending order. If
// not included, "update_time" will be the default. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListEvaluationExpectations
// call.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) PageToken(pageToken string) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	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 *ProjectsLocationsAppsEvaluationExpectationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	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 *ProjectsLocationsAppsEvaluationExpectationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationExpectationsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) 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, "v1beta/{+parent}/evaluationExpectations")
	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", "ces.projects.locations.apps.evaluationExpectations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationExpectations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEvaluationExpectationsResponse.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsListCall) Do(opts ...googleapi.CallOption) (*ListEvaluationExpectationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEvaluationExpectationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.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 *ProjectsLocationsAppsEvaluationExpectationsListCall) Pages(ctx context.Context, f func(*ListEvaluationExpectationsResponse) 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 ProjectsLocationsAppsEvaluationExpectationsPatchCall struct {
	s                     *Service
	nameid                string
	evaluationexpectation *EvaluationExpectation
	urlParams_            gensupport.URLParams
	ctx_                  context.Context
	header_               http.Header
}

// Patch: Updates an evaluation expectation.
//
//   - name: Identifier. The unique identifier of this evaluation expectation.
//     Format:
//     `projects/{project}/locations/{location}/apps/{app}/evaluationExpectations/
//     {evaluation_expectation}`.
func (r *ProjectsLocationsAppsEvaluationExpectationsService) Patch(nameid string, evaluationexpectation *EvaluationExpectation) *ProjectsLocationsAppsEvaluationExpectationsPatchCall {
	c := &ProjectsLocationsAppsEvaluationExpectationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.evaluationexpectation = evaluationexpectation
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsEvaluationExpectationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsEvaluationExpectationsPatchCall {
	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 *ProjectsLocationsAppsEvaluationExpectationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationExpectationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationExpectationsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationExpectationsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationExpectationsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationExpectationsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluationexpectation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationExpectations.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationExpectation.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationExpectationsPatchCall) Do(opts ...googleapi.CallOption) (*EvaluationExpectation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationExpectation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationExpectations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationRunsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an evaluation run.
//
// - name: The resource name of the evaluation run to delete.
func (r *ProjectsLocationsAppsEvaluationRunsService) Delete(name string) *ProjectsLocationsAppsEvaluationRunsDeleteCall {
	c := &ProjectsLocationsAppsEvaluationRunsDeleteCall{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 *ProjectsLocationsAppsEvaluationRunsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationRunsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationRunsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationRunsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationRunsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationRunsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationRuns.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationRuns.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationRunsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationRuns.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationRunsExportCall struct {
	s                           *Service
	parent                      string
	exportevaluationrunsrequest *ExportEvaluationRunsRequest
	urlParams_                  gensupport.URLParams
	ctx_                        context.Context
	header_                     http.Header
}

// Export: Exports evaluations runs.
//
//   - parent: The resource name of the app to export evaluation runs from.
//     Format: `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsEvaluationRunsService) Export(parent string, exportevaluationrunsrequest *ExportEvaluationRunsRequest) *ProjectsLocationsAppsEvaluationRunsExportCall {
	c := &ProjectsLocationsAppsEvaluationRunsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.exportevaluationrunsrequest = exportevaluationrunsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationRunsExportCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationRunsExportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationRunsExportCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationRunsExportCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationRunsExportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationRunsExportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.exportevaluationrunsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/evaluationRuns:export")
	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", "ces.projects.locations.apps.evaluationRuns.export", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationRuns.export" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationRunsExportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationRuns.export", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationRunsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified evaluation run.
//
// - name: The resource name of the evaluation run to retrieve.
func (r *ProjectsLocationsAppsEvaluationRunsService) Get(name string) *ProjectsLocationsAppsEvaluationRunsGetCall {
	c := &ProjectsLocationsAppsEvaluationRunsGetCall{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 *ProjectsLocationsAppsEvaluationRunsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationRunsGetCall {
	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 *ProjectsLocationsAppsEvaluationRunsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationRunsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationRunsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationRunsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationRunsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationRunsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluationRuns.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationRuns.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationRun.ServerResponse.Header or (if a response was returned at all)
// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationRunsGetCall) Do(opts ...googleapi.CallOption) (*EvaluationRun, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationRun{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationRuns.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationRunsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all evaluation runs in the given app.
//
// - parent: The resource name of the app to list evaluation runs from.
func (r *ProjectsLocationsAppsEvaluationRunsService) List(parent string) *ProjectsLocationsAppsEvaluationRunsListCall {
	c := &ProjectsLocationsAppsEvaluationRunsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the evaluation runs. See https://google.aip.dev/160 for more
// details.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) Filter(filter string) *ProjectsLocationsAppsEvaluationRunsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time", and "update_time" are supported. Time fields are ordered
// in descending order, and the name field is ordered in ascending order. If
// not included, "update_time" will be the default. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsEvaluationRunsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsEvaluationRunsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListEvaluationRuns call.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) PageToken(pageToken string) *ProjectsLocationsAppsEvaluationRunsListCall {
	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 *ProjectsLocationsAppsEvaluationRunsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationRunsListCall {
	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 *ProjectsLocationsAppsEvaluationRunsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationRunsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationRunsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationRunsListCall) 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, "v1beta/{+parent}/evaluationRuns")
	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", "ces.projects.locations.apps.evaluationRuns.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluationRuns.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEvaluationRunsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationRunsListCall) Do(opts ...googleapi.CallOption) (*ListEvaluationRunsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEvaluationRunsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluationRuns.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 *ProjectsLocationsAppsEvaluationRunsListCall) Pages(ctx context.Context, f func(*ListEvaluationRunsResponse) 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 ProjectsLocationsAppsEvaluationsCreateCall struct {
	s          *Service
	parent     string
	evaluation *Evaluation
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates an evaluation.
//
//   - parent: The app to create the evaluation for. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsEvaluationsService) Create(parent string, evaluation *Evaluation) *ProjectsLocationsAppsEvaluationsCreateCall {
	c := &ProjectsLocationsAppsEvaluationsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.evaluation = evaluation
	return c
}

// EvaluationId sets the optional parameter "evaluationId": The ID to use for
// the evaluation, which will become the final component of the evaluation's
// resource name. If not provided, a unique ID will be automatically assigned
// for the evaluation.
func (c *ProjectsLocationsAppsEvaluationsCreateCall) EvaluationId(evaluationId string) *ProjectsLocationsAppsEvaluationsCreateCall {
	c.urlParams_.Set("evaluationId", evaluationId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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", "ces.projects.locations.apps.evaluations.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Evaluation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsCreateCall) Do(opts ...googleapi.CallOption) (*Evaluation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Evaluation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an evaluation.
//
// - name: The resource name of the evaluation to delete.
func (r *ProjectsLocationsAppsEvaluationsService) Delete(name string) *ProjectsLocationsAppsEvaluationsDeleteCall {
	c := &ProjectsLocationsAppsEvaluationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the evaluation.
// If an etag is not provided, the deletion will overwrite any concurrent
// changes. If an etag is provided and does not match the current etag of the
// evaluation, deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Etag(etag string) *ProjectsLocationsAppsEvaluationsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Force sets the optional parameter "force": Indicates whether to forcefully
// delete the evaluation, even if it is still referenced by evaluation
// datasets. * If `force = false`, the deletion will fail if any datasets still
// reference the evaluation. * If `force = true`, all existing references from
// datasets will be removed and the evaluation will be deleted.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Force(force bool) *ProjectsLocationsAppsEvaluationsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsExportCall struct {
	s                        *Service
	parent                   string
	exportevaluationsrequest *ExportEvaluationsRequest
	urlParams_               gensupport.URLParams
	ctx_                     context.Context
	header_                  http.Header
}

// Export: Exports evaluations.
//
//   - parent: The resource name of the app to export evaluations from. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsEvaluationsService) Export(parent string, exportevaluationsrequest *ExportEvaluationsRequest) *ProjectsLocationsAppsEvaluationsExportCall {
	c := &ProjectsLocationsAppsEvaluationsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.exportevaluationsrequest = exportevaluationsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationsExportCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsExportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsExportCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsExportCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsExportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsExportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.exportevaluationsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/evaluations:export")
	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", "ces.projects.locations.apps.evaluations.export", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.export" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsExportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.export", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified evaluation.
//
// - name: The resource name of the evaluation to retrieve.
func (r *ProjectsLocationsAppsEvaluationsService) Get(name string) *ProjectsLocationsAppsEvaluationsGetCall {
	c := &ProjectsLocationsAppsEvaluationsGetCall{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 *ProjectsLocationsAppsEvaluationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsGetCall {
	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 *ProjectsLocationsAppsEvaluationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Evaluation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsGetCall) Do(opts ...googleapi.CallOption) (*Evaluation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Evaluation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all evaluations in the given app.
//
// - parent: The resource name of the app to list evaluations from.
func (r *ProjectsLocationsAppsEvaluationsService) List(parent string) *ProjectsLocationsAppsEvaluationsListCall {
	c := &ProjectsLocationsAppsEvaluationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// EvaluationFilter sets the optional parameter "evaluationFilter": Filter to
// be applied on the evaluation when listing the evaluations. See
// https://google.aip.dev/160 for more details. Supported fields:
// evaluation_datasets
func (c *ProjectsLocationsAppsEvaluationsListCall) EvaluationFilter(evaluationFilter string) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("evaluationFilter", evaluationFilter)
	return c
}

// EvaluationRunFilter sets the optional parameter "evaluationRunFilter":
// Filter string for fields on the associated EvaluationRun resources. See
// https://google.aip.dev/160 for more details. Supported fields: create_time,
// initiated_by, app_version_display_name
func (c *ProjectsLocationsAppsEvaluationsListCall) EvaluationRunFilter(evaluationRunFilter string) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("evaluationRunFilter", evaluationRunFilter)
	return c
}

// Filter sets the optional parameter "filter": Deprecated: Use
// evaluation_filter and evaluation_run_filter instead.
func (c *ProjectsLocationsAppsEvaluationsListCall) Filter(filter string) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// LastTenResults sets the optional parameter "lastTenResults": Whether to
// include the last 10 evaluation results for each evaluation in the response.
func (c *ProjectsLocationsAppsEvaluationsListCall) LastTenResults(lastTenResults bool) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("lastTenResults", fmt.Sprint(lastTenResults))
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time", and "update_time" are supported. Time fields are ordered
// in descending order, and the name field is ordered in ascending order. If
// not included, "update_time" will be the default. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsAppsEvaluationsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsEvaluationsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsEvaluationsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListEvaluations call.
func (c *ProjectsLocationsAppsEvaluationsListCall) PageToken(pageToken string) *ProjectsLocationsAppsEvaluationsListCall {
	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 *ProjectsLocationsAppsEvaluationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsListCall {
	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 *ProjectsLocationsAppsEvaluationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsListCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsListCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEvaluationsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsListCall) Do(opts ...googleapi.CallOption) (*ListEvaluationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEvaluationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.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 *ProjectsLocationsAppsEvaluationsListCall) Pages(ctx context.Context, f func(*ListEvaluationsResponse) 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 ProjectsLocationsAppsEvaluationsPatchCall struct {
	s          *Service
	nameid     string
	evaluation *Evaluation
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates an evaluation.
//
//   - name: Identifier. The unique identifier of this evaluation. Format:
//     `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation
//     }`.
func (r *ProjectsLocationsAppsEvaluationsService) Patch(nameid string, evaluation *Evaluation) *ProjectsLocationsAppsEvaluationsPatchCall {
	c := &ProjectsLocationsAppsEvaluationsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.evaluation = evaluation
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsEvaluationsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsEvaluationsPatchCall {
	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 *ProjectsLocationsAppsEvaluationsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.evaluation)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Evaluation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsPatchCall) Do(opts ...googleapi.CallOption) (*Evaluation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Evaluation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall struct {
	s                            *Service
	name                         string
	uploadevaluationaudiorequest *UploadEvaluationAudioRequest
	urlParams_                   gensupport.URLParams
	ctx_                         context.Context
	header_                      http.Header
}

// UploadEvaluationAudio: Uploads audio for use in Golden Evaluations. Stores
// the audio in the Cloud Storage bucket defined in
// 'App.logging_settings.evaluation_audio_recording_config.gcs_bucket' and
// returns a transcript.
//
//   - name: The resource name of the Evaluation for which to upload the
//     evaluation audio. Format:
//     `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation
//     }`.
func (r *ProjectsLocationsAppsEvaluationsService) UploadEvaluationAudio(name string, uploadevaluationaudiorequest *UploadEvaluationAudioRequest) *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall {
	c := &ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.uploadevaluationaudiorequest = uploadevaluationaudiorequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.uploadevaluationaudiorequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}:uploadEvaluationAudio")
	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", "ces.projects.locations.apps.evaluations.uploadEvaluationAudio", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.uploadEvaluationAudio" call.
// Any non-2xx status code is an error. Response headers are in either
// *UploadEvaluationAudioResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsUploadEvaluationAudioCall) Do(opts ...googleapi.CallOption) (*UploadEvaluationAudioResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &UploadEvaluationAudioResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.uploadEvaluationAudio", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsResultsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes an evaluation result.
//
// - name: The resource name of the evaluation result to delete.
func (r *ProjectsLocationsAppsEvaluationsResultsService) Delete(name string) *ProjectsLocationsAppsEvaluationsResultsDeleteCall {
	c := &ProjectsLocationsAppsEvaluationsResultsDeleteCall{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 *ProjectsLocationsAppsEvaluationsResultsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsResultsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsResultsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsResultsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsResultsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsResultsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluations.results.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.results.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsResultsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.results.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsResultsExportCall struct {
	s                              *Service
	parent                         string
	exportevaluationresultsrequest *ExportEvaluationResultsRequest
	urlParams_                     gensupport.URLParams
	ctx_                           context.Context
	header_                        http.Header
}

// Export: Exports evaluations results.
//
//   - parent: The resource name of the evaluation to export evaluation results
//     from. Format:
//     `projects/{project}/locations/{location}/apps/{app}/evaluations/{evaluation
//     }`.
func (r *ProjectsLocationsAppsEvaluationsResultsService) Export(parent string, exportevaluationresultsrequest *ExportEvaluationResultsRequest) *ProjectsLocationsAppsEvaluationsResultsExportCall {
	c := &ProjectsLocationsAppsEvaluationsResultsExportCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.exportevaluationresultsrequest = exportevaluationresultsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsEvaluationsResultsExportCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsResultsExportCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsResultsExportCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsResultsExportCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsResultsExportCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsResultsExportCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.exportevaluationresultsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/results:export")
	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", "ces.projects.locations.apps.evaluations.results.export", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.results.export" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsResultsExportCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.results.export", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsResultsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified evaluation result.
//
// - name: The resource name of the evaluation result to retrieve.
func (r *ProjectsLocationsAppsEvaluationsResultsService) Get(name string) *ProjectsLocationsAppsEvaluationsResultsGetCall {
	c := &ProjectsLocationsAppsEvaluationsResultsGetCall{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 *ProjectsLocationsAppsEvaluationsResultsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsResultsGetCall {
	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 *ProjectsLocationsAppsEvaluationsResultsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationsResultsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsResultsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsResultsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsResultsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsResultsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.evaluations.results.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.results.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *EvaluationResult.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsEvaluationsResultsGetCall) Do(opts ...googleapi.CallOption) (*EvaluationResult, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &EvaluationResult{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.results.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsEvaluationsResultsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all evaluation results for a given evaluation.
//
//   - parent: The resource name of the evaluation to list evaluation results
//     from. To filter by evaluation run, use `-` as the evaluation ID and
//     specify the evaluation run ID in the filter. For example:
//     `projects/{project}/locations/{location}/apps/{app}/evaluations/-`.
func (r *ProjectsLocationsAppsEvaluationsResultsService) List(parent string) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c := &ProjectsLocationsAppsEvaluationsResultsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the evaluation results. See https://google.aip.dev/160 for more
// details.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) Filter(filter string) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time", and "update_time" are supported. Time fields are ordered
// in descending order, and the name field is ordered in ascending order. If
// not included, "update_time" will be the default. See
// https://google.aip.dev/132#ordering for more details.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListEvaluationResults call.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) PageToken(pageToken string) *ProjectsLocationsAppsEvaluationsResultsListCall {
	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 *ProjectsLocationsAppsEvaluationsResultsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsEvaluationsResultsListCall {
	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 *ProjectsLocationsAppsEvaluationsResultsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) Context(ctx context.Context) *ProjectsLocationsAppsEvaluationsResultsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsEvaluationsResultsListCall) 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, "v1beta/{+parent}/results")
	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", "ces.projects.locations.apps.evaluations.results.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.evaluations.results.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEvaluationResultsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsEvaluationsResultsListCall) Do(opts ...googleapi.CallOption) (*ListEvaluationResultsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListEvaluationResultsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.evaluations.results.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 *ProjectsLocationsAppsEvaluationsResultsListCall) Pages(ctx context.Context, f func(*ListEvaluationResultsResponse) 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 ProjectsLocationsAppsExamplesCreateCall struct {
	s          *Service
	parent     string
	example    *Example
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new example in the given app.
//
// - parent: The resource name of the app to create an example in.
func (r *ProjectsLocationsAppsExamplesService) Create(parent string, example *Example) *ProjectsLocationsAppsExamplesCreateCall {
	c := &ProjectsLocationsAppsExamplesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.example = example
	return c
}

// ExampleId sets the optional parameter "exampleId": The ID to use for the
// example, which will become the final component of the example's resource
// name. If not provided, a unique ID will be automatically assigned for the
// example.
func (c *ProjectsLocationsAppsExamplesCreateCall) ExampleId(exampleId string) *ProjectsLocationsAppsExamplesCreateCall {
	c.urlParams_.Set("exampleId", exampleId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsExamplesCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExamplesCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExamplesCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsExamplesCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExamplesCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExamplesCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.example)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/examples")
	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", "ces.projects.locations.apps.examples.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.examples.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Example.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsExamplesCreateCall) Do(opts ...googleapi.CallOption) (*Example, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Example{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsExamplesDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified example.
//
// - name: The resource name of the example to delete.
func (r *ProjectsLocationsAppsExamplesService) Delete(name string) *ProjectsLocationsAppsExamplesDeleteCall {
	c := &ProjectsLocationsAppsExamplesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the example. If
// an etag is not provided, the deletion will overwrite any concurrent changes.
// If an etag is provided and does not match the current etag of the example,
// deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsExamplesDeleteCall) Etag(etag string) *ProjectsLocationsAppsExamplesDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsExamplesDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExamplesDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExamplesDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsExamplesDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExamplesDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExamplesDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.examples.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.examples.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsExamplesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsExamplesGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified example.
//
// - name: The resource name of the example to retrieve.
func (r *ProjectsLocationsAppsExamplesService) Get(name string) *ProjectsLocationsAppsExamplesGetCall {
	c := &ProjectsLocationsAppsExamplesGetCall{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 *ProjectsLocationsAppsExamplesGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExamplesGetCall {
	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 *ProjectsLocationsAppsExamplesGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsExamplesGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExamplesGetCall) Context(ctx context.Context) *ProjectsLocationsAppsExamplesGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExamplesGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExamplesGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.examples.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.examples.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Example.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsExamplesGetCall) Do(opts ...googleapi.CallOption) (*Example, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Example{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsExamplesListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists examples in the given app.
//
// - parent: The resource name of the app to list examples from.
func (r *ProjectsLocationsAppsExamplesService) List(parent string) *ProjectsLocationsAppsExamplesListCall {
	c := &ProjectsLocationsAppsExamplesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the examples. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsExamplesListCall) Filter(filter string) *ProjectsLocationsAppsExamplesListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsExamplesListCall) OrderBy(orderBy string) *ProjectsLocationsAppsExamplesListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsExamplesListCall) PageSize(pageSize int64) *ProjectsLocationsAppsExamplesListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListExamples call.
func (c *ProjectsLocationsAppsExamplesListCall) PageToken(pageToken string) *ProjectsLocationsAppsExamplesListCall {
	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 *ProjectsLocationsAppsExamplesListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExamplesListCall {
	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 *ProjectsLocationsAppsExamplesListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsExamplesListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExamplesListCall) Context(ctx context.Context) *ProjectsLocationsAppsExamplesListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExamplesListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExamplesListCall) 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, "v1beta/{+parent}/examples")
	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", "ces.projects.locations.apps.examples.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.examples.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListExamplesResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsExamplesListCall) Do(opts ...googleapi.CallOption) (*ListExamplesResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListExamplesResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.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 *ProjectsLocationsAppsExamplesListCall) Pages(ctx context.Context, f func(*ListExamplesResponse) 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 ProjectsLocationsAppsExamplesPatchCall struct {
	s          *Service
	nameid     string
	example    *Example
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified example.
//
//   - name: Identifier. The unique identifier of the example. Format:
//     `projects/{project}/locations/{location}/apps/{app}/examples/{example}`.
func (r *ProjectsLocationsAppsExamplesService) Patch(nameid string, example *Example) *ProjectsLocationsAppsExamplesPatchCall {
	c := &ProjectsLocationsAppsExamplesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.example = example
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsExamplesPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsExamplesPatchCall {
	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 *ProjectsLocationsAppsExamplesPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsExamplesPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsExamplesPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsExamplesPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsExamplesPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsExamplesPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.example)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.examples.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Example.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsExamplesPatchCall) Do(opts ...googleapi.CallOption) (*Example, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Example{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.examples.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGuardrailsCreateCall struct {
	s          *Service
	parent     string
	guardrail  *Guardrail
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new guardrail in the given app.
//
// - parent: The resource name of the app to create a guardrail in.
func (r *ProjectsLocationsAppsGuardrailsService) Create(parent string, guardrail *Guardrail) *ProjectsLocationsAppsGuardrailsCreateCall {
	c := &ProjectsLocationsAppsGuardrailsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.guardrail = guardrail
	return c
}

// GuardrailId sets the optional parameter "guardrailId": The ID to use for the
// guardrail, which will become the final component of the guardrail's resource
// name. If not provided, a unique ID will be automatically assigned for the
// guardrail.
func (c *ProjectsLocationsAppsGuardrailsCreateCall) GuardrailId(guardrailId string) *ProjectsLocationsAppsGuardrailsCreateCall {
	c.urlParams_.Set("guardrailId", guardrailId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsGuardrailsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGuardrailsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGuardrailsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsGuardrailsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGuardrailsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGuardrailsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.guardrail)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/guardrails")
	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", "ces.projects.locations.apps.guardrails.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.guardrails.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Guardrail.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGuardrailsCreateCall) Do(opts ...googleapi.CallOption) (*Guardrail, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Guardrail{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGuardrailsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified guardrail.
//
// - name: The resource name of the guardrail to delete.
func (r *ProjectsLocationsAppsGuardrailsService) Delete(name string) *ProjectsLocationsAppsGuardrailsDeleteCall {
	c := &ProjectsLocationsAppsGuardrailsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the guardrail.
// If an etag is not provided, the deletion will overwrite any concurrent
// changes. If an etag is provided and does not match the current etag of the
// guardrail, deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Etag(etag string) *ProjectsLocationsAppsGuardrailsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Force sets the optional parameter "force": Indicates whether to forcefully
// delete the guardrail, even if it is still referenced by app/agents. * If
// `force = false`, the deletion fails if any apps/agents still reference the
// guardrail. * If `force = true`, all existing references from apps/agents
// will be removed and the guardrail will be deleted.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Force(force bool) *ProjectsLocationsAppsGuardrailsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGuardrailsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsGuardrailsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGuardrailsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.guardrails.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.guardrails.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGuardrailsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGuardrailsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified guardrail.
//
// - name: The resource name of the guardrail to retrieve.
func (r *ProjectsLocationsAppsGuardrailsService) Get(name string) *ProjectsLocationsAppsGuardrailsGetCall {
	c := &ProjectsLocationsAppsGuardrailsGetCall{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 *ProjectsLocationsAppsGuardrailsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGuardrailsGetCall {
	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 *ProjectsLocationsAppsGuardrailsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsGuardrailsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGuardrailsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsGuardrailsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGuardrailsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGuardrailsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.guardrails.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.guardrails.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Guardrail.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGuardrailsGetCall) Do(opts ...googleapi.CallOption) (*Guardrail, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Guardrail{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsGuardrailsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists guardrails in the given app.
//
// - parent: The resource name of the app to list guardrails from.
func (r *ProjectsLocationsAppsGuardrailsService) List(parent string) *ProjectsLocationsAppsGuardrailsListCall {
	c := &ProjectsLocationsAppsGuardrailsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the guardrails. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsGuardrailsListCall) Filter(filter string) *ProjectsLocationsAppsGuardrailsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsGuardrailsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsGuardrailsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsGuardrailsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsGuardrailsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListGuardrails call.
func (c *ProjectsLocationsAppsGuardrailsListCall) PageToken(pageToken string) *ProjectsLocationsAppsGuardrailsListCall {
	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 *ProjectsLocationsAppsGuardrailsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGuardrailsListCall {
	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 *ProjectsLocationsAppsGuardrailsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsGuardrailsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGuardrailsListCall) Context(ctx context.Context) *ProjectsLocationsAppsGuardrailsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGuardrailsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGuardrailsListCall) 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, "v1beta/{+parent}/guardrails")
	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", "ces.projects.locations.apps.guardrails.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.guardrails.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListGuardrailsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsGuardrailsListCall) Do(opts ...googleapi.CallOption) (*ListGuardrailsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListGuardrailsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.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 *ProjectsLocationsAppsGuardrailsListCall) Pages(ctx context.Context, f func(*ListGuardrailsResponse) 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 ProjectsLocationsAppsGuardrailsPatchCall struct {
	s          *Service
	nameid     string
	guardrail  *Guardrail
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified guardrail.
//
//   - name: Identifier. The unique identifier of the guardrail. Format:
//     `projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`.
func (r *ProjectsLocationsAppsGuardrailsService) Patch(nameid string, guardrail *Guardrail) *ProjectsLocationsAppsGuardrailsPatchCall {
	c := &ProjectsLocationsAppsGuardrailsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.guardrail = guardrail
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsGuardrailsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsGuardrailsPatchCall {
	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 *ProjectsLocationsAppsGuardrailsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsGuardrailsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsGuardrailsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsGuardrailsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsGuardrailsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsGuardrailsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.guardrail)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.guardrails.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Guardrail.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsGuardrailsPatchCall) Do(opts ...googleapi.CallOption) (*Guardrail, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Guardrail{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.guardrails.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsMessageSendCall struct {
	s                         *Service
	tenant                    string
	lfa2av1sendmessagerequest *LfA2aV1SendMessageRequest
	urlParams_                gensupport.URLParams
	ctx_                      context.Context
	header_                   http.Header
}

// Send: Sends a message to an agent.
//
// - tenant: Optional. Tenant ID, provided as a path parameter.
func (r *ProjectsLocationsAppsMessageService) Send(tenant string, lfa2av1sendmessagerequest *LfA2aV1SendMessageRequest) *ProjectsLocationsAppsMessageSendCall {
	c := &ProjectsLocationsAppsMessageSendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.tenant = tenant
	c.lfa2av1sendmessagerequest = lfa2av1sendmessagerequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsMessageSendCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsMessageSendCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsMessageSendCall) Context(ctx context.Context) *ProjectsLocationsAppsMessageSendCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsMessageSendCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsMessageSendCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.lfa2av1sendmessagerequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+tenant}/message:send")
	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{
		"tenant": c.tenant,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.message.send", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.message.send" call.
// Any non-2xx status code is an error. Response headers are in either
// *LfA2aV1SendMessageResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsMessageSendCall) Do(opts ...googleapi.CallOption) (*LfA2aV1SendMessageResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &LfA2aV1SendMessageResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.message.send", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsScheduledEvaluationRunsCreateCall struct {
	s                      *Service
	parent                 string
	scheduledevaluationrun *ScheduledEvaluationRun
	urlParams_             gensupport.URLParams
	ctx_                   context.Context
	header_                http.Header
}

// Create: Creates a scheduled evaluation run.
//
//   - parent: The app to create the scheduled evaluation run for. Format:
//     `projects/{project}/locations/{location}/apps/{app}`.
func (r *ProjectsLocationsAppsScheduledEvaluationRunsService) Create(parent string, scheduledevaluationrun *ScheduledEvaluationRun) *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall {
	c := &ProjectsLocationsAppsScheduledEvaluationRunsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.scheduledevaluationrun = scheduledevaluationrun
	return c
}

// ScheduledEvaluationRunId sets the optional parameter
// "scheduledEvaluationRunId": The ID to use for the scheduled evaluation run,
// which will become the final component of the scheduled evaluation run's
// resource name. If not provided, a unique ID will be automatically assigned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) ScheduledEvaluationRunId(scheduledEvaluationRunId string) *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall {
	c.urlParams_.Set("scheduledEvaluationRunId", scheduledEvaluationRunId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.scheduledevaluationrun)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/scheduledEvaluationRuns")
	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", "ces.projects.locations.apps.scheduledEvaluationRuns.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.scheduledEvaluationRuns.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *ScheduledEvaluationRun.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsCreateCall) Do(opts ...googleapi.CallOption) (*ScheduledEvaluationRun, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ScheduledEvaluationRun{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a scheduled evaluation run.
//
// - name: The resource name of the scheduled evaluation run to delete.
func (r *ProjectsLocationsAppsScheduledEvaluationRunsService) Delete(name string) *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall {
	c := &ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The etag of the
// ScheduledEvaluationRun. If provided, it must match the server's etag.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) Etag(etag string) *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.scheduledEvaluationRuns.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.scheduledEvaluationRuns.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsScheduledEvaluationRunsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified scheduled evaluation run.
//
// - name: The resource name of the scheduled evaluation run to retrieve.
func (r *ProjectsLocationsAppsScheduledEvaluationRunsService) Get(name string) *ProjectsLocationsAppsScheduledEvaluationRunsGetCall {
	c := &ProjectsLocationsAppsScheduledEvaluationRunsGetCall{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 *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsScheduledEvaluationRunsGetCall {
	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 *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsScheduledEvaluationRunsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsScheduledEvaluationRunsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.scheduledEvaluationRuns.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.scheduledEvaluationRuns.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *ScheduledEvaluationRun.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsGetCall) Do(opts ...googleapi.CallOption) (*ScheduledEvaluationRun, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ScheduledEvaluationRun{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsScheduledEvaluationRunsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all scheduled evaluation runs in the given app.
//
//   - parent: The resource name of the app to list scheduled evaluation runs
//     from.
func (r *ProjectsLocationsAppsScheduledEvaluationRunsService) List(parent string) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c := &ProjectsLocationsAppsScheduledEvaluationRunsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the scheduled evaluation runs. See https://google.aip.dev/160 for
// more details. Currently supports filtering by: *
// request.evaluations:evaluation_id *
// request.evaluation_dataset:evaluation_dataset_id
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Filter(filter string) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Supported
// fields are: "name" (ascending), "create_time" (descending), "update_time"
// (descending), "next_scheduled_execution" (ascending), and
// "last_completed_run.create_time" (descending). If not included,
// "update_time" will be the default. See https://google.aip.dev/132#ordering
// for more details.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list EvaluationService.ListScheduledEvaluationRuns
// call.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) PageToken(pageToken string) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	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 *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	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 *ProjectsLocationsAppsScheduledEvaluationRunsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Context(ctx context.Context) *ProjectsLocationsAppsScheduledEvaluationRunsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) 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, "v1beta/{+parent}/scheduledEvaluationRuns")
	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", "ces.projects.locations.apps.scheduledEvaluationRuns.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.scheduledEvaluationRuns.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListScheduledEvaluationRunsResponse.ServerResponse.Header or (if a response
// was returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Do(opts ...googleapi.CallOption) (*ListScheduledEvaluationRunsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListScheduledEvaluationRunsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.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 *ProjectsLocationsAppsScheduledEvaluationRunsListCall) Pages(ctx context.Context, f func(*ListScheduledEvaluationRunsResponse) 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 ProjectsLocationsAppsScheduledEvaluationRunsPatchCall struct {
	s                      *Service
	nameid                 string
	scheduledevaluationrun *ScheduledEvaluationRun
	urlParams_             gensupport.URLParams
	ctx_                   context.Context
	header_                http.Header
}

// Patch: Updates a scheduled evaluation run.
//
//   - name: Identifier. The unique identifier of the scheduled evaluation run
//     config. Format:
//     projects/{projectId}/locations/{locationId}/apps/{appId}/scheduledEvaluatio
//     nRuns/{scheduledEvaluationRunId}.
func (r *ProjectsLocationsAppsScheduledEvaluationRunsService) Patch(nameid string, scheduledevaluationrun *ScheduledEvaluationRun) *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall {
	c := &ProjectsLocationsAppsScheduledEvaluationRunsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.scheduledevaluationrun = scheduledevaluationrun
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall {
	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 *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.scheduledevaluationrun)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.scheduledEvaluationRuns.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *ScheduledEvaluationRun.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsScheduledEvaluationRunsPatchCall) Do(opts ...googleapi.CallOption) (*ScheduledEvaluationRun, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ScheduledEvaluationRun{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.scheduledEvaluationRuns.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsSessionsGenerateChatTokenCall struct {
	s                        *Service
	name                     string
	generatechattokenrequest *GenerateChatTokenRequest
	urlParams_               gensupport.URLParams
	ctx_                     context.Context
	header_                  http.Header
}

// GenerateChatToken: Generates a session scoped token for chat widget to
// authenticate with Session APIs.
//
//   - name: The session name to generate the chat token for. Format:
//     projects/{project}/locations/{location}/apps/{app}/sessions/{session}.
func (r *ProjectsLocationsAppsSessionsService) GenerateChatToken(name string, generatechattokenrequest *GenerateChatTokenRequest) *ProjectsLocationsAppsSessionsGenerateChatTokenCall {
	c := &ProjectsLocationsAppsSessionsGenerateChatTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.generatechattokenrequest = generatechattokenrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsSessionsGenerateChatTokenCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsSessionsGenerateChatTokenCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsSessionsGenerateChatTokenCall) Context(ctx context.Context) *ProjectsLocationsAppsSessionsGenerateChatTokenCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsSessionsGenerateChatTokenCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsSessionsGenerateChatTokenCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.generatechattokenrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}:generateChatToken")
	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", "ces.projects.locations.apps.sessions.generateChatToken", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.sessions.generateChatToken" call.
// Any non-2xx status code is an error. Response headers are in either
// *GenerateChatTokenResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsSessionsGenerateChatTokenCall) Do(opts ...googleapi.CallOption) (*GenerateChatTokenResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &GenerateChatTokenResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.sessions.generateChatToken", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsSessionsRunSessionCall struct {
	s                 *Service
	sessionid         string
	runsessionrequest *RunSessionRequest
	urlParams_        gensupport.URLParams
	ctx_              context.Context
	header_           http.Header
}

// RunSession: Initiates a single-turn interaction with the CES agent within a
// session.
//
//   - session: The unique identifier of the session. Format:
//     `projects/{project}/locations/{location}/apps/{app}/sessions/{session}`.
func (r *ProjectsLocationsAppsSessionsService) RunSession(sessionid string, runsessionrequest *RunSessionRequest) *ProjectsLocationsAppsSessionsRunSessionCall {
	c := &ProjectsLocationsAppsSessionsRunSessionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.sessionid = sessionid
	c.runsessionrequest = runsessionrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsSessionsRunSessionCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsSessionsRunSessionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsSessionsRunSessionCall) Context(ctx context.Context) *ProjectsLocationsAppsSessionsRunSessionCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsSessionsRunSessionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsSessionsRunSessionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.runsessionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+session}:runSession")
	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{
		"session": c.sessionid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.sessions.runSession", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.sessions.runSession" call.
// Any non-2xx status code is an error. Response headers are in either
// *RunSessionResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsSessionsRunSessionCall) Do(opts ...googleapi.CallOption) (*RunSessionResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &RunSessionResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.sessions.runSession", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsSessionsStreamRunSessionCall struct {
	s                 *Service
	sessionid         string
	runsessionrequest *RunSessionRequest
	urlParams_        gensupport.URLParams
	ctx_              context.Context
	header_           http.Header
}

// StreamRunSession: Initiates a single-turn interaction with the CES agent.
// Uses server-side streaming to deliver incremental results and partial
// responses as they are generated. By default, complete responses (e.g.,
// messages from callbacks or full LLM responses) are sent to the client as
// soon as they are available. To enable streaming individual text chunks
// directly from the model, set enable_text_streaming to true.
//
//   - session: The unique identifier of the session. Format:
//     `projects/{project}/locations/{location}/apps/{app}/sessions/{session}`.
func (r *ProjectsLocationsAppsSessionsService) StreamRunSession(sessionid string, runsessionrequest *RunSessionRequest) *ProjectsLocationsAppsSessionsStreamRunSessionCall {
	c := &ProjectsLocationsAppsSessionsStreamRunSessionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.sessionid = sessionid
	c.runsessionrequest = runsessionrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsSessionsStreamRunSessionCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsSessionsStreamRunSessionCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsSessionsStreamRunSessionCall) Context(ctx context.Context) *ProjectsLocationsAppsSessionsStreamRunSessionCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsSessionsStreamRunSessionCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsSessionsStreamRunSessionCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.runsessionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+session}:streamRunSession")
	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{
		"session": c.sessionid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.sessions.streamRunSession", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.sessions.streamRunSession" call.
// Any non-2xx status code is an error. Response headers are in either
// *RunSessionResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsSessionsStreamRunSessionCall) Do(opts ...googleapi.CallOption) (*RunSessionResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &RunSessionResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.sessions.streamRunSession", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsCreateCall struct {
	s          *Service
	parent     string
	tool       *Tool
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new tool in the given app.
//
// - parent: The resource name of the app to create a tool in.
func (r *ProjectsLocationsAppsToolsService) Create(parent string, tool *Tool) *ProjectsLocationsAppsToolsCreateCall {
	c := &ProjectsLocationsAppsToolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.tool = tool
	return c
}

// ToolId sets the optional parameter "toolId": The ID to use for the tool,
// which will become the final component of the tool's resource name. If not
// provided, a unique ID will be automatically assigned for the tool.
func (c *ProjectsLocationsAppsToolsCreateCall) ToolId(toolId string) *ProjectsLocationsAppsToolsCreateCall {
	c.urlParams_.Set("toolId", toolId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsToolsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.tool)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/tools")
	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", "ces.projects.locations.apps.tools.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.tools.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Tool.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsCreateCall) Do(opts ...googleapi.CallOption) (*Tool, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Tool{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.tools.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified tool.
//
// - name: The resource name of the tool to delete.
func (r *ProjectsLocationsAppsToolsService) Delete(name string) *ProjectsLocationsAppsToolsDeleteCall {
	c := &ProjectsLocationsAppsToolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the tool. If an
// etag is not provided, the deletion will overwrite any concurrent changes. If
// an etag is provided and does not match the current etag of the tool,
// deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsToolsDeleteCall) Etag(etag string) *ProjectsLocationsAppsToolsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Force sets the optional parameter "force": Indicates whether to forcefully
// delete the tool, even if it is still referenced by agents/examples. * If
// `force = false`, the deletion will fail if any agents still reference the
// tool. * If `force = true`, all existing references from agents will be
// removed and the tool will be deleted.
func (c *ProjectsLocationsAppsToolsDeleteCall) Force(force bool) *ProjectsLocationsAppsToolsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsToolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.tools.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.tools.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.tools.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified tool.
//
// - name: The resource name of the tool to retrieve.
func (r *ProjectsLocationsAppsToolsService) Get(name string) *ProjectsLocationsAppsToolsGetCall {
	c := &ProjectsLocationsAppsToolsGetCall{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 *ProjectsLocationsAppsToolsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsGetCall {
	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 *ProjectsLocationsAppsToolsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsToolsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.tools.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.tools.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Tool.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsGetCall) Do(opts ...googleapi.CallOption) (*Tool, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Tool{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.tools.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists tools in the given app.
//
// - parent: The resource name of the app to list tools from.
func (r *ProjectsLocationsAppsToolsService) List(parent string) *ProjectsLocationsAppsToolsListCall {
	c := &ProjectsLocationsAppsToolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the tools. Use "include_system_tools=true" to include system tools
// in the response. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsToolsListCall) Filter(filter string) *ProjectsLocationsAppsToolsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsToolsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsToolsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsToolsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsToolsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListTools call.
func (c *ProjectsLocationsAppsToolsListCall) PageToken(pageToken string) *ProjectsLocationsAppsToolsListCall {
	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 *ProjectsLocationsAppsToolsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsListCall {
	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 *ProjectsLocationsAppsToolsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsToolsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsListCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsListCall) 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, "v1beta/{+parent}/tools")
	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", "ces.projects.locations.apps.tools.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.tools.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListToolsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsToolsListCall) Do(opts ...googleapi.CallOption) (*ListToolsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListToolsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.tools.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 *ProjectsLocationsAppsToolsListCall) Pages(ctx context.Context, f func(*ListToolsResponse) 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 ProjectsLocationsAppsToolsPatchCall struct {
	s          *Service
	name       string
	tool       *Tool
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified tool.
//
//   - name: Identifier. The resource name of the tool. Format: *
//     `projects/{project}/locations/{location}/apps/{app}/tools/{tool}` for
//     standalone tools. *
//     `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}/tool
//     s/{tool}` for tools retrieved from a toolset. These tools are dynamic and
//     output-only; they cannot be referenced directly where a tool is expected.
func (r *ProjectsLocationsAppsToolsService) Patch(name string, tool *Tool) *ProjectsLocationsAppsToolsPatchCall {
	c := &ProjectsLocationsAppsToolsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.tool = tool
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsToolsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsToolsPatchCall {
	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 *ProjectsLocationsAppsToolsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.tool)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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", "ces.projects.locations.apps.tools.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.tools.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Tool.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsPatchCall) Do(opts ...googleapi.CallOption) (*Tool, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Tool{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.tools.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsetsCreateCall struct {
	s          *Service
	parent     string
	toolset    *Toolset
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new toolset in the given app.
//
// - parent: The resource name of the app to create a toolset in.
func (r *ProjectsLocationsAppsToolsetsService) Create(parent string, toolset *Toolset) *ProjectsLocationsAppsToolsetsCreateCall {
	c := &ProjectsLocationsAppsToolsetsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.toolset = toolset
	return c
}

// ToolsetId sets the optional parameter "toolsetId": The ID to use for the
// toolset, which will become the final component of the toolset's resource
// name. If not provided, a unique ID will be automatically assigned for the
// toolset.
func (c *ProjectsLocationsAppsToolsetsCreateCall) ToolsetId(toolsetId string) *ProjectsLocationsAppsToolsetsCreateCall {
	c.urlParams_.Set("toolsetId", toolsetId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsToolsetsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.toolset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/toolsets")
	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", "ces.projects.locations.apps.toolsets.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Toolset.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsetsCreateCall) Do(opts ...googleapi.CallOption) (*Toolset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Toolset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsetsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified toolset.
//
// - name: The resource name of the toolset to delete.
func (r *ProjectsLocationsAppsToolsetsService) Delete(name string) *ProjectsLocationsAppsToolsetsDeleteCall {
	c := &ProjectsLocationsAppsToolsetsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the toolset. If
// an etag is not provided, the deletion will overwrite any concurrent changes.
// If an etag is provided and does not match the current etag of the toolset,
// deletion will be blocked and an ABORTED error will be returned.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Etag(etag string) *ProjectsLocationsAppsToolsetsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Force sets the optional parameter "force": Indicates whether to forcefully
// delete the toolset, even if it is still referenced by app/agents. * If
// `force = false`, the deletion fails if any agents still reference the
// toolset. * If `force = true`, all existing references from agents will be
// removed and the toolset will be deleted.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Force(force bool) *ProjectsLocationsAppsToolsetsDeleteCall {
	c.urlParams_.Set("force", fmt.Sprint(force))
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.toolsets.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsetsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsetsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified toolset.
//
// - name: The resource name of the toolset to retrieve.
func (r *ProjectsLocationsAppsToolsetsService) Get(name string) *ProjectsLocationsAppsToolsetsGetCall {
	c := &ProjectsLocationsAppsToolsetsGetCall{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 *ProjectsLocationsAppsToolsetsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsGetCall {
	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 *ProjectsLocationsAppsToolsetsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsToolsetsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.toolsets.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Toolset.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsetsGetCall) Do(opts ...googleapi.CallOption) (*Toolset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Toolset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsetsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists toolsets in the given app.
//
// - parent: The resource name of the app to list toolsets from.
func (r *ProjectsLocationsAppsToolsetsService) List(parent string) *ProjectsLocationsAppsToolsetsListCall {
	c := &ProjectsLocationsAppsToolsetsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the toolsets. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsToolsetsListCall) Filter(filter string) *ProjectsLocationsAppsToolsetsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsToolsetsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsToolsetsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsToolsetsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsToolsetsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListToolsets call.
func (c *ProjectsLocationsAppsToolsetsListCall) PageToken(pageToken string) *ProjectsLocationsAppsToolsetsListCall {
	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 *ProjectsLocationsAppsToolsetsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsListCall {
	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 *ProjectsLocationsAppsToolsetsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsToolsetsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsListCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsListCall) 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, "v1beta/{+parent}/toolsets")
	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", "ces.projects.locations.apps.toolsets.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListToolsetsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsToolsetsListCall) Do(opts ...googleapi.CallOption) (*ListToolsetsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListToolsetsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.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 *ProjectsLocationsAppsToolsetsListCall) Pages(ctx context.Context, f func(*ListToolsetsResponse) 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 ProjectsLocationsAppsToolsetsPatchCall struct {
	s          *Service
	nameid     string
	toolset    *Toolset
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Patch: Updates the specified toolset.
//
//   - name: Identifier. The unique identifier of the toolset. Format:
//     `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`.
func (r *ProjectsLocationsAppsToolsetsService) Patch(nameid string, toolset *Toolset) *ProjectsLocationsAppsToolsetsPatchCall {
	c := &ProjectsLocationsAppsToolsetsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.nameid = nameid
	c.toolset = toolset
	return c
}

// UpdateMask sets the optional parameter "updateMask": Field mask is used to
// control which fields get updated. If the mask is not present, all fields
// will be updated.
func (c *ProjectsLocationsAppsToolsetsPatchCall) UpdateMask(updateMask string) *ProjectsLocationsAppsToolsetsPatchCall {
	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 *ProjectsLocationsAppsToolsetsPatchCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsPatchCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsPatchCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsPatchCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsPatchCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsPatchCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.toolset)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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.nameid,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Toolset.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsToolsetsPatchCall) Do(opts ...googleapi.CallOption) (*Toolset, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Toolset{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.patch", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsToolsetsRetrieveToolsCall struct {
	s                    *Service
	toolset              string
	retrievetoolsrequest *RetrieveToolsRequest
	urlParams_           gensupport.URLParams
	ctx_                 context.Context
	header_              http.Header
}

// RetrieveTools: Retrieve the list of tools included in the specified toolset.
//
//   - toolset: The name of the toolset to retrieve the tools for. Format:
//     `projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`.
func (r *ProjectsLocationsAppsToolsetsService) RetrieveTools(toolset string, retrievetoolsrequest *RetrieveToolsRequest) *ProjectsLocationsAppsToolsetsRetrieveToolsCall {
	c := &ProjectsLocationsAppsToolsetsRetrieveToolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.toolset = toolset
	c.retrievetoolsrequest = retrievetoolsrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsToolsetsRetrieveToolsCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsToolsetsRetrieveToolsCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsToolsetsRetrieveToolsCall) Context(ctx context.Context) *ProjectsLocationsAppsToolsetsRetrieveToolsCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsToolsetsRetrieveToolsCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsToolsetsRetrieveToolsCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.retrievetoolsrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+toolset}:retrieveTools")
	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{
		"toolset": c.toolset,
	})
	c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.retrieveTools", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.toolsets.retrieveTools" call.
// Any non-2xx status code is an error. Response headers are in either
// *RetrieveToolsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsLocationsAppsToolsetsRetrieveToolsCall) Do(opts ...googleapi.CallOption) (*RetrieveToolsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &RetrieveToolsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.toolsets.retrieveTools", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsVersionsCreateCall struct {
	s          *Service
	parent     string
	appversion *AppVersion
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Create: Creates a new app version in the given app.
//
// - parent: The resource name of the app to create an app version in.
func (r *ProjectsLocationsAppsVersionsService) Create(parent string, appversion *AppVersion) *ProjectsLocationsAppsVersionsCreateCall {
	c := &ProjectsLocationsAppsVersionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	c.appversion = appversion
	return c
}

// AppVersionId sets the optional parameter "appVersionId": The ID to use for
// the app version, which will become the final component of the app version's
// resource name. If not provided, a unique ID will be automatically assigned
// for the app version.
func (c *ProjectsLocationsAppsVersionsCreateCall) AppVersionId(appVersionId string) *ProjectsLocationsAppsVersionsCreateCall {
	c.urlParams_.Set("appVersionId", appVersionId)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsVersionsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsVersionsCreateCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsVersionsCreateCall) Context(ctx context.Context) *ProjectsLocationsAppsVersionsCreateCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsVersionsCreateCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsVersionsCreateCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.appversion)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+parent}/versions")
	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", "ces.projects.locations.apps.versions.create", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.versions.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *AppVersion.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsVersionsCreateCall) Do(opts ...googleapi.CallOption) (*AppVersion, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &AppVersion{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.versions.create", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsVersionsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes the specified app version.
//
// - name: The resource name of the app version to delete.
func (r *ProjectsLocationsAppsVersionsService) Delete(name string) *ProjectsLocationsAppsVersionsDeleteCall {
	c := &ProjectsLocationsAppsVersionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	return c
}

// Etag sets the optional parameter "etag": The current etag of the app
// version. If an etag is not provided, the deletion will overwrite any
// concurrent changes. If an etag is provided and does not match the current
// etag of the app version, deletion will be blocked and an ABORTED error will
// be returned.
func (c *ProjectsLocationsAppsVersionsDeleteCall) Etag(etag string) *ProjectsLocationsAppsVersionsDeleteCall {
	c.urlParams_.Set("etag", etag)
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsVersionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsVersionsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsVersionsDeleteCall) Context(ctx context.Context) *ProjectsLocationsAppsVersionsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsVersionsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsVersionsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.apps.versions.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.versions.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsVersionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.versions.delete", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsVersionsGetCall struct {
	s            *Service
	name         string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// Get: Gets details of the specified app version.
//
// - name: The resource name of the app version to retrieve.
func (r *ProjectsLocationsAppsVersionsService) Get(name string) *ProjectsLocationsAppsVersionsGetCall {
	c := &ProjectsLocationsAppsVersionsGetCall{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 *ProjectsLocationsAppsVersionsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsVersionsGetCall {
	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 *ProjectsLocationsAppsVersionsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsVersionsGetCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsVersionsGetCall) Context(ctx context.Context) *ProjectsLocationsAppsVersionsGetCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsVersionsGetCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsVersionsGetCall) 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, "v1beta/{+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", "ces.projects.locations.apps.versions.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.versions.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *AppVersion.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsVersionsGetCall) Do(opts ...googleapi.CallOption) (*AppVersion, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &AppVersion{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.versions.get", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsAppsVersionsListCall struct {
	s            *Service
	parent       string
	urlParams_   gensupport.URLParams
	ifNoneMatch_ string
	ctx_         context.Context
	header_      http.Header
}

// List: Lists all app versions in the given app.
//
// - parent: The resource name of the app to list app versions from.
func (r *ProjectsLocationsAppsVersionsService) List(parent string) *ProjectsLocationsAppsVersionsListCall {
	c := &ProjectsLocationsAppsVersionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.parent = parent
	return c
}

// Filter sets the optional parameter "filter": Filter to be applied when
// listing the app versions. See https://google.aip.dev/160 for more details.
func (c *ProjectsLocationsAppsVersionsListCall) Filter(filter string) *ProjectsLocationsAppsVersionsListCall {
	c.urlParams_.Set("filter", filter)
	return c
}

// OrderBy sets the optional parameter "orderBy": Field to sort by. Only "name"
// and "create_time" is supported. See https://google.aip.dev/132#ordering for
// more details.
func (c *ProjectsLocationsAppsVersionsListCall) OrderBy(orderBy string) *ProjectsLocationsAppsVersionsListCall {
	c.urlParams_.Set("orderBy", orderBy)
	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.
func (c *ProjectsLocationsAppsVersionsListCall) PageSize(pageSize int64) *ProjectsLocationsAppsVersionsListCall {
	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
	return c
}

// PageToken sets the optional parameter "pageToken": The next_page_token value
// returned from a previous list AgentService.ListAppVersions call.
func (c *ProjectsLocationsAppsVersionsListCall) PageToken(pageToken string) *ProjectsLocationsAppsVersionsListCall {
	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 *ProjectsLocationsAppsVersionsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsVersionsListCall {
	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 *ProjectsLocationsAppsVersionsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsAppsVersionsListCall {
	c.ifNoneMatch_ = entityTag
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsVersionsListCall) Context(ctx context.Context) *ProjectsLocationsAppsVersionsListCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsVersionsListCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsVersionsListCall) 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, "v1beta/{+parent}/versions")
	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", "ces.projects.locations.apps.versions.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.versions.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListAppVersionsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsVersionsListCall) Do(opts ...googleapi.CallOption) (*ListAppVersionsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListAppVersionsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.versions.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 *ProjectsLocationsAppsVersionsListCall) Pages(ctx context.Context, f func(*ListAppVersionsResponse) 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 ProjectsLocationsAppsVersionsRestoreCall struct {
	s                        *Service
	name                     string
	restoreappversionrequest *RestoreAppVersionRequest
	urlParams_               gensupport.URLParams
	ctx_                     context.Context
	header_                  http.Header
}

// Restore: Restores the specified app version. This will create a new app
// version from the current draft app and overwrite the current draft with the
// specified app version.
//
// - name: The resource name of the app version to restore.
func (r *ProjectsLocationsAppsVersionsService) Restore(name string, restoreappversionrequest *RestoreAppVersionRequest) *ProjectsLocationsAppsVersionsRestoreCall {
	c := &ProjectsLocationsAppsVersionsRestoreCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.restoreappversionrequest = restoreappversionrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsAppsVersionsRestoreCall) Fields(s ...googleapi.Field) *ProjectsLocationsAppsVersionsRestoreCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsAppsVersionsRestoreCall) Context(ctx context.Context) *ProjectsLocationsAppsVersionsRestoreCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsAppsVersionsRestoreCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsAppsVersionsRestoreCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.restoreappversionrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+name}:restore")
	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", "ces.projects.locations.apps.versions.restore", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.apps.versions.restore" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsAppsVersionsRestoreCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.apps.versions.restore", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsOperationsCancelCall struct {
	s                      *Service
	name                   string
	canceloperationrequest *CancelOperationRequest
	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 *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
	c.name = name
	c.canceloperationrequest = canceloperationrequest
	return c
}

// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
	body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.canceloperationrequest)
	if err != nil {
		return nil, err
	}
	c.urlParams_.Set("alt", alt)
	c.urlParams_.Set("prettyPrint", "false")
	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+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", "ces.projects.locations.operations.cancel", "request", internallog.HTTPRequest(req, body.Bytes()))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.operations.cancel" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.operations.cancel", "response", internallog.HTTPResponse(res, b))
	return ret, nil
}

type ProjectsLocationsOperationsDeleteCall struct {
	s          *Service
	name       string
	urlParams_ gensupport.URLParams
	ctx_       context.Context
	header_    http.Header
}

// Delete: Deletes a long-running operation. This method indicates that the
// client is no longer interested in the operation result. It does not cancel
// the operation. If the server doesn't support this method, it returns
// `google.rpc.Code.UNIMPLEMENTED`.
//
// - name: The name of the operation resource to be deleted.
func (r *ProjectsLocationsOperationsService) Delete(name string) *ProjectsLocationsOperationsDeleteCall {
	c := &ProjectsLocationsOperationsDeleteCall{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 *ProjectsLocationsOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsDeleteCall {
	c.urlParams_.Set("fields", googleapi.CombineFields(s))
	return c
}

// Context sets the context to be used in this call's Do method.
func (c *ProjectsLocationsOperationsDeleteCall) Context(ctx context.Context) *ProjectsLocationsOperationsDeleteCall {
	c.ctx_ = ctx
	return c
}

// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsLocationsOperationsDeleteCall) Header() http.Header {
	if c.header_ == nil {
		c.header_ = make(http.Header)
	}
	return c.header_
}

func (c *ProjectsLocationsOperationsDeleteCall) 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, "v1beta/{+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", "ces.projects.locations.operations.delete", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.operations.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Empty{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.projects.locations.operations.delete", "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, "v1beta/{+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", "ces.projects.locations.operations.get", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.operations.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Operation.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &Operation{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.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. For example, when `parent` is set to
// "projects/example/locations/-". This field is not supported by default 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, "v1beta/{+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", "ces.projects.locations.operations.list", "request", internallog.HTTPRequest(req, nil))
	return gensupport.SendRequest(c.ctx_, c.s.client, req)
}

// Do executes the "ces.projects.locations.operations.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListOperationsResponse.ServerResponse.Header or (if a response was returned
// 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) (*ListOperationsResponse, error) {
	gensupport.SetOptions(c.urlParams_, opts...)
	res, err := c.doRequest("json")
	if res != nil && res.StatusCode == http.StatusNotModified {
		if res.Body != nil {
			res.Body.Close()
		}
		return nil, gensupport.WrapError(&googleapi.Error{
			Code:   res.StatusCode,
			Header: res.Header,
		})
	}
	if err != nil {
		return nil, err
	}
	defer googleapi.CloseBody(res)
	if err := googleapi.CheckResponse(res); err != nil {
		return nil, gensupport.WrapError(err)
	}
	ret := &ListOperationsResponse{
		ServerResponse: googleapi.ServerResponse{
			Header:         res.Header,
			HTTPStatusCode: res.StatusCode,
		},
	}
	target := &ret
	b, err := gensupport.DecodeResponseBytes(target, res)
	if err != nil {
		return nil, err
	}
	c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "ces.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(*ListOperationsResponse) 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)
	}
}
